要么就是 a 调了 b 两次,要么就是熔断限流什么的,在补偿的时候多调了一次,估计是用法不当,正常使用也走补偿。 至于你遇到这种问题就想通过幂等性来解决,要看这个业务是不是适合幂等。 至于加锁,就别玩了,动不动就锁,高并发的情况下,人家秒杀的需求就是要并发修改同一行。 搞个分布式,又经常加锁,分布式的意义就是专门花大力气搞得很复杂,只是为了解耦分包开发?什么集群是加倍性能还是减弱性能?
@yiheweigui 我的认知下也觉得请求应该只有一个,可能中间有地方使用错误。当前只是偶现的情况,也不排除是 C 服务同时调用了两次,所以想通过加锁的方式拦截掉相同的请求。当前的业务场景是用户同步一批设置项,数据库里一个用户对应一条记录,之前考虑加锁应该没问题,基本不存在同一个用户同一时间很多次去同步数据库。多谢大佬指点