自学内容网 自学内容网

RocketMQ中概念知识点记录 和 与SpringBoot集成实现发送 同步、异步、延时、批量、tag、key、事务消息等

1. 消息模型

  • 消息(Message): 是 RocketMQ 中数据传输的基本单位,由主题、标签、键值、消息体等组成。
  • 主题(Topic): 消息的分类,类似于邮件的主题,用于对消息进行粗粒度的分类。
  • 标签(Tag): 对消息进一步细分的标识,可以理解为消息的子类别
  • 键(Key): 用于消息的精确路由或在某些场景下作为消息的唯一标识

2. 生产者(Producer)

  • 普通消息发送:

    • 同步发送:发送消息后等待响应,确认消息是否发送成功。
    • 异步发送:发送消息后不等待响应,通过回调函数处理结果。
    • 单向发送:只发送消息,不关心发送结果
  • 事务消息:

    • 用于保证消息发送与本地事务的一致性,需要在事务执行成功后显式提交或回滚消息。

3. 消费者(Consumer)

  • 拉取模式(Pull): 消费者主动从 Broker 拉取消息。
  • 推送模式(Push): Broker 主动将消息推送给消费者,这是 RocketMQ 默认的消费方式。

4. 消息消费类型

  • 集群消费(Cluster Consuming): 每条消息只会被集群中的一个消费者消费,适用于消息需要被处理一次的情况。
  • 广播消费(Broadcast Consuming): 每条消息会被所有订阅该 Topic 的消费者消费,适用于消息需要被所有相关节点处理的情况。

5. 顺序消息

  • 全局顺序消息:
    • 消息按照发送顺序消费,适用于对消息顺序有严格要求的场景,但性能较低。
  • 分区顺序消息:
    • 在同一个消息队列中消息按顺序消费,不同队列间的消息消费顺序无法保证。
      实现原理:将某些消息,按一定规则,发到同一个队列中

6. 消费重试与死信队列

  • 当消息消费失败时,RocketMQ 会自动重新投递消息给消费者尝试再次消费。
  • 如果消息多次消费失败,可以配置消息进入死信队列,以便后续人工干预。

7. 延迟消息

  • 允许设置消息的延迟等级,控制消息在指定时间后才可被消费。

8. 消息过滤

  • Tag过滤:
    • 消费者可以根据消息的标签进行过滤,只消费特定标签的消息。
  • SQL92过滤:
    • 提供更复杂的过滤逻辑,允许根据消息属性进行条件匹配。

9. 消息堆积

  • 当消费者消费速度慢于生产者发送速度时,会出现消息堆积,可能需要增加消费者实例数来提高消费能力。

10. 监控与管理

  • RocketMQ 提供了丰富的监控指标,包括消息发送成功率、延迟、消费速率等,便于运维人员监控系统健康状态。



代码示例:


链接: https://pan.baidu.com/s/1QK_YXo0GceYyN6E4JMnSmA 提取码: gcew


原文地址:https://blog.csdn.net/qq_41712271/article/details/140544743

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!