微服务架构技巧篇——全局幂等

目录

一、引入前提
二、幂等
三、全局幂等
四、全局幂等方案总体设计原理
五、全局幂等常见的模式

5.1、事务级同步处理模式
5.2、事务级异步处理模式
5.3、接口级自动幂等

六、常用幂等判断技术手段

6.1、全局幂等方案中的关键技术点
6.2、如何进行“幂等判断”
6.3、常用的实现幂等判断的技术手段

6.3.1、数据库唯一索引
6.3.2、Redis SETNX 命令
6.3.3、ZooKeeper 创建节点
6.3.4、状态机判断


本文来源:极客时间vip课程笔记

一、引入前提

分布式事务都是基于接口或者消息来协作的,而分布式环境下,接口调用可能会失败,消息可能丢失,我们只能采取重试的方式来尽力保证数据最终能够达到一致性。
重试机制涉及微服务架构设计的另外一个技巧全局幂等

二、幂等

幂等(Idempotence)是一个数学与计算机科学中的概念,它指的是某个操作或函数可以多次执行并且保持同样的效果,即无论执行多少次,结果都不会改变。

具体来说,如果一个操作是幂等的,那么对同一个输入重复应用这个操作将不会产生额外的效果或变化。

当我们在网上购物,使用微信或者支付宝支付的时候,点击确认支付后网络正好断了,你也不知道是否支付成功,于是又重新刷新支付了一次。

对于微信和支付宝来说,如果不做幂等判断,就会出现一个订单支付了两次的情况;对于微信和支付宝来说,如果不做幂等判断,就会出现一个订单支付了两次的情况;而有了幂等判断,就能够保证一个订单只支付一次。

三、全局幂等

为什么我们要在幂等前面加上“全局”两个字呢?
其实这也是微服务架构的“服务分布式”特点决定的:同样的接口请求或者消息,并不一定会被同一个微服务实例处理。因此我们需要在全局的多个微服务范围内保证“幂等”,所以叫“全局幂等”

四、全局幂等方案总体设计原理

将业务操作理解为一个对象,对象本身具备**“全局唯一标识”和“状态”**,通过状态控制来实现幂等特性。
不同的全局幂等模式,区别主要体现在“全局唯一标识”如何生成、如何判断幂等状态、应用在什么场景这三个方面。

五、全局幂等常见的模式

5.1、事务级同步处理模式

事务级同步处理模式指的

© 版权声明
THE END
如果内容对您有所帮助,就支持一下吧!
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容