微服务如何保证接口幂等性

2020-02-26  本文已影响0人  蓬莱辰

1. 使用全局唯一ID

在执行操作前先根据这个全局唯一ID是否存在,来判断这个操作是否已经执行(或者是新增操作还是更新操作)。如果不存在则把全局ID,存储到存储系统中,比如数据库、redis等。

2. 多版本控制

在更新的接口中增加一个版本号,来做幂等

boolean updateGoodsName(int id,String newName,int version);
update goods set name=#{newName},version=#{version} where id=#{id} and version<${version}

3.条件控制

update goods set name=#{newName}where id=#{id} and status<3;

4. 分布式锁防止重复提交

如:利用redis的setnx

5. token验证

上一篇 下一篇

猜你喜欢

热点阅读