DeathWhispers

如何使用 Redis 实现分布式锁?

如何使用 Redis 实现分布式锁? Redis 实现分布式锁,需要考虑如下几个方面: 1、正确的获得锁 set 指令附带 nx 参数,保证有且只有一个进程获得到。 2、正确的释放锁 使用 Lua 脚本,比对锁持有的是不是自己。如果是,则进行删除来释放。 3、超时的自动释放锁 set 指令附带 expire 参数,通过过期机制来实现超时释放。 4、未获得到锁的等待机制 sl...

分布式事务的基础

数据库的 ACID 满足了数据库本地事务的基础,但是它无法满足分布式事务,这个时候衍生了 CAP 和 BASE 两个经典理论。 🦅 CAP 理论 CAP 定理,又被叫作布鲁尔定理。对于设计分布式系统来说(不仅仅是分布式事务)的架构师来说,CAP 就是你的入门理论。 C (一致性):在分布式系统中的所有数据备份,在同一时刻是否同样的值。(等同于所有节点访问同一份最新的数据副本) ...

分布式事务如何处理怎么保证事务一致性?

强一致性:每一笔交易都保证事务一致 最终一致性 误区:认为 分布式事务 = Seata 分布式事务:将不同节点上的事务操作,提供操作原子性保证。同时成功或者同时失败。第一个要点:就是要在原本没有直接关联的事务之间建立联系1、Http连接:尽最大努力通知。– 事后补偿2、MQ:事务消息机制。3、Redis:opKey-> 事务A 开始时 opKey+1,事务B 开始时 opKey ...

分布式事务分类:柔性事务和刚性事务

分布式场景下,多个服务同时对服务一个流程,比如电商下单场景,需要支付服务进行支付、库存服务扣减库存、订单服务进行订单生成、物流服务更新物流信息等。如果某一个服务执行失败,或者网络不通引起的请求丢失,那么整个系统可能出现数据不一致的原因。 上述场景就是分布式一致性问题,追根到底,分布式一致性的根本原因在于数据的分布式操作,引起的本地事务无法保障数据的原子性引起。 分布式一致性问题的解决思路...