本文共 291 字,大约阅读时间需要 1 分钟。
服务端代码:
func proc() { begin lock begin transaction amount := queryAmountFromDb() amount += req.OrderAmount setToDb(amount) end transaction // 正常结束 end lock // 这里是etcd锁,释放的时候,超时了 }
于是乎, 在客户端显示超时, 客户端不知道实际是成功还是失败, 只知道超时, 客户端可以同步/异步重试。 服务端要做到幂等性处理。
不多说。
转载地址:http://cfrvi.baihongyu.com/