RocketMQ 相关概念

RocketMQ 相关概念

文章目录

  !版权声明:本博客内容均为原创,每篇博文作为知识积累,写博不易,转载请注明出处。

一、Apache RocketMQ 是什么

二、Apache RocketMQ 基本概念

  • 主题(Topic): Topic 是 RocketMQ 中消息传输和存储的顶层容器,是一个逻辑概念,用于标识同一类业务逻辑的消息,由多个队列组成。
  • 消息类型(MessageType): MessageType 是 RocketMQ 中按照消息传输特性的不同而定义的分类,用来描述消息的传输方式,比如普通消息、顺序消息、事务消息和定时/延时消息。
  • 消息队列(MessageQueue): MessageQueue 是 RocketMQ 中消息存储和传输的实际容器,也是消息的最小存储单元。
  • 消息(Message): Message 是 RocketMQ 中最小的数据传输单元,生产者将业务数据的负载和拓展属性包装成消息发送到服务端,服务端按照相关语义将消息投递到消费端进行消费。
  • 消息视图(MessageView): MessageView 是 RocketMQ 中面向开发视角提供的一种消息只读接口,通过消息视图可以读取消息内部的多个属性和负载信息,但是不能对消息本身做任何修改。
  • 消息标签(MessageTag): MessageTag 是 RocketMQ 中按照业务逻辑对消息进行分类和过滤的属性,每个主题下可以有多个消息标签,消息标签之间是逻辑或的关系。
  • 消息位点(MessageQueueOffset): MessageQueueOffset 是 RocketMQ 中消息消费进度管理中的消费位点,每个队列对应一个消费位点,消费位点是消息在队列中的消费进度,每个队列消费位点是唯一的,每个队列消费位点是递增的。
  • 消费位点(ConsumerOffset): 一条消息被某个消费者消费完成后不会立即从队列中删除,RocketMQ 会基于每个消费者分组记录消费过的最新一条消息的位点,即消费位点。
  • 消息索引(MessageKey): MessageKey 是 RocketMQ 提供的面向消息的索引属性。通过设置的消息索引,可以快速查找到对应的消息内容。
  • 生产者(Producer): 生产者是 RocketMQ 中用来构建并传输消息到服务端的运行实体,生产者通常被集成在业务系统中,将业务消息按照要求封装成消息并发送至服务端。
  • 事务检查器(TransactionChecker): 事务检查器是 RocketMQ 中生产者用来执行本地事务检查和异常事务恢复的监听器,事务检查器应该通过业务侧数据的状态来检查和判断事务消息的状态。
  • 事务状态(TransactionResolution): 事务状态是 RocketMQ 中事务消息发送过程中,事务提交的状态标识,服务端通过事务状态控制事务消息是否应该提交和投递。
  • 消费者组(ConsumerGroup): 消费者组是 RocketMQ 中承载多个消费行为一致的消费者的负载均衡分组,消费者分组并不是运行实体,而是一个逻辑资源,在 RocketMQ 中,通过消费者分组内初始化多个消费者实现消费性能的水平扩展以及高可用容灾。
  • 消费者(Consumer): 消费者是 RocketMQ 中用来接收并处理消息的运行实体,消费者通常被集成在业务系统中,从服务端获取消息,并将消息转化成业务可理解的信息,供业务逻辑处理。
  • 消费结果(ConsumeResult): 消费结果是 RocketMQ 中 PushConsumer 消费监听器处理消息完成后返回的处理结果,用来标识本次消息是否正确处理。消费结果包含消费成功和消费失败。
  • 订阅关系(Subscription): 订阅关系是 RocketMQ 中消费者获取消息、处理消息的规则和状态配置,订阅关系由消费者分组动态注册到服务端系统,并在后续的消息传输中按照订阅关系定义的过滤规则进行消息匹配和消费进度维护。
  • 消息过滤: 消费者可以通过订阅指定消息标签(Tag)对消息进行过滤,确保最终只接收被过滤后的消息合集。过滤规则的计算和匹配在 RocketMQ 的服务端完成。
  • 重置消费位点: 以时间轴为坐标,在消息持久化存储的时间范围内,重新设置消费者分组对已订阅主题的消费进度,设置完成后消费者将接收设定时间点之后,由生产者发送到 RocketMQ 服务端的消息。
  • 消息轨迹: 消息轨迹是 RocketMQ 中消息消费进度管理中的消费轨迹,记录了消息从生产者发出到消费者接收并处理的完整链路信息。
  • 消息堆积: 生产者已经将消息发送到 RocketMQ 的服务端,但由于消费者的消费能力有限,未能在短时间内将所有消息正确消费掉,此时在服务端保存着未被消费的消息,该状态即消息堆
  • 事务消息: 事务消息是 RocketMQ 中消息发送过程中,消息发送方和消息接收方都需执行本地事务的场景,事务消息分为发送方提交和发送方回滚两种状态。
  • 定时/延时消息: 定时/延时消息是 RocketMQ 中消息发送过程中,消息发送方指定消息发送时间,消息发送时间到达后,消息被投递到消费端。
  • 顺序消息: 顺序消息是 RocketMQ 中消息发送过程中,消息发送方指定消息发送顺序的场景,顺序消息按照发送顺序依次投递到消费端。

