RocketMQ是一款高性能、高吞吐量的分布式消息队列系统,它采用了分布式架构,支持多生产者和消费者并发读写,具有高可用性、高吞吐量、低延迟等特点。本文将对RocketMQ的系统架构进行详细解析。
RocketMQ采用了分布式架构,主要包括以下部分:
消息(Message)
传输最小单元
主题(Topic)
有点类似RabbitMQ的交换机。一类消息的集合,RocketMQ消息订阅基本单位。每个主题包含若干消息,每条消息只能属于一个主题。
标签(Tag)
有点类似RabbitMQ的路由键,为主题设置不同的标签,同一个工程不同业务,不同标签
eg:
Topic:product-service
tag:price、stock
消费者可以监听主题product-service,不同tag消息
队列(Queue)
存放消息。一个主题多个队列(分区)
注意:一个Topic的队列中消息只能被一个消费组的的的一个消费者消费。不允许同个消费者组的多个消费者消费
消息标识(MessageId/Key)
RocketMQ中每个消息拥有唯一的MessageId,且可以携带具有业务标识的Key,以方便对消息的查询
Name Server(类似注册中心)
NameServer是一个Broker与Topic路由的注册中心,支持Broker的动态注册与发现。
主要两个功能:
Broker管理:维护broke信息,位置心跳,检查B荣可人是否存活
路由信息管理:Producer和Conumser通过NameServer获取整个Broker集群的路由信息,从而进行消息的投递和消费
RocketMQ采用分布式架构,包括NameServer、Broker、Producer和Consumer等核心组件。NameServer负责存储和管理生产者和消费者的元数据信息,Broker负责消息的存储、转发、持久化等功能,Producer负责向Broker投递消息,Consumer负责从Broker中拉取消息并进行处理。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。