记一次生产 mysql主从数据库延迟问题,以及mq消息,消费比spring提交的事物更快。

1.问题出现的原因如下:业务场景,业务人员 上传文件 异步解析,文件上传以后,然后上传oss 服务,写入文件记录表,得到文件地址,文件地址之后再发送消息 到 mq 中,消费者消费mq(同一个项目监听) ,拿到文件oss 的url 请求三方接口 ,解析完成。

dev和test 环境中都是 单实例部署, 生产后续才知道 ,数据库有主从 ,且K8s 上容器部署为双实例。

出现的问题是,当文件表写入mysql 库之后,然后发送消息, 消息消费之后,拿到文件链接去改写 文件表中解析状态的时候,没有找到的文件记录表,也就是 在消息产生之后,消息产生产生的那个线程任务中的事物 没有提交或者是因为 读主库中数据 (从库中写 update 此时还没有同步到主库 )导致查询为空。后续优化,事务提交之后才去发送mq消息,ApplicationEventPublisherAware ,后者那种情况,在第一个优化之后,update 的时候,锁定业务主键,直接update操作 业务逐渐,而不是先查 在update(三张关联表,需要第一章文件表查到,解析记录id ,再去解析),或者没有找到记录的时候,做线程等待。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值