三、主题 Topic

生产者(Producer)

生产者是Apache RocketMQ 系统中用来构建并传输消息到服务端的运行实体。生产者通常被集成在业务系统中,将业务消息按照要求封装成消息并发送至服务端。更多信息,请参见生产者(Producer)。

事务检查器(TransactionChecker)

Apache RocketMQ 中生产者用来执行本地事务检查和异常事务恢复的监听器。事务检查器应该通过业务侧数据的状态来检查和判断事务消息的状态。更多信息,请参见事务消息。

事务状态(TransactionResolution)

Apache RocketMQ 中事务消息发送过程中,事务提交的状态标识,服务端通过事务状态控制事务消息是否应该提交和投递。事务状态包括事务提交、事务回滚和事务未决。更多信息,请参见事务消息。

消费者分组(ConsumerGroup)

消费者分组是Apache RocketMQ 系统中承载多个消费行为一致的消费者的负载均衡分组。和消费者不同,消费者分组并不是运行实体,而是一个逻辑资源。在 Apache RocketMQ 中,通过消费者分组内初始化多个消费者实现消费性能的水平扩展以及高可用容灾。更多信息,请参见消费者分组(ConsumerGroup)。

消费者(Consumer)

消费者是Apache RocketMQ 中用来接收并处理消息的运行实体。消费者通常被集成在业务系统中,从服务端获取消息,并将消息转化成业务可理解的信息,供业务逻辑处理。更多信息,请参见消费者(Consumer)。

消费结果(ConsumeResult)

Apache RocketMQ 中PushConsumer消费监听器处理消息完成后返回的处理结果,用来标识本次消息是否正确处理。消费结果包含消费成功和消费失败。

订阅关系(Subscription) 订阅关系是Apache RocketMQ 系统中消费者获取消息、处理消息的规则和状态配置。订阅关系由消费者分组动态注册到服务端系统,并在后续的消息传输中按照订阅关系定义的过滤规则进行消息匹配和消费进度维护。更多信息,请参见订阅关系(Subscription)。

消息过滤 消费者可以通过订阅指定消息标签(Tag)对消息进行过滤,确保最终只接收被过滤后的消息合集。过滤规则的计算和匹配在Apache RocketMQ 的服务端完成。更多信息,请参见消息过滤。

重置消费位点 以时间轴为坐标,在消息持久化存储的时间范围内,重新设置消费者分组对已订阅主题的消费进度,设置完成后消费者将接收设定时间点之后,由生产者发送到Apache RocketMQ 服务端的消息。更多信息,请参见重置消费位点。

消息轨迹 在一条消息从生产者发出到消费者接收并处理过程中,由各个相关节点的时间、地点等数据汇聚而成的完整链路信息。通过消息轨迹,您能清晰定位消息从生产者发出,经由Apache RocketMQ 服务端,投递给消费者的完整链路,方便定位排查问题。

消息堆积 生产者已经将消息发送到Apache RocketMQ 的服务端,但由于消费者的消费能力有限,未能在短时间内将所有消息正确消费掉,此时在服务端保存着未被消费的消息,该状态即消息堆积。

事务消息 事务消息是Apache RocketMQ 提供的一种高级消息类型,支持在分布式场景下保障消息生产和本地事务的最终一致性。

定时/延时消息 定时/延时消息是Apache RocketMQ 提供的一种高级消息类型,消息被发送至服务端后,在指定时间后才能被消费者消费。通过设置一定的定时时间可以实现分布式场景的延时调度触发效果。

顺序消息 顺序消息是Apache RocketMQ 提供的一种高级消息类型,支持消费者按照发送消息的先后顺序获取消息,从而实现业务场景中的顺序处理。


  !版权声明:本博客内容均为原创,每篇博文作为知识积累,写博不易,转载请注明出处。