支付MQ消费场景改造

前言:这是一个MQ消费程序的业务优化改造场景,我们支付服务的消费方,主要功能是根据规则过滤一些消息,继而处理剩下的消息

        消息来源:框架监听binlog后向kafka中写入消息(只监听新增)

背景:现有一个topicA ,kafka(消息体中有一个:userId字段),日两亿消息

生产方:其他服务

现状:5个库(4个业务库+1个灰度库),每个库拥有4个服务节点,共计20个服务节点,所有节点作为一个消费集群共同消费topicA的消息

          5个库名字分别为01、02、03、04、99(灰度库)

现需改造:5个库根据规则各自消费自己应处理的数据

                  eg:1库消费ID尾号为00-24的客户消息,2库消费25-49的客户消息

限制:

        1、生产方一个topic不能增加,消息头 体什么都不能改

        2、节约成本,不再新加机器


方案:

        1. 新增5个topic,分别为:topic01、topic02、topic03、topic04、topic99

        2. 5个库在消费topicA的前提下 再消费新增的对应topic(01库多消费一个topic01)

        3. topicA现有消费逻辑改造:

                i. 消费后,比对消息体中userId,和自身能处理的区间值配置

                ii: 相同则按之前流程正常处理,不相同则根据配置发送到 新增的topic中(userId尾号为01则发送到topic01中)

                

注:为了避免从topicA消费后异步写入新topic时消息丢失,我们有做双MQ方案,kafka写入失败后会写入备用MQ,消费做幂等

  • 9
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值