日常工作中,很多场景需要我们保证系统操作的幂等性,先来了解下什么是幂等。
引自百度百科:
幂等(idempotent、idempotence)是一个数学与计算机学概念,常见于抽象代数中。
在编程中一个幂等操作的特点是其任意多次执行所产生的影响均与一次执行的影响相同。
注意事项
requestId重复将会直接返回上一次相同requestId的处理结果, 请确保该接口是否适用幂等场景, 适用幂等的场景应该为 :requestId只能被唯一成功处理一次,相同requestId能被成功处理多次的场景,均不适用幂等场景!
未来发展
目前为了保证业务的快速发展,只是做了较为简单的一版,在自己项目内进行了使用。
后续想要做的更好,更通用,还有一些改进点:
- 比如DB支持各种选型,根据服务调用方适配,想选mysql就选mysql,想选其他DB就选其他DB(有啥选啥,做到业务方可配置)。
- 目前存储在DB里持久化的数据是需要归档的,时间一长,记录的数据量会特别大。需要业务方使用去限制时间,比如库存操作对一个月内的操作做到幂等,支付转账等场景同理。保存时间也做到可配置。
- 开源,支持各种场景,包括MQ等等。
END
文 | 平川
关注【得物技术】