RocketMQ是什么?
RocketMQ 是一个分布式消息中间件和流计算平台,由阿里巴巴团队开源并贡献给 Apache 软件基金会,现为 Apache 顶级项目。它主要用于处理大规模数据的传输问题,支持高吞吐量、高可用性和可扩展性的消息发布和订阅服务。RocketMQ 能够确保消息的可靠传输,支持严格的消息顺序,并提供事务性消息处理。
RocketMQ基本概念
生产者(Producer):生产并发送消息的一方
消费者(Consumer):接收使用消息的一方
代理服务器(Broker):临时保存生产者发送消息的服务器,内含多个不同的Topic
命名服务器(NameServer):统筹管理前前三个角色,
-
broker将自己注册进NameServer
-
producer、consumer通过其获取broker信息然后发送、接收消息
-
NameServer通过心跳检测确认producer、consumer、broker上下线
消息(Message):由消息体(body)、主题(Topic)、标签(tag子主题)三部分组成
消息类型(MessageType):Apache RocketMQ 支持的消息类型有普通消息、顺序消息、事务消息和定时/延时消息。
消费点位(Offset):消费者需要从代理服务器中获取消息,偏移量记录的就是所有已经消费过的数据的坐标编码
主题(Topic):主题是消息的分类,在RocketMQ中,生产者将消息发送到特定的Topic,消费者则从特定的Topic中订阅消息。一个Topic可以有多个生产者和消费者,它们可以并行地发送和接收消息
队列(Queue):队列是消息的存储结构,每个Topic下面会有多个Queue(默认四个)。RocketMQ会将同一个Topic下的消息平均分配到各个Queue中,这样可以提高消息的并发处理能力。消费者从Queue中拉取并消费消息
消费者组(Consumer Group):消费者组是一组共享同一个消息队列的消费者,它们可以并行地消费消息,但是同一个消息只会被组中的一个消费者消费。RocketMQ会保证同一个消费者组中的消费者不会消费到重复的消息