文章

请描述下 RocketMQ 的整体流程?

请描述下 RocketMQ 的整体流程?

整体流程

  1. 启动 Namesrv ,Namesrv起 来后监听端口,等待 Broker、Producer、Consumer 连上来,相当于一个路由控制中心。
  2. Broker 启动,跟所有的 Namesrv 保持长连接,定时发送心跳包。

心跳包中,包含当前 Broker 信息(IP+端口等)以及存储所有 Topic 信息。注册成功后,Namesrv 集群中就有 Topic 跟 Broker 的映射关系。

  1. 收发消息前,先创建 Topic 。创建 Topic 时,需要指定该 Topic 要存储在 哪些 Broker上。也可以在发送消息时自动创建Topic。
  2. Producer 发送消息。

启动时,先跟 Namesrv 集群中的其中一台建立长连接,并从Namesrv 中获取当前发送的 Topic 存在哪些 Broker 上,然后跟对应的 Broker 建立长连接,直接向 Broker 发消息。

  1. Consumer 消费消息。

Consumer 跟 Producer 类似。跟其中一台 Namesrv 建立长连接,获取当前订阅 Topic 存在哪些 Broker 上,然后直接跟 Broker 建立连接通道,开始消费消息。

本文由作者按照 CC BY 4.0 进行授权