得物技术供应链库存幂等实战分享

质量保
• 阅读 2393

日常工作中,很多场景需要我们保证系统操作的幂等性,先来了解下什么是幂等。  

引自百度百科:

幂等(idempotent、idempotence)是一个数学与计算机学概念,常见于抽象代数中。

在编程中一个幂等操作的特点是其任意多次执行所产生的影响均与一次执行的影响相同。

得物技术供应链库存幂等实战分享得物技术供应链库存幂等实战分享得物技术供应链库存幂等实战分享得物技术供应链库存幂等实战分享得物技术供应链库存幂等实战分享得物技术供应链库存幂等实战分享得物技术供应链库存幂等实战分享得物技术供应链库存幂等实战分享

注意事项

requestId重复将会直接返回上一次相同requestId的处理结果, 请确保该接口是否适用幂等场景, 适用幂等的场景应该为 :requestId只能被唯一成功处理一次,相同requestId能被成功处理多次的场景,均不适用幂等场景!

未来发展

目前为了保证业务的快速发展,只是做了较为简单的一版,在自己项目内进行了使用。

后续想要做的更好,更通用,还有一些改进点:

  1. 比如DB支持各种选型,根据服务调用方适配,想选mysql就选mysql,想选其他DB就选其他DB(有啥选啥,做到业务方可配置)。
  2. 目前存储在DB里持久化的数据是需要归档的,时间一长,记录的数据量会特别大。需要业务方使用去限制时间,比如库存操作对一个月内的操作做到幂等,支付转账等场景同理。保存时间也做到可配置。
  3. 开源,支持各种场景,包括MQ等等。

END

文 | 平川

关注【得物技术】

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
美凌格栋栋酱 美凌格栋栋酱
6个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
Stella981 Stella981
3年前
Spring Boot 接口幂等插件使用
幂等概述幂等性原本是数学上的概念,即使公式:f(x)f(f(x))能够成立的数学性质。用在编程领域,则意为对同一个系统,使用同样的条件,一次请求和重复的多次请求对系统资源的影响是一致的。幂等性是分布式系统设计中十分重要的概念,具有这一性质的接口在设计时总是秉持这样的一种理念:调用接口发生异常并且重复尝试时,总
Stella981 Stella981
3年前
Kafka Exactly
!(https://oscimg.oschina.net/oscnet/0001a9db0c7346a6b32db4586329cae6.png)作者|王蒙整理|无风我起浪这篇文章主要讲述Kafka事务性的实现,这部分的实现要比幂等性的实现复杂一些,幂等性实现是事务性实现的基础,幂等性提供了单会话单Partiti
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
3年前
BC开方(乙)
functionbcroot($幂,$指'3',$scale0){开方$dfalse;if($幂'0'){return'0';}elseif($幂'1'){return'1';}$指数
Wesley13 Wesley13
3年前
MQ实现消息的幂等性
一、什么是幂等性可以参考数据库乐观锁机制,比如执行一条更新库存的SQL语句,在并发场景,为了性能和数据可靠性,会在更新时加上查询时的版本,并且更新这个版本信息。可能你要对一个事情进行操作,这个操作可能会执行成百上千次,但是操作结果都是相同的,这就是幂等性。!(https://img2018.cnblogs.com/blog/1841773/201
Stella981 Stella981
3年前
SpringBoot接口幂等性实现的4种方案!
!(https://oscimg.oschina.net/oscnet/42a233a0deb143899955ec0d6d7805c6.jpg)作者|超级小豆丁来源|www.mydlq.club/article/94目录什么是幂等性什么是接口幂等性为什么需要实现幂等性
Easter79 Easter79
3年前
SpringBoot接口幂等性实现的4种方案!
!(https://oscimg.oschina.net/oscnet/42a233a0deb143899955ec0d6d7805c6.jpg)作者|超级小豆丁来源|www.mydlq.club/article/94目录什么是幂等性什么是接口幂等性为什么需要实现幂等性
融云IM即时通讯 融云IM即时通讯
8个月前
融云IM干货丨 在IM服务中,如何优化接口调用以减少重复数据请求?
在IM服务中,优化API接口调用以减少重复数据请求可以采取以下几种策略:使用幂等设计:幂等性意味着一次或多次调用同一操作所产生的结果是一致的。通过设计幂等接口,可以有效防止由于网络抖动、用户误操作等原因产生的重复请求。具体实现方法包括在接口请求中引入唯一请