图解RocketMQ之消息的过滤
各人好,我是苍何。经过之前几篇文章,我们知道了 RocketMQ 的架构以及主题 topic 的属性和设置,知道了原来消息是存在一个个队列中的。
也知道了同一个 topic 有一个大概多个队列对应给一个大概多个消耗者消耗。消耗者根据消耗位点确定消耗记录。
还理解了可以通过重置消耗位点来处置惩罚消息堆积、重新消耗和跳过消耗某一消息。
按照发布订阅模子,RocketMQ 会将全部订阅了主题的消息都投递给消耗者,但有时候消耗者只关心消息里的某一内容而不是全量消息。
好比订单系统订单状态的改变需要被不同的子系统处置惩罚,而下游不同系统需要不同状态的订单:
[*]库存系统只关心已支付的订单,用来扣减库存
[*]物流系统只关心待发货订单,用于安排发货
[*]会计系统关心全部已完成的订单,且金额大于1000元的订单,用于财政统计
https://img-blog.csdnimg.cn/img_convert/3ec4beff692245b9a3d6a1656744ba48.png
这个时候怎么办呢?聪明的你肯定想到这还不简单,在各自系统做逻辑判定,全量接收后,各自系统做过滤呗。
https://img-blog.csdnimg.cn/img_convert/233ce862643329dca0c94e02826dba23.png
这当然不是优雅的办法(寻求优雅的道路不能停
页:
[1]