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的整体架构和基本概念了,有说的不对的或者不准确的地方欢迎大家指正,不要忘了给我点个赞哦,如果你有不同的想法,可以评论留言哦。谢谢大家伙儿,我们下篇文章见面~~