一、概述
1、阿里设计的分布式、队列模型的消息中间件
特点:
(1)支持严格的消息顺序;
(2)支持topic与Queue两种模式;
(3)亿级消息堆积能力;
(4)友好的分布式特性;
(5)同时支持Pul和Push方式消费;
(6)历经多次双十一考验;
(7)纯java编写,基于通信框架Netty;
2、高可靠、高并发、低延迟
二、消息消费
1、重复消费:
幂等处理,解决重复消费
2、顺序消费:RocketMQ本身支持顺序消费
原理:
(1)将消息投递到同一个队列中,在队列内部RocketMQ保证先进先出。
(2)同1个队列会被投递到同1个消费者实例,再由消费者拉取数据进行消费
(3)消费者内部维护本地队列锁,保证只有1个线程进行消费
三、RocketMQ组件和集群部署结构
1、NameServer 名称服务器(类似于Zookeeper)
(1)保存Broker相关元信息,并给生产者消费者查找Broker信息;
(2)无状态、可横向扩展,集群部署;
(3)每个Broker在启动时到N