1.简介
RocketMQ是具有低延迟、高并发、高可用、高可靠的分布式消息中间件,可为分布式应用系统提供异步解耦和削峰填谷的能力。
2.核心概念
- nameserver:主要管理Broker、路由信息
- 管理Broker,接受来自Broker集群发送的注册,以及提供心跳机制来检查Broker是否还存活。
- 管理路由信息,每一个NameServer都存储有路由信息和队列信息,提供给Producer和Consumer查询
- broker:主要负责消息的存储和传递,消息查询
-
存储消息、consumer的消费偏移量、consumer的订阅关系、Topic信息
-
Topic的创建和更新消息通过broker转发到nameserver
- Topic:消息主题,一级消息类型,通过Topic对消息进行分类。更多信息,请参见Topic与Tag最佳实践。
- 消息(Message):消息队列中信息传递的载体。
- Message ID:消息的全局唯一标识,由消息队列RocketMQ版系统自动生成,唯一标识某条消息。
- Message Key:消息的业务标识,由消息生产者(Producer)设置,唯一标识某个业务逻辑。
- Tag:消息标签,二级消息类型,用来进一步区分某个Topic下的消息分类。更多信息,请参见Topic与Tag最佳实践。
- Producer:消息生产者,也称为消息发布者,负责生产并发送消息。
- Consumer:消息消费者,也称为消息订阅者,负责接收并消费消息。可分为两类:
- Push Consumer:消息由消息队列RocketMQ版推送至Consumer。
- Pull Consumer:该类Consumer主动从消息队列RocketMQ版拉取消息。
- 分区:即Topic Partition,物理上的概念。每个Topic包含一个或多个分区。
- 消费位点(消费策略):即从哪个位置(First_Offset、Last_Offset)开始消费。
- Group:一类Producer或Consumer,这类Producer或Consumer通常生产或消费同一类消息,且消息发布或订阅的逻辑一致。
- Group ID:Group的标识。
- 队列