RocketMQ-架构和角色

234 阅读2分钟

接下来需要从整体上对RocketMQ的架构和角色进行简单的认识。

架构

直接看图就好,一图胜千言

  • Producer发送消息前,会去NameServer中拉取路由信息
  • Producer获取路由信息后,发送给Broker
  • Consumer消费信息前,会去NameServer中拉取路由信息
  • Consumer消息信息

但是生产者和消费者是根据什么去NameServer拉取路由信息的。

我们先看放大一下Broker,研究一下内部的细节

简单总结一下:

  • Borker中有一个或多个Topic
  • Topic中有一个或多个MessageQueue

其实,生产者和消费者是根据Topic在NameServer中找到持有该Topic的Broker。然后发送消息时,轮询Topic下的MessageQueue,比如第一次发送消息,发送到MessageQueue1中,第二次发送消息,发送到MessageQueue2中。

如果你想研究得深一点,你可以看一下下面这段代码:轮询选MessageQueue

角色

  • Producer:消息的发送者。可以类比为:寄信人
  • Consumer:消息的接受者。可以类比为:收信人
  • NameServer:管理broker、topic的路由信息。可以类比为:路由器
  • Broker:存储和传输消息。可以类比为:邮局
  • Topic:区分消息的种类
  • MessageQueue:用于发送和接受消息的通道。

Topic和Producer的关系?

  • 多对多:一个producer可以发送消息给一个或多个Topic;一个Topic也可以被多个不同的producer发送。

Topic和Consumer的关系?

  • 多对多:一个consuemr可以订阅一个或多个Topic消息;一个Topic消息可以被不同的Consumer订阅。

Broker和Topic的关系?

  • 多对多:一个Broker可以存多个不同的Topic;一个Topic也可以放在多个不同的Broker上。

Topic和MessageQueue的关系?

  • 一对多:一个Topic可以有多个MessageQueue。但一个MessageQueue只能属于一个Topic。

Broker和NameServer的关系?

  • 一个Broker需要在所有NameServer中注册。

总结

这一节就简单分享了一下RocketMQ的架构图和角色之间的关系,对RocketMQ有整体了解。

后续文章

  • RocketMQ-入门(已更新)
  • RocketMQ-架构和角色(已更新)
  • RocketMQ-消息发送(已更新)
  • RocketMQ-消费信息
  • RocketMQ-消费者的广播模式和集群模式(已更新)
  • RocketMQ-顺序消息
  • RocketMQ-延迟消息
  • RocketMQ-批量消息
  • RocketMQ-过滤消息
  • RocketMQ-事务消息
  • RocketMQ-消息存储
  • RocketMQ-高可用
  • RocketMQ-高性能
  • RocketMQ-主从复制
  • RocketMQ-刷盘机制
  • RocketMQ-幂等性
  • RocketMQ-消息重试
  • RocketMQ-死信队列 ...

欢迎各位入(guan)股(zhu),后续文章干货多多。