参考答案
RocketMQ 的工作流程:
1 启动 NameServer
NameServer启动后监听端口,等待Broker、Producer以及Consumer连上来
2 启动 Broker
启动之后,会跟所有的 NameServer 建立并保持一个长连接,定时发送心跳包。心跳包中包含当前Broker 信息(ip、port等)、Topic 信息、以及 Borker 与 Topic 的映射关系。
3 创建Topic
创建时,需要指定该 Topic 要存储在哪些 Broker 上,也可以在发送消息时自动创建 Topic。
4 Producer发送消息
启动时,先跟 NameServer 集群中的其中一台建立长连接,并从 NameServer 中获取当前发送的Topic 所在的 Broker 。
然后,从队列列表中轮询选择一个队列,与队列所在的 Broker 建立长连接,进行消息的发送。
5 Consumer 消费消息
跟其中一台 NameServer 建立长连接,获取当前订阅 Topic 存在哪些 Broker 上,然后直接跟Broker 建立连接通道,进行消息的消费。
以上,是消息队列 RocketMQ 面试题【RocketMQ 的工作流程是怎样的?】的参考答案。
输出,是最好的学习方法。
欢迎在评论区留下你的问题、笔记或知识点补充~
—end—