服务的幂等性

来源:互联网 发布:白银理财投资数据分析 编辑:程序博客网 时间:2024/05/19 10:36

2017年的第一天去了趟天津,收获最大的就是去了梁启超故居,虽然门票只有10元,但是感觉是最有意义的。梁启超之家就是个院士之家,各行各业的专家:建筑专家、火箭专家、经济专家、历史专家、考古专家、国学专家。牛!梁启超在学习、教育方面提出了自己的方法论,值得后人学习!
看了很多遍服务的幂等性,没有自己设计过、做过,总是记不牢。现在也没用过,写个博客加深下印象吧。
博客写了之后还是要多回顾。
在复杂的网络环境下,发起一次请求之后,往往无法一定能成功获得响应,这时可能需要重试。如果是网络抖动,数据在网络上的传输时间变长,导致超时(这个超时指的是业务、应用层设置的超时,不是TCP的超时重传的超时)。这时,如果进行了重试,而前面未到达的请求又到达了,就会进行两次相同的逻辑操作。如果只是简单的设置用户的性别,多次操作没有什么问题;如果是转账操作呢?这可能会造成资金损失。
因此需要通过技术手段,保证多次操作的结果跟一次操作的结果是一致的,这就是服务的幂等性。对于转账场景,可以根据订单号的有效性进行判断。

0 0