RocketMQ (一)-- 初识MQ
优势
- RocketMq是一款分布式、队列模型的消息中间件,存在的优点:
- 严格的消息顺序
- 丰富的消息拉取模式
- 高效的订阅者水平扩展能力
- 实时的消息订阅机制
- 亿级消息堆积能力
- 支持上万个队列
- 消息可以查询
专业术语
- Producter 生产者
- Consumer 消费者,一般是后台系统负责异步消费
- Push Consumer Consumer的一种,Consumer在broker上注册一个listener接口,一旦收到消息,broker会将消息推送给消费者,以推送的方法通知消费者。
- Pull Consumer 应用主动调用Consumer的拉消息方法从Broker中拉取消息,主动权是由应用来进行控制。
- Producer Group 一类Producer的集合名称,这类Produc通常发送一类消息,且发送逻辑一致
- Consumer Group 一类Consumer的集合名称,这类Consumer通常消费一类消息,且消费逻辑一致
- Broker 消息中转角色,转发消息,一般也成为Server,在JMS规范中成为Provider
- 广播消费 一条消息被多个Consumer消费,即使这些Consumer属于同一个Consumer Group中,每个Consumer都会消费一次。相当于JMS中的发布订阅模型。
- 集群模式 一个Consumer Group中的Consumer实例会平均分摊消费消息,天然的实现了负载均衡的功能,而且当新增消费者时,会自动加入到负载均衡中。例如某个Topic有9条消息,其中Consumer Group中有三个实例,那么每个实例就消费三个消息
在集群模式中,还有一个非常重要的是,一个Topic/Queue 可以被多个Consumer Group进行负载均衡,而且在每个Consumer Group中再进行负载均衡,可以实现多层的负载均衡实现。
- 顺序消费 消息消费的顺序要同发送消息的顺序一致,在RocketMQ中,主要指的是局部顺序,即一类消息为满足顺序性,必须Producer单线程顺序发送,且发送到同一个队列,这样Consumer就可以按照Producer发送的顺序消费消息。