- Name Server:Broker 的注册中心,负责 Broker 管理、路由信息管理(消息来了到哪个 Broker)
- Broker:RocketMQ 核心,负责接收生产者消息、消息持久化、消息过滤....
- Topic:主题,收发消息都要指明主题,生产者的消息往哪里发、消费者到哪里消费消息
- Queue:队列,每个 Topic 默认 4 个队列,真实存放消息的地方,有三个属性要关注下
- 最大位点/代理者位点:当前队列累计已存放的消息条数
- 消费者位点:当前队列累计已消费的消息条数
- 差值:代理者位点-消费者位点。0:当前队列没有消息;正数:消息堆积或消费者是广播模式;负数:队列被重置过
- Message:消息
- 自动生成唯一 ID(但是不可靠,官网说的)
- 可以手动指定 key,既然 id 可能不唯一,那就手动设置一个唯一标识
- 可以指定消息为延迟消息,配置一个延迟级别,每个级别代表不同延迟时间
- Producer:生产者
- 可以设置队列数量,默认 4 个
- 当发送失败需要重试时,可以更改重试次数,默认 2 次
- 需指定发送模式:单向(不管有没有发成功)、同步(等待发送是否成功)、异步(异步等待发送成功状态)
- Consumer:消费者
- 必须要指定消费者组
- pull、push 两种消费方式,pull:消费者主动拉取消息,push:Borker 主动把消息推给消费者
- 默认是多线程消费,可以指定为单线程
- 两种消费模式:集群模式,可以指定为广播模式
- 集群:点对点模式,同组的消费者分摊 Topic 的队列,消息只会被一个消费者消费
- 广播:同组的所有消费者都要监听队列,即每个消费者都要消费消息
- ConsumerGroup:消费者组,同一个消费者组下的消费者必须订阅同一个 Topic(订阅一致性)