RocketMQ初探-2不同消息种类的使用

RocketMQ初探-2不同消息种类的使用

消息分类

  1. 基本样例
  2. 顺序消息
  3. 广播消息
  4. 延迟消息
  5. 批量消息
  6. 过滤消息
  7. 事务消息

基本样例

消息生产者
生产者基本样例
消息消费者
消费者基本样例

顺序消息

背景:对于不同生产者以先后顺序发送的消息,到达broker消费的时候可能不会按照发送的顺序执行,比如第一个消息执行逻辑是num+1,第二个消息是num * 3,那么消息的顺序会影响最终的一个计算结果。
所以顺序消息是保证局部消息有序,而不是保证全局消息有序。
保证生产者将关联消息发送到同一条消息队列,同时保证消费者从同一条消息队列读取到关联消息。
顺序消息生产者
在这里插入图片描述

顺序消息消费者

广播消息

背景:相比于集群模式,一个消息往集群消费者发送,会保证每个消息在一个消费者组里只会被消费一次。
广播模式:会往订阅了该topic下的所有消费者推送。
在这里插入图片描述
发送模式枚举
在这里插入图片描述

延迟消息

背景:业务场景中可能消息需要指定时间后触发,可以使用到RocketMq的延迟消息,设置一个参数即可。
在这里插入图片描述

批量消息

背景:减少网络io成本,将多个消息一次性发送。
在这里插入图片描述
对消息体做一个总的长度限制,分批发送
在这里插入图片描述

过滤消息

通过tag过滤(过滤条件单一,只能根据tag)
生产者还是根据指定的tag发送消息
在这里插入图片描述
消费者根据tag来过滤
在这里插入图片描述

通过sql过滤 给消息设置指定属性
在这里插入图片描述
消费者根据指定的sql表达式过滤
在这里插入图片描述

事务消息

在这里插入图片描述
消费者逻辑
在这里插入图片描述
生产者逻辑
在这里插入图片描述

关于消费者ConsumeFromWhere属性的理解

在这里插入图片描述

  1. 如果一个消费者组之前已经启动过,再次启动后,无论consumeFromWhere设置何值,都会根据在broker记录的offset进行消费
  2. 如果是一个新启动的消费者组,且消费者组订阅的消息仍在broker的内存中,无论consumeFromWhere设置何值,都将从0开始消费
  3. 如果是一个新启动的消费者组,且消费者组订阅的消息不在broker的内存中,根据consumeFromWhere设置的获取对应的offset进行消费
    参考网址:
    https://www.mpoom.cn/2021/09/06/rockermq/rocketmq-zhong-consumefromwhere-xiang-jie/
    https://blog.csdn.net/weixin_39848998/article/details/111680646
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值