RocketMQ实战教程之NameServer与BrokerServer
在RocketMQ安装中没有具体去介绍NameServer与BrokerServer,先保证RocketMQ能够正常运行.这里我们来看看在RocketMQ中NameServer与BrokerServer扮演着什么样的角色起到了什么样的作用
现有角色分析与流程
相关角色
- NameServer: 用来管理所有 BrokerServer
- BrokerServer: 存储和传输消息
- Producer: 生产者
- Consumer: 消费者
工作流程图
工作流程详解
这里分俩部分进行讲解分别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中注册中心和服务之间的关系一样,也方便后期做拓展集群.