幂等函数

第一次听说感觉高大上,其实也就是一个名词,没有固定的解决方案,不同的业务场景用不同方法实现。

什么是幂等?

  软件开发中的幂等通常是系统接口对外的一种承诺,承诺只要调用接口成功,外部多次调用对系统的影响是一致的。

为什么要做幂等?

  比如说一个提现接口:

bool withdraw(account_id, amount);

  这个接口存在一个典型的调用环境:分布式系统的网络不确定性。

  withdraw请求可能已经被服务器端正确处理,但服务器端的返回结果由于网络等原因被丢掉了,导致客户端无法得知处理结果。如果是在网页上,一些不恰当的设计可能会使用户认为上一次的操作失败了,然后进行重试,这就可能导致withdraw被调用两次甚至多次,账户也可能被多次扣钱。

什么时候做幂等?

  1. 接口可能被重复调用(http、thrift等)
  2. 消息可能被重复发送
  3. 作业可能被并发处理
  4. 数据可能被并发处理(乐观锁)

 

写的有点泛泛而谈了,并没有名词听着感觉那么高大上。

转载于:https://www.cnblogs.com/zhengbin/p/5837861.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值