软件交付问题之为什么在监听MQ消息后去反查单据有时能查到有时查不到,如何解决

简介: 软件交付问题之为什么在监听MQ消息后去反查单据有时能查到有时查不到,如何解决

问题一:在更新多个单据时,为什么需要开启事务?


在更新多个单据时,为什么需要开启事务?


参考回答:

在更新多个单据时,务必开启事务,以确保数据的一致性。事务能够确保一系列数据库操作的原子性,即要么全部成功,要么全部失败。如果不使用事务,当其中一个更新操作失败时,其他已经成功的更新可能会导致数据不一致。通过开启事务,可以确保在出现任何错误时所有更新都被回滚,从而保持数据的完整性。


关于本问题的更多回答可点击原文查看:

https://developer.aliyun.com/ask/621607



问题二:为什么不建议通过注解的方式开启事务?


为什么不建议通过注解的方式开启事务?


参考回答:

因为通过代码显式地开启和提交/回滚事务更加直观和可控。注解方式虽然简洁,但可能隐藏了事务的边界和控制逻辑,使得在复杂业务场景下难以追踪和理解事务的具体行为。而通过代码方式,开发人员可以清晰地看到事务的开始、提交和回滚过程,更容易进行调试和错误排查。


关于本问题的更多回答可点击原文查看:

https://developer.aliyun.com/ask/621608



问题三:为什么事务中不应包含远程调用?


为什么事务中不应包含远程调用?


参考回答:

首先,远程调用的响应时间(RT)可能过长,导致事务长时间无法提交,进而长时间占用数据库连接资源。其次,如果本地事务回滚,但远程调用已经成功执行,那么跨系统的数据不一致性就可能产生。这种不一致性很难追踪和修复,因此最好在事务中避免包含远程调用。


关于本问题的更多回答可点击原文查看:

https://developer.aliyun.com/ask/621609



问题四:为什么在监听MQ消息后去反查单据有时能查到有时查不到?


为什么在监听MQ消息后去反查单据有时能查到有时查不到?


参考回答:

在监听MQ消息后去反查单据时,有时能查到有时查不到的问题可能是由于上游的MQ消息是在事务中发送的,而单据是在同一个事务中创建的。当MQ消息投递后,如果事务已经提交,那么单据就可以被查到;但如果MQ消息投递时事务尚未提交,那么此时是查不到单据的。因此,为了确保数据的可见性和一致性,需要谨慎处理涉及事务和消息队列的交互逻辑。


关于本问题的更多回答可点击原文查看:

https://developer.aliyun.com/ask/621610



问题五:什么是幂等重试?为什么它在分布式系统中非常关键?


什么是幂等重试?为什么它在分布式系统中非常关键?


参考回答:

幂等重试是指在执行远程调用或本地业务逻辑时,无论执行多少次,结果都是相同的,并且不会因为多次执行而产生副作用。在分布式系统中,幂等重试非常关键,因为系统可能会遇到宕机、网络问题等导致逻辑执行中断,当系统恢复时,需要能够安全地重试这些逻辑,而不会导致数据不一致或其他问题。


关于本问题的更多回答可点击原文查看:

https://developer.aliyun.com/ask/621611

相关实践学习
消息队列RocketMQ版:基础消息收发功能体验
本实验场景介绍消息队列RocketMQ版的基础消息收发功能,涵盖实例创建、Topic、Group资源创建以及消息收发体验等基础功能模块。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
相关文章
|
9月前
|
消息中间件 Java Unix
MQ产品使用合集之消费订单状态,订单消费待支付消息失败,是否会导致其他订单也没法消费
消息队列(MQ)是一种用于异步通信和解耦的应用程序间消息传递的服务,广泛应用于分布式系统中。针对不同的MQ产品,如阿里云的RocketMQ、RabbitMQ等,它们在实现上述场景时可能会有不同的特性和优势,比如RocketMQ强调高吞吐量、低延迟和高可用性,适合大规模分布式系统;而RabbitMQ则以其灵活的路由规则和丰富的协议支持受到青睐。下面是一些常见的消息队列MQ产品的使用场景合集,这些场景涵盖了多种行业和业务需求。
124 1
|
前端开发 Cloud Native 大数据
坑爹,线上同步近 3w 个用户导致链路阻塞引入发的线上问题,你经历过吗?
坑爹,线上同步近 3w 个用户导致链路阻塞引入发的线上问题,你经历过吗?
101 1
|
消息中间件 存储 资源调度
订单超时怎么处理?我们用这种方案
在电商业务下,许多订单超时场景都在24小时以上,对于超时精度没有那么敏感,并且有海量订单需要批处理,推荐使用基于定时任务的跑批解决方案。
1748 14
订单超时怎么处理?我们用这种方案
|
9月前
|
前端开发 UED
面试官:【后端一次性返回10万条数据怎么处理/后端发送大数据量的数据如何处理】
面试官:【后端一次性返回10万条数据怎么处理/后端发送大数据量的数据如何处理】
172 0
39activiti - 设置下一节点签收人&&签收人查询代办事项
39activiti - 设置下一节点签收人&&签收人查询代办事项
73 0
|
定位技术
后端一次性返回几百万条数据怎样处理
后端一次性返回几百万条数据怎样处理
|
存储 前端开发 NoSQL
开发小技巧系列 - 如何防止重复生成订单
如何防止重复生成订单,数据幂等性的处理
209 0
|
消息中间件 存储 RocketMQ
实时更新消息消费队列与索引文件流程说明|学习笔记
快速学习实时更新消息消费队列与索引文件流程说明
实时更新消息消费队列与索引文件流程说明|学习笔记

相关产品

  • 云消息队列 MQ