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