在日常工作中我们经常会涉及到使用Rocketmq,目前作为比较流行的web开发框架springboot也是我们经常使用的,所以本文我们来介绍下在springboot中集成Rocketmq生产者的案例。
一、创建maven项目,并且引入依赖
这里我们还是使用springboot作为基础框架,然后在maven中添加Rocketmq相关的依赖即可,示例如下:
<dependencies> <dependency> <groupId>org.apache.rocketmq</groupId> <artifactId>rocketmq-spring-boot-starter</artifactId> <version>2.2.3</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- lombok --> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <scope>provided</scope> </dependency> </dependencies> <build> <finalName>RocketMQDemo-1.0</finalName> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.1.1.RELEASE</version> <relativePath /> <!-- lookup parent from repository --> </parent>
二、创建配置文件
在springboot中集成rocketmq的话,那么需要在application.yml里面进行相关的配置,我这里的配置示例如下:
rocketmq: name-server: 1.13.1.215:9876 producer: # 发送同一类消息的设置为同一个group,保证唯一 group: group1 # 发送消息超时时间,默认3000 sendMessageTimeout: 10000 # 发送消息失败重试次数,默认2 retryTimesWhenSendFailed: 2 # 异步消息重试此处,默认2 retryTimesWhenSendAsyncFailed: 2 # 消息最大长度,默认1024 * 1024 * 4(默认4M) maxMessageSize: 4096 # 压缩消息阈值,默认4k(1024 * 4) compressMessageBodyThreshold: 4096 # 是否在内部发送失败时重试另一个broker,默认false retryNextServer: false
三、编写代码
这里我们用crontroller进行演示,所以完整的crontroller发送代码示例如下:
@RestController public class RocketMQProducer { @Autowired private RocketMQTemplate rocketmqTemplate; @GetMapping("/test") public String test() { Message<String> msg = MessageBuilder.withPayload("this is a test message").build(); rocketmqTemplate.send("topic1", msg); return "success"; } }
四、运行测试
接着我们运行测试一下,把项目启动起来,然后请求这个test接口,示例如下:
然后我们就可以在rocketmq的dashboard上看到对应的生产者发送了一条消息,如下图:
说明咱们的生产者是没有问题的。
备注:
1、springboot集成这里的rocketmq比较简单 2、这里我们演示的主要是发送普通消息,如果是其他消息的话需要进行改造下。
最后按照惯例,附上本案例的源码,登陆后即可下载。
还没有评论,来说两句吧...