幂等
[toc]
幂等去重
最近计算节点网络异常时经常出现请求未响应问题,之前的做法是在接收到任务之后与原先存在的任务做比较,进而判断是否为同一个请求的重试,
主流的MQ实现在 autocommit=true
时天然实现了幂等
但考虑业务处理可能出错的情况我们一般会将autocommit设置成false,在业务处理成功后再提交,这时就需要使用上述幂等方案了
在接收到消息时写入请求Token以实现去重判断(Token可为Topic+Offset)提交后删除Token,整体上可以做到对业务透明
函数式编程
- 没有副作用
什么是幂等性
- 数学表述, 多次调用仍为自身,
- 不产生副作用
- 带上uuid识别是否是相同的请求,避免重复请求
- ACID 2.0 解释,与分布式中的ACID辨析
- stateless 无状态 何时使用,对内维护状态,对外接口无状态+异步。
本网站内容均采用 CC-BY-NC-SA 许可协议。转载请注明来自 LongTao!
评论