RocketMQ最早是阿里巴巴开源的MQ中间件,在阿里集团被广泛应用在订单,交易,充值,流计算,消息推送,日志流式处理,binglog分发等场景。现已捐献给Apache,目前是Apache下的顶级项目。捐献后的最新版本是4.1.0-incubating
。
在实际场景中使用MQ打交道最多的是发送消息和消费消息。RocketMQ支持广播消费和集群消费,广播消费是指每隔consumer实例都会收到消息,一条消息可以被多个消费者实例处理;集群消费是指一条消息只能被一个消费者实例消费。
广播消费的使用场景是每个消费者都关心该消息,比如缓存变更消息,因为涉及失效,所以每个消费者都需要更新本地缓存,清除老数据
集群消费的使用场景是只要一个消费者处理过了就行,比如在淘宝的下单消息,理论上只需要一个实例处理就可以,重复处理有可能有问题
消费模式:
/**
* Message model
*
*/
public enum MessageModel {
/**
* broadcast
*/
BROADCASTING("BROADCASTING"),
/**
* clustering
*/
CLUSTERING("CLUSTERING");
private String modeCN;
MessageModel(String modeCN) {
this.modeCN = modeCN;
}
public String getModeCN() {
return modeCN;
}
}
Spring Boot RocketMQ Starter
spring-boot-rocketmq-starter
的github地址,可以直接从Maven中央仓库搜索到:
https://github.com/rhwayfun/spring-boot-rocketmq-starter
使用Starter开发RocketMQ非常简单,添加依赖如下:
<dependency>
<groupId>io.github.rhwayfun</groupId>
<artifactId>spring-boot-rocketmq-starter