RocketMQ核心概念

  • Topic:

消息主题,⼀级消息类型,⽣产者向其发送消息。通过 Topic 对消息进⾏分类。

  • ⽣产者:

​​​​​​​也称为消息发布者,负责⽣产并发送消息⾄ Topic。

  • 消费者

也称为消息订阅者,负责从 Topic 接收并消费消息。

  • 消息(Message)

⽣产者向 Topic 发送并最终传送给消费者的数据和(可选)属性的组合。消息队列中信息传递的载体

  • 消息属性

⽣产者可以为消息定义的属性,包含 Message Key 和 Tag。

  • Group

⼀类⽣产者或消费者,这类⽣产者或消费者通常⽣产或消费同⼀类消息,且消息发布或 订阅的逻辑⼀致。

  • Message ID

消息的全局唯⼀标识,由消息队列 RocketMQ 版系统⾃动⽣成,唯⼀标识某条消 息。

  • Message Key

消息的业务标识,由消息⽣产者(Producer)设置,唯⼀标识某个业务逻辑。

  • Tag

消息标签,⼆级消息类型,⽤来进⼀步区分某个 Topic 下的消息分类。

  • Producer

消息⽣产者,也称为消息发布者,负责⽣产并发送消息。

  • Producer 实例

Producer 的⼀个对象实例,不同的 Producer 实例可以运⾏在不同进程内或者不 同机器上。Producer 实例线程安全,可在同⼀进程内多线程之间共享。

  • Consumer

消息消费者,也称为消息订阅者,负责接收并消费消息。

  • Consumer 实 例

​​​​​​​Consumer 的⼀个对象实例,不同的 Consumer 实例可以运⾏在不同进程内或者 不同机器上。⼀个 Consumer 实例内配置线程池消费消息。

  • Group

⼀类 Producer 或 Consumer,这类 Producer 或 Consumer 通常⽣产或消费同 ⼀类消息,且消息发布或订阅的逻辑⼀致。

  • Group ID

Group 的标识。

  • 队列

每个 Topic 下会由⼀到多个队列来存储消息。每个 Topic 对应队列数与消息类型以 及实例所处地域(Region)相关,具体的队列数可提交⼯单咨询。

  • Exactly-Once

投递语义是指发送到消息系统的消息只能被 Consumer 处理 且仅处理⼀次,即使 Consumer 重试消息发送导致某消息重复投递,该消息在 Consumer 也只被消费⼀次。

  • 集群消费

⼀个 Group ID 所标识的所有 Consumer 平均分摊消费消息。例如某个 Topic 有 9 条消息,⼀个 Group ID 有 3 个 Consumer 实例,那么在集群消费模式下每个实 例平均分摊,只消费其中的 3 条消息。

  • ⼴播消费

​​​​​​​⼀个 Group ID 所标识的所有 Consumer 都会各⾃消费某条消息⼀次。例如某个 Topic 有 9 条消息,⼀个 Group ID 有 3 个 Consumer 实例,那么在⼴播消费模 式下每个实例都会各⾃消费 9 条消息。

  • 定时消息

Producer 将消息发送到消息队列 RocketMQ 版服务端,但并不期望这条消息⽴⻢ 投递,而是推迟到在当前时间点之后的某⼀个时间投递到 Consumer 进⾏消费,该 消息即定时消息。

  • 延时消息

Producer 将消息发送到消息队列 RocketMQ 版服务端,但并不期望这条消息⽴⻢ 投递,而是延迟⼀定时间后才投递到 Consumer 进⾏消费,该消息即延时消息。

  • 事务消息

消息队列 RocketMQ 版提供类似 X/Open XA 的分布事务功能,通过消息队列 RocketMQ 版的事务消息能达到分布式事务的最终⼀致。

  • 顺序消息

消息队列 RocketMQ 版提供的⼀种按照顺序进⾏发布和消费的消息类型,分为全局 顺序消息和分区顺序消息。

  • 全局顺序消息

对于指定的⼀个 Topic,所有消息按照严格的先⼊先出(FIFO)的顺序进⾏发布和 消费。

  • 分区顺序消息

