幂等性介绍
现如今很多系统都会基于分布式或微服务思想完成对系统的架构设计。那么在这一个系统中,就会存在若干个微服 务,而且服务间也会产生相互通信调用。那么既然产生了服务调用,就必然会存在服务调用延迟或失败的问题。当 出现这种问题,服务端会进行重试等操作或客户端有可能会进行多次点击提交。如果这样请求多次的话,那最终处 理的数据结果就一定要保证统一,如支付场景。此时就需要通过保证业务幂等性方案来完成。
幂等性不仅仅只是一次或多次操作对资源没有产生影响,还包括第一次操作产生影响后,以后多次操作不会再产生 影响。并且幂等关注的是是否对资源产生影响,而不关注结果。
以SQL为例:
-
select * from table where id=1 。此SQL无论执行多少次,虽然结果有可能出现不同,都不会对数据产生 改变,具备幂等性。
-
insert into table(id,name) values(1,'heima') 。此