九个问答牢记RocketMQ架构( 二 )


  • 集群里都有哪些Broker?
  • 有哪些生产者?
  • 有哪些消费者?
  • 集群里都有哪些 Topic?
  • 这些 Topic 的消息队列分别存在哪些 Broker 上?
(9) 那Nameserver如何知道这些消息呢?答:类似古时候某个人去府里当差,当差之前要把自己的所有信息登记在册 。同样的 , Broker、Producer、Consumer在启动时也会将数据注册到 NameServer 。
Broker 在启动时会将自己注册到 NameServer 上,通过心跳持续更新元数据 。同样的,Producer、Consumer也会和NameServer建立连接、动态交互集群中的数据,这样即方便上报自己的信息和也方便获取集群里的其他信息 。
九个问答牢记RocketMQ架构

文章插图
至此,RocketMQ的架构图已经成型,每一个部件这么设计的原因也很清晰 。
二、总结RocketMQ里的核心角色有4个:Broker、Producer、Consumer、NameServer , 消息存储的核心对象有2个:Topic、MessageQueue 。
为了保证数据不丢失 和 数据不倾斜,同一个Topic里的MessageQueue会分散存储在不同的Broker里 。




推荐阅读