Springboot 整合RocketMQ

 业务场景:该接口为H5、小程序提供,用于用户提交信息,后台计算用户数据,进行审核。

根据用户提交的手机号计算用户数据,计算用户实时数据比较长,数据量大的3-5分钟,数据小的1分钟上下,移动端不需要实时返回用户计算数据,所以接口可以保存完用户基本信息,再推送至消息队列计算用户数据。

消费者的计算方法(farmApi.calcSubsidyAndHomeworkData(requestParam, requestAdmin);)

已经封装通用方法,消费者可以直接调用(可根据具体业务修改)

消费异常重试机制可参考

RocketMQ详解(12)——RocketMQ的重试机制_张申傲的博客-优快云博客_rocketmq消息重试原理

RocketMQ 的消息丢失机制可参考

总结rocketmq消息丢失四种情况_相思比梦长的博客-优快云博客_rocketmq消息丢失

        <dependency>
            <groupId>org.apache.rocketmq</groupId>
            <artifactId>rocketmq-spring-boot-starter</artifactId>
            <version>2.1.1</version>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-core</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-webmvc</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
rocketmq:
  name-server: ip:9876
  # 默认的消息组
  producer:
    group: springBootGroup
    send-message-timeout: 3000 # 发送消息超时时间,单位:毫秒。默认为 3000 。
    compress-message-body-threshold: 4096 # 消息压缩阀值,当消息体的大小超过该阀值后,进行消息压缩。默认为 4 * 1024B
    max-message-size: 4194304 # 消息体的最大允许大小。。默认为 4 * 1024 * 1024B
    retry-times-when-send-failed: 2 # 同步发送消息时,失败重试次数。默认为 2 次。
    retry-times-when-send-async-failed: 2 # 异步发送消息时,失败重试次数。默认为 2 次。
    retry-next-server: false # 发送消息给 Broker 时,如果发送失败,是否重试另外一台 Broker 。默认为 false
    access-key: # Access Key ,可阅读 https://github.com/apache/rocketmq/blob/master/docs/cn/acl/user_guide.md 文档
    secret-key: # Secret Key
    enable-msg-trace: true # 是否开启消息轨迹功能。默认为 true 开启。可阅读 https://github.com/apache/rocketmq/blob/master/docs/cn/msg_trace/user_guide.md 文档
    customized-trace-topic: RMQ_SYS_TRACE_TOPIC # 自定义消息轨迹的 Topic 。默认为 RMQ_SYS_TRACE_TOPIC 。
### Spring Boot 整合 RocketMQ 实现消息队列 #### 添加依赖项 要在 Spring Boot 项目中集成 RocketMQ,需在 `pom.xml` 文件中引入 RocketMQ 的启动器依赖: ```xml <dependency> <groupId>org.apache.rocketmq</groupId> <artifactId>rocketmq-spring-boot-starter</artifactId> <version>2.2.2</version> </dependency> ``` 此操作确保了应用程序能够访问到必要的类库来完成与 RocketMQ 的交互[^4]。 #### 配置 RocketMQ 连接属性 接着,在 `application.properties` 或 `application.yml` 中定义连接至 RocketMQ 所必需的一些参数,比如 NameServer 地址等。这一步骤对于建立客户端同服务器端的有效通讯至关重要[^5]。 #### 创建消息生产者组件 构建一个用于发送消息的服务类,该类可以通过注入 `RocketMQTemplate` 来简化消息的发布流程。如下所示的一个简单的 Java 类实现了这一目的: ```java import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @Component public class MessageProducer { @Autowired private RocketMQTemplate rocketMQTemplate; public void sendMessage(String topic, String message) { rocketMQTemplate.convertAndSend(topic, message); System.out.println("Message sent: " + message); } } ``` 这段代码展示了怎样利用 Spring 提供的功能自动化装配模板对象,并调用其方法向指定主题广播信息[^3]。 #### 构建消息监听处理器 为了处理来自特定主题的消息,还需要编写相应的消费者逻辑。通常会采用注解方式标记接收函数,从而让框架自动注册这些回调以便当有新数据到达时触发执行。具体实现细节取决于业务需求和技术选型。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值