幂等处理
(每天看过思考过的内容记录一下,欢迎来聊)
idempotence defination:
Methods can also have the property of “idempotence” in that (aside from error or expiration issues) the side-effects of N > 0 identical requests is the same as for a single request.
按照我的理解,幂等校验就是为了保证请求不会重复处理,相同的请求结果相同。
幂等处理可以分为业务幂等和数据幂等。
1.业务幂等
业务幂等通过唯一的业务单号来保证。也就是说相同的业务单号,认为是同一笔业务。使用这个唯一的业务单号来确保,后面多次相同的业务单号的处理逻辑和执行效果是一致的。(对业务单号的生成需要一定规则,即保证同样的业务同一时间只能生成唯一的业务单号)
2.数据幂等
数据幂等通过唯一值来保证。也就是说相同的请求或者相同的数据只能有一份,可以校验所有的参数或者通过一个global unique key(一般通过雪花算法加机器码加时间戳生成全球唯一key)来确保,后面多次调用想用的全球唯一key或者相同的参数数据的处理逻辑和执行效果是一致的。(只需要保证global unique key的唯一性或者参数数据的唯一性)