RocketMQ 整体架构与基本概念
RocketMQ 整体架构与基本概念
RocketMQ 的整体架构
RocketMQ 部署架构主要分为四个部分:
Producer:消息生产者的角色,主要负责把消息发送到 Broker,支持分布式集群方式部署。
Consumer:消息消费者的角色,主要负责从 Broker 订阅消息消费,支持分布式集群方式部署。
Broker:消息存储的角色,主要负责消息存储,投递和查询,以及服务高可用保证,支持分布式集群方式部署。
NameServer:服务管理的角色,主要负责管理 Broker 集群的路由信息,支持分布式集群方式部署。
NameServer 是 Topic 路由注册中心,类似于 Zookeeper,支持 Broker 的动态注册与发现
主要功能有:
服务注册:NameServer 接收 Broker 集群的注册信息,保存下来作为路由信息的基本数据,提供心跳检测机制,检查 Broker 是否还存活
路由信息管理:NameServer 保存 Broker 集群的路由信息,提供客户端查询 Broker 的队列信息,Producer 和 Consumer 通过 NameServer 可以知道 Broker 集群的路由信息,从而进行消息的投递和消费。
RocketMQ 的基本概念
Message:消息,系统所传输信息的物理载体,生产和消费数据的最小单位。每条消息必须属于一个 Topic,RockeMQ 中每条消息拥有唯一的 MessageID,且可以携带具有业务标识的 key
Topic:主题,表示一类消息的集合,每个主题都包含若干条消息,每条消息都只能属于一个主题,Topic 是 RocketMQ 进行消息订阅的基本单位。
Queue:消息队列,组成 Topic 的最小单位。默认情况下一个 Topic 对应多个 Queue,Topic 是逻辑概念,Queue 是物理存储,在 Consumer 消费 Topic 消息时底层实际拉取 Queue 的消息。
Tag:为消息设置的标志,用于同一主题下区分不同类型的消息。来自同一业务单元的消息,可以根据不同业务目的在同一主题下设置不同标签。消费者可以根据 Tag 实现不同子主题的不同消费的处理逻辑
UserProperties:用户自定义的属性集合,属于 Message 一部分
ProducerGroup:同一类 Producer 的集合,这类 Producer 发送同一类消息并发送逻辑一致,如果发送的是服务消息,并且原始生产者在发送之后崩溃,则 Broker 服务器会联系同一生产者组的其他生产者实例提交或回溯消费
ConsumerGroup:同一类 Consumer 的集合,这类 Consumer 通常消费同一类消息并且消费逻辑一致。消费者组的消费者实例必须订阅完全相同的 Topic。消费者组似的消息消费方面实现负载均衡和容错机制变得很容易。
好了,这就是 RocketMQ 的整体架构和基本概念了,有说的不对的或者不准确的地方欢迎大家指正,不要忘了给我点个赞哦,如果你有不同的想法,可以评论留言哦。谢谢大家伙儿,我们下篇文章见面~~
版权声明: 本文为 InfoQ 作者【周杰伦本人】的原创文章。
原文链接:【http://xie.infoq.cn/article/dd71d47a31f72b0b51c54b7ca】。文章转载请联系作者。
评论