分布式锁、分布式自旋锁在金融支付系统中的应用(真实场景)

本文介绍了分布式锁和分布式自旋锁在金融支付系统中的应用。通过真实场景,阐述了如何利用这两种锁来解决并发请求时的数据库压力、重复订单等问题,并详细解释了它们的工作原理和实现方式。同时,提到了在金融系统中如部分退费、订单状态更新等场景的具体实践,强调了在设计时考虑锁的超时、公平性以及防止脏数据的重要性。
摘要由CSDN通过智能技术生成


前言

分布式锁在当下微服务架构的系统中有着举足轻重的作用,特别是金融支付系统这些和钱相关强一致的系统被广泛的使用,下面我将介绍先真实的支付系统中如何利用分布式锁来实现一些特殊的需求。

1. 分布式锁

1.1 什么是分布式锁

想必做web开发的或多或少都会听过、或者用过,这里我就简单介绍下分布式锁的场景和实现方式,如果需要详细的实现可以稍微搜一下非常的多。
所谓分布式锁在我看来就是能让同一资源在不同机器、应用中保持互斥:
如果理解java中的锁机制,其实就是将java锁做成跨服务器,从而协调各个实例。

分布式锁实现方式有很多,如redis、zookeeper,选择主要看场景:
了解cap原则的同学应该知道 分布式系统 只能做到AP(可用性牺牲强一致)或者CP(强一致牺牲可用),这也对应了 redis和zookeeper 这两种分布式锁应用的场景,但是目前看来redis分布式锁的应用会广泛一些,因为现在系统很多都是异步的根本无法保证强一致性,而是最终一致性,而redis锁的效率也高于zookeeper,所以一般互联网公司实际场景应用会趋向于redis

分布式锁实现原理:
其实分布式锁的实现原理非常简单,这里来一个比喻: 就好比大家去占坑,发现已经有人了就走了以redis分布式

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值