rocketmq 架构


rocketmq 架构

 

      

name server:节点相互独立,彼此之间互不同心,broker与每个name server建立长连接,每隔30秒向name server发送心跳,上传元数据,name server每隔10秒钟扫描broker连接,如果2分钟没有收到心跳数据,则断开broker连接

broker:可部署为多主多从,每个broker都与每个name server建立长连接,每隔30秒向name server发送心跳数据,并与producer、consumer建立长连接(用于接受消息存储,消息投递),每隔10秒钟扫描连接,如果连续2分钟没有收到心跳,则断开连接

producer:从name server处获取topic的元数据,与对应的broker建立长连接,并定时发送心跳,向broker发送消息

consumer:从name server处获取元数据,与master、salve broker建立长连接,定时发送心跳,从broker拉取消息

 

broker主从同步:同步主从、异步主从

同步主从:slave broker写入成功后,master消息返回消息写入成功

异步主从:master将消息发给slave broker,不需要接收slave的写入状态,即可返回消息写入状态

 

刷盘方式:同步刷盘、异步刷盘

同步刷盘:消息写入磁盘后,返回写成功状态

异步刷盘:消息提交到内存,即可返回写成功状态

 

一般情况下,可将集群设置为多主多从,主从同步,异步刷盘即可满足使用要求;多主可在某个master故障后,producer向其他可用的master broker发送消息,集群仍然可以继续使用;使用同步主从,slave可以同步master的消息,对消息可靠性要求较高时,producer使用同步发送,集群配置为多主多从,同步主从可以有效防止消息丢失

 

 

你可能感兴趣的:(rocketmq,rocketmq,架构)