🔥
不同於 RabbitMQ、ActiveMQ、Kafka 等消息中間件,Spring 社區已經通過多種方式提供了對這些中間件產品集成,例如通過 spring-jms 整合 ActiveMQ、通過 Spring AMQP 項目下的 spring-rabbit 整合 RabbitMQ、通過 spring-kafka 整合 kafka ,通過他們可以在 Spring 項目中更方便使用其 API 。目前在 Spring 框架中集成 RocketMQ 有三種方式,一是將消息生產者和消費者定義成 bean 對象交由 Spring 容器管理,二是使用 RocketMQ 社區的外部項目 rocketmq-jms(https://github.com/apache/rocketmq-externals/tree/master/rocketmq-connect-jms)然后通過 spring-jms 方式集成使用,https://github.com/apache/rocketmq-spring是如果你的應用是基於 spring-boot 的,可以使用 RocketMQ 的外部項目 rocketmq-spring-boot-starter(https://github.com/apache/rocketmq-spring)比較方便的收發消息。
總的來講 rocketmq-jms 項目實現了 JMS 1.1 規范的部分內容,目前支持 JMS 中的發布/訂閱模型收發消息。
這種方式不推薦使用,不夠靈活。
所以
如果整合spring,推薦使用第一種方式,相對靈活,自由度高。
如果是sprinboot,就更方便了。官方提供了Rocket-Spring項目用於將Rocketmq整合進Springboot
支持以下功能特性:
- 同步發送
- 異步發送
- one-way發送
- 發送順序消息
- 批量發送
- 發送事務消息
- 發送延遲消息
- 並發消費(廣播/集群)
- 順序消費
- 支持消息過濾(使用tag/sql)
- 支持消息軌跡
- 認證和授權
- request-reply模式
官方地址:https://github.com/apache/rocketmq-spring/wiki
官方手冊非常清晰。