淘东电商项目(56) -支付系统分布式事务的解决方案

简介: 淘东电商项目(56) -支付系统分布式事务的解决方案

引言

在上一篇博客《淘东电商项目(55) -支付系统核心表设计》,主要讲解支付系统的数据表结构设计。

本文主要讲解支付系统的分布式事务的问题,以及解决方案。

本文目录结构:

l____引言

l____ 1. 支付流程

l____ 2. 分布式事务的几个问题

1. 支付流程

下面我贴出一个简单的支付流程:

以上是用户提交订单到支付系统的大致流程,当然里面涉及到最重要的一个问题就是分布式事务的问题,下面来讲解下。

2. 分布式事务的几个问题

① 在网络延迟情况下,回调接口出现重试时,如何保证接口幂等性问题?(举例:第三方系统异步回调成功支付结果给支付系统)

  • 答:使用全局id的方式,如果再次请求时,根据全局id查询数据库,如果发现已经修改了数据,确认已接收到消息( 重试机制是间隔性)。

②在网络延迟情况下,第三方系统没有及时的将支付结果通知给商户端,存在支付状态不一致时,如何解决?

  • 答:一般第三方系统会提供查询结构,可以调用第三方系统主动查询支付状态。

③商户系统回调接口中,如果存在代码问题,或者是商户系统宕机,导致第三方支付系统一直在重试? 最后放弃重试 如何解决呢?

  • 答:方法一:“手动补偿机制+日志记录 主动调用第三方接口查询”;方法二:“写一个定时Job,每天定时检查数据”。

④支付金额与商品金额如果不一致时,如何处理?

  • 答:在异步回调中,使用预支付金额与回调真实支付金额进行比对,如果不一致的话,说明该交易信息存在异常。可以使用日志+对账核查。

⑤支付服务如何与其他系统保证分布式事务问题?

  • 答:采用第三方支付流程实现补偿和重试机制遵循最终一致性 Base理论和CAP理论。

⑥与内部系统中出现分布式事务问题

  • 答:可以使用框架LCN、 MQ 、TCCC。
目录
相关文章
|
2月前
|
存储 SQL 微服务
常用的分布式事务解决方案(三)
常用的分布式事务解决方案(三)
|
2月前
|
关系型数据库 MySQL
常见分布式事务的解决方案(一)
常见分布式事务的解决方案(一)
|
2月前
|
消息中间件 中间件 关系型数据库
常用的分布式事务解决方案(四)
常用的分布式事务解决方案(四)
|
2月前
常用的分布式事务解决方案(二)
常用的分布式事务解决方案(二)
|
3月前
|
存储 NoSQL Java
一天五道Java面试题----第十一天(分布式架构下,Session共享有什么方案--------->分布式事务解决方案)
这篇文章是关于Java面试中的分布式架构问题的笔记,包括分布式架构下的Session共享方案、RPC和RMI的理解、分布式ID生成方案、分布式锁解决方案以及分布式事务解决方案。
一天五道Java面试题----第十一天(分布式架构下,Session共享有什么方案--------->分布式事务解决方案)
|
3月前
|
存储 监控 数据可视化
性能监控之JMeter分布式压测轻量日志解决方案
【8月更文挑战第11天】性能监控之JMeter分布式压测轻量日志解决方案
95 0
性能监控之JMeter分布式压测轻量日志解决方案
|
4月前
|
存储 NoSQL 算法
实现分布式锁的Java解决方案
实现分布式锁的Java解决方案
|
4月前
|
关系型数据库 分布式数据库 数据库
PolarDB,阿里云的开源分布式数据库,与微服务相结合,提供灵活扩展和高效管理解决方案。
【7月更文挑战第3天】PolarDB,阿里云的开源分布式数据库,与微服务相结合,提供灵活扩展和高效管理解决方案。通过数据分片和水平扩展支持微服务弹性,保证高可用性,且兼容MySQL协议,简化集成。示例展示了如何使用Spring Boot配置PolarDB,实现服务动态扩展。PolarDB缓解了微服务数据库挑战,加速了开发部署,为云原生应用奠定基础。
295 3
|
4月前
|
负载均衡 Java 开发者
Spring Cloud实战:构建分布式系统解决方案
Spring Cloud实战:构建分布式系统解决方案
|
4月前
|
存储 数据管理 数据库
现代数据库技术中的分布式一致性问题与解决方案探讨
分布式系统在现代数据库技术中扮演着重要角色,但分布式环境下的数据一致性问题始终是挑战之一。本文深入探讨了分布式一致性的核心概念、各种一致性模型的特点及其在实际应用中的优缺点,旨在为技术从业者提供全面的视角和实用的解决方案。

热门文章

最新文章