RocketMQ—基本流程图分析

  • Post author:
  • Post category:其他


1.最先启动NameServer集群,充当注册中心的作用(底层相当于启动了Netty服务器);

2.Broker启动时向所有NameServer注册(方式就是每10秒一次的心跳),注册内容包括:BrokerId,地址,名称,所属集群。

3.NameServer每30秒检测Borker是否宕机;

4.Producer集群发送消息前先从NameServer中获取Broker服务器地址列表,然后根据负载算法选择一台broker进行发送;流程如下

4.1消息长度验证

4.2查找主题路由信息

4.3选择消息队列

4.4消息发送

5.Consumer集群根据消息队列负载机制(一个消息队列在同一时间只允许被一个消费者消费,一个消息消费者可以同时消费多个消息队列),从broker拉取消息;流程如下

5.1消息消费

5.2消息确认(ACK)

5.3消费进度管理

注意:

NameServer之间互不通信,可能某一时刻存在数据不一致情况;NameServer数据一致性没有zookeeper高,但性能比zookeeper好。

问题:RocketMQ主流架构模式那怎样的?

答:上图就是RocketMQ的主流架构:

1.RocketMQ双主双从模式;

2.RocketMQ刷盘为异步刷盘,提高访问量;

3.RocketMQ主从复制为同步复制,确保RocketMQ主宕机了,数据不丢失;

4.RocketMQ主从读写分离:与一般的中间件不同,RocketMQ是消费者先向主服务器发起拉取消息的请求,然后主服务器返回一批消息,然后根据主服务器的负载压力和主从同步情况,向服务器建议下次消息拉取是从主服务器还是从从服务器拉取。



版权声明:本文为qq_40823910原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。