突破Java面试(38)-分布式服务接口的幂等性
1 面试题
分布式服务接口的幂等性如何设计(比如不能重复扣款)?
2 考点分析
从这开始,面试官就已经进入了实际的生产问题的面试了
一个分布式系统中的某个接口,要保证幂等性,如何保证?
这个事,其实是你做分布式系统的时候必须要考虑的一个生产环境的技术问题.为什么呢?
假如你有个服务提供一个接口,这服务部署在5台机器上,有个付款接口.
然后用户在前端操作时,不知为啥,一个订单不小心发起了两次支付请求,然后这俩请求分散在了这个服务部署的不同的机器上,这下好了,结果一个订单扣款扣两次,尴尬了!
或者是订单系统调用支付系统进行支付,结果不小心网络超时,然后订单系统走了前面我们看到的那个重试机制,给你重试了一把,好,支付系统收到一个支付请求两次,而且因为负载均衡算法落在了不同的机器上,尴尬了!
所以你肯定得知道这事儿,否则你做出来的分布式系统恐怕容易埋坑!
网