浅谈幂等 - 及使用场景
幂等
忽然听到重复请求幂等
这个词,不理解其中的幂等,于是果断找度娘解惑,度娘中的解释是:
幂等(idempotent、idempotence)是一个数学与计算机学概念,常见于抽象代数中。 在编程中.一个幂等操作的特点是其任意多次执行所产生的影响均与一次执行的影响相同。幂等函数,或幂等方法,是指可以使用相同参数重复执行,并能获得相同结果的函数。这些函数不会影响系统状态,也不用担心重复执行会对系统造成改变。例如,“getUsername()和setTrue()”函数就是一个幂等函数.更复杂的操作幂等保证是利用唯一交易号(流水号)实现.
了解这个概念是在一次听分享的过程中,基本场景是:
系统间交互通过
消息服务器
实现,如果出现重复数据,要保证实现重复请求(同一流水号的数据认为是同一条记录)幂等
,防止同一条记录多次被操作,影响数据的准确性;
关于HTTP请求幂等,详见:
http://www.cnblogs.com/weidagang2046/archive/2011/06/04/2063696.html
额外添加一个点,使用消息中件间,消息处理失败后的重试机制?
- 通过消息服务器自身的机制,如:RabbitMQ的ack功能,每次消息处理确认;
- 通过定期对数保证数据的一致;
欢迎大家共同探讨,如有不正之处,欢迎指正,共同进步!