RocketMQ实战教程之NameServer与BrokerServer

61 阅读1分钟

RocketMQ实战教程之NameServer与BrokerServer

在RocketMQ安装中没有具体去介绍NameServer与BrokerServer,先保证RocketMQ能够正常运行.这里我们来看看在RocketMQ中NameServer与BrokerServer扮演着什么样的角色起到了什么样的作用

现有角色分析与流程

相关角色

  • NameServer: 用来管理所有 BrokerServer
  • BrokerServer: 存储和传输消息
  • Producer: 生产者
  • Consumer: 消费者

工作流程图

image.png

工作流程详解

这里分俩部分进行讲解分别product发送消息和consumer消费消息

product发送消息

在RocketMQ的架构中,生产者向BrokerServer发送消息,生产者并不知道BrokerServer是谁,甚至不知道有多少个BrokerServer.生产者会先和NameServer建立连接,因为NameServer管理着所有的BrokerServer.然后生产者就知道向哪个BrokerServer发送消息了.

consumer消费消息

消费者也会和生产者发送消息一样,先去NameServer上找到需要去哪个BrokerServer中拉去消息进行消费.BrokerServer会实时上报NameServer自己的状态,有点类似于Spring Cloud的注册中心组件.这里也对应了我们一开始需要先启动NameServer然后启动BrokerServer去指定NameServer的ip地址

总结

有了NameServer,生产者和消费者只需要通过NameServer建立连接无需关心BrokerServer.类似Spring Cloud中注册中心和服务之间的关系一样,也方便后期做拓展集群.