对于指定的⼀个 Topic,所有消息根据 Sharding Key 进⾏区块分区。同⼀个分区 内的消息按照严格的 FIFO 顺序进⾏发布和消费。

  • Sharding Key

是顺序消息中⽤来 区分不同分区的关键字段,和普通消息的 Message Key 是完全不同的概念。

  • 消息堆积

Producer 已经将消息发送到消息队列 RocketMQ 版的服务端,但由于 Consumer 消费能⼒有限,未能在短时间内将所有消息正确消费掉,此时在消息队 列 RocketMQ 版的服务端保存着未被消费的消息,该状态即消息堆积。

  • 消息过滤

Consumer 可以根据消息标签(Tag)对消息进⾏过滤,确保 Consumer 最终只 接收被过滤后的消息类型。消息过滤在消息队列 RocketMQ 版的服务端完成。

  • 消息轨迹

在⼀条消息从 Producer 发出到 Consumer 消费处理过程中,由各个相关节点的 时间、地点等数据汇聚而成的完整链路信息。通过消息轨迹,您能清晰定位消息从 Producer 发出,经由消息队列 RocketMQ 版服务端,投递给 Consumer 的完整 链路,⽅便定位排查问题。

  • 重置消费位点

以时间轴为坐标,在消息持久化存储的时间范围内(默认 3 天),重新设置 Consumer 对已订阅的 Topic 的消费进度,设置完成后 Consumer 将接收设定 时间点之后由 Producer 发送到消息队列 RocketMQ 版服务端的消息。

  • 死信队列

死信队列⽤于处理⽆法被正常消费的消息。,即死信消息。当⼀条消息初次消费失败,消息队 列 RocketMQ 版会⾃动进⾏;达到最⼤重试次数后,若消费依然失 败,则表明 Consumer 在正常情况下⽆法正确地消费该消息。此时,消息队列 RocketMQ 版不会⽴刻将消息丢弃,而是将这条消息发送到该 Consumer 对应的 特殊队列中。 消息队列 RocketMQ 版将这种正常情况下⽆法被消费的消息称为死信消息(DeadLetter Message),将存储死信消息的特殊队列称为死信队列(Dead-Letter Queue)。死信消息具有以下特性: •不会再被消费者正常消费。 •有效期与正常消息相同,均为 3 天,3 天后会被⾃动删除。因此,请在死信消息产⽣后的 3 天内 及时处理。

 死信队列具有以下特性:

•⼀个死信队列对应⼀个 Group ID, 而不是对应单个消费者实例。

•如果⼀个 Group ID 未产⽣死信消息,消息队列 RocketMQ 版不会为其创建相应的死信队列。

•⼀个死信队列包含了对应 Group ID 产⽣的所有死信消息,不论该消息属于哪个 Topic。 消息队列 RocketMQ 版控制台提供对死信消息的查询、导出和重发的功能。

重新发送死信消息

⼀条消息进⼊死信队列,意味着某些因素导致消费者⽆法正常消费该消息,因此,通常需要您对其 进⾏特殊处理。排查可疑因素并解决问题后,您可以在消息队列 RocketMQ 版控制台重新发送该 消息,让消费者重新消费⼀次。

注意: 死信消息被重新发送后,不会在死信队列中被⽴即删除。

单条重发 在消息队列 RocketMQ 版控制台按任意⽅式查询到死信消息后,在某条死信消息的操作列,单 击重新发送,重发该条死信消息。 •批量重发 在消息队列 RocketMQ 版控制台按 Group ID 查询到死信消息后,勾选⽬标死信消息,然后单 击⻚⾯下⽅的批量重发按钮,重新发送所有勾选的死信消息。

  1. 消息路由 消息路由常⽤于不同地域之间的消息同步,保证地域之间的数据⼀致性。消息队列 RocketMQ 版的全球消息路由功能依托阿⾥云优质基础设施实现的⾼速通道专 线,可以⾼效地实现国内外不同地域之间的消息同步复制
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

道格拉斯范朋克

播种花生牛奶自留田

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值