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

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

引言

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

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

本文目录结构:

l____引言

l____ 1. 支付流程

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

1. 支付流程

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • 答:可以使用框架LCN、 MQ 、TCCC。
目录
相关文章
|
3月前
|
存储 SQL 微服务
常用的分布式事务解决方案(三)
常用的分布式事务解决方案(三)
|
3月前
|
关系型数据库 MySQL
常见分布式事务的解决方案(一)
常见分布式事务的解决方案(一)
|
1月前
|
缓存 NoSQL PHP
Redis作为PHP缓存解决方案的优势、实现方式及注意事项。Redis凭借其高性能、丰富的数据结构、数据持久化和分布式支持等特点,在提升应用响应速度和处理能力方面表现突出
本文深入探讨了Redis作为PHP缓存解决方案的优势、实现方式及注意事项。Redis凭借其高性能、丰富的数据结构、数据持久化和分布式支持等特点,在提升应用响应速度和处理能力方面表现突出。文章还介绍了Redis在页面缓存、数据缓存和会话缓存等应用场景中的使用,并强调了缓存数据一致性、过期时间设置、容量控制和安全问题的重要性。
43 5
|
3月前
|
消息中间件 中间件 关系型数据库
常用的分布式事务解决方案(四)
常用的分布式事务解决方案(四)
|
3月前
常用的分布式事务解决方案(二)
常用的分布式事务解决方案(二)
|
4月前
|
存储 NoSQL Java
一天五道Java面试题----第十一天(分布式架构下,Session共享有什么方案--------->分布式事务解决方案)
这篇文章是关于Java面试中的分布式架构问题的笔记,包括分布式架构下的Session共享方案、RPC和RMI的理解、分布式ID生成方案、分布式锁解决方案以及分布式事务解决方案。
一天五道Java面试题----第十一天(分布式架构下,Session共享有什么方案--------->分布式事务解决方案)
|
4月前
|
机器学习/深度学习 分布式计算 Cloud Native
云原生架构下的高性能计算解决方案:利用分布式计算资源加速机器学习训练
【8月更文第19天】随着大数据和人工智能技术的发展,机器学习模型的训练数据量和复杂度都在迅速增长。传统的单机训练方式已经无法满足日益增长的计算需求。云原生架构为高性能计算提供了新的可能性,通过利用分布式计算资源,可以在短时间内完成大规模数据集的训练任务。本文将探讨如何在云原生环境下搭建高性能计算平台,并展示如何使用 PyTorch 和 TensorFlow 这样的流行框架进行分布式训练。
147 2
|
4月前
|
存储 监控 数据可视化
性能监控之JMeter分布式压测轻量日志解决方案
【8月更文挑战第11天】性能监控之JMeter分布式压测轻量日志解决方案
107 0
性能监控之JMeter分布式压测轻量日志解决方案
|
5月前
|
存储 NoSQL 算法
实现分布式锁的Java解决方案
实现分布式锁的Java解决方案
|
5月前
|
关系型数据库 分布式数据库 数据库
PolarDB,阿里云的开源分布式数据库,与微服务相结合,提供灵活扩展和高效管理解决方案。
【7月更文挑战第3天】PolarDB,阿里云的开源分布式数据库,与微服务相结合,提供灵活扩展和高效管理解决方案。通过数据分片和水平扩展支持微服务弹性,保证高可用性,且兼容MySQL协议,简化集成。示例展示了如何使用Spring Boot配置PolarDB,实现服务动态扩展。PolarDB缓解了微服务数据库挑战,加速了开发部署,为云原生应用奠定基础。
332 3

热门文章

最新文章