RocketMQ是队列模型的消息中间件,具备高性能,高可靠,高实时,分布式的特色。同时支持分布式事物的两阶段提交,实如今分布式环境的事物操做。java
1,nameserv是分布式的部署,而且相互之间不通讯,单个的宕机或增长对总体的影响较小,能够忽略。网络
2,broker是分布式的高性能实现,提供根据业务特色选择的数据同步及落盘机制,确保数据的完整及一致性数据结构
3,producer,consumer均可以是分布式,根据topic及过滤表达式定义适合业务的发送及消费机制框架
4,数据结构是基于自定义的高效二进制,数据存取以offset偏移位置进行高速高效的读写,提供顺序写,随机读的特性分布式
5,通讯协议,底层基于java的nio框架netty的通讯,自定义协议,消息头和消息体的自定义二进制序列化存取性能
提供的总体操做流程,主要是说明问题netty
1,启动nameserv,无状态服务,数据不会持久化,之内存结构存储,服务启动接收请求进行数据存取,服务关闭则数据清空中间件
2,启动broker,加载历史数据,该服务会持久化数据及数据关系配置,而后注册当前服务的数据配置到namesrv上队列
3,producer启动,首先是链接namesrv,得到broker的数据配置信息,而后链接broker,根据功能进行消息数据的发送内存
4,consumer启动,首先是链接namesrv,得到broker的数据配置信息,而后根据订阅的数据连接broker,进行网络通讯实时数据拉取