在本小节中,我们将讨论在Spring Boot中整合RocketMQ。
我们选用官方推荐的Spring Boot拓展rocketmq-spring-boot-starter
首先,需要在Spring Boot中添加依赖:
compile 'com.qianmi:spring-boot-starter-rocketmq:1.1.0-RELEASE'
在配置中,我们需要设定RocketMQ的服务器集群
spring.rocketmq:
nameServer: 127.0.0.1:9876
producer.group: lmsia-abc
如上所示:
按照上述进行配置后,自动配置会被激活,并自动注入RocketMQTemplate用于生成发消息、ListenerContainer用于收消息。
上述对使用方都是透明的,在Spring Boot中收发消息非常简单,如下:
@Service
@RocketMQMessageListener(topic = TOCPIC, consumerGroup = LmsiaAbcConstant.PROJECT_NAME)
public class MyEventHandlerImpl implements MyEventHandler, RocketMQListener<MyEvent> {
private Logger LOG = LoggerFactory.getLogger(getClass());
@Resource
private RocketMQTemplate rocketMQTemplate;
@Override
public void send(MyEvent event) {
rocketMQTemplate.convertAndSend(TOCPIC, event);
}
@Override
public void onMessage(MyEvent message) {
LOG.info("receive message, data = {}", message.getData());
}
}
如上所述:
如果你使用过RocketMQ的官方客户端的话,会发现其易用性要远低于spring-boot-starter-rocketmq。
RocketMQ还支持顺序消息、广播消息等更多功能,spring-boot-starter-rocketmq中都支持了具体的实现,可以直接参考上述项目主页的说明。