“接口幂等性”的版本间的差异
跳到导航
跳到搜索
Jihongchang(讨论 | 贡献) |
Jihongchang(讨论 | 贡献) |
||
第7行: | 第7行: | ||
在这个过程中,以目前主流的 RESTful 为例: | 在这个过程中,以目前主流的 RESTful 为例: | ||
− | 在实际的开发过程中会遇到这样的情况——系统和系统之间(这里指的就是应用系统和数据服务)是通过网络来进行数据传输的,只要是网络就可能出现网络抖动的情况,那么为了保证系统的高可靠性,作为前端的调用系统,可能会增加像 Spring | + | 在实际的开发过程中会遇到这样的情况——系统和系统之间(这里指的就是应用系统和数据服务)是通过网络来进行数据传输的,只要是网络就可能出现网络抖动的情况,那么为了保证系统的高可靠性,作为前端的调用系统,可能会增加像 Spring Retryable 这样的组件,通过不断重试发送相同的调用来尽可能地提高系统的可靠性,这是日常开发中非常常见的一种使用方式。 |
+ | |||
+ | 但是这种使用方式会带来一种附加的问题:作为后台服务,必须要考虑幂等性。 | ||
+ | |||
+ | |||
+ | |||
+ | === 具体案例 === | ||
+ | PUT <nowiki>https://xxxxx.com/employee/salary</nowiki> {"id":"1","incr_salary":500} |
2023年3月5日 (日) 09:55的版本
https://www.bilibili.com/video/BV1J44y1k7Se
什么是幂等性
发一次接口调用与发多次相同的接口消息都能得到与预期相符的结果
作为前端的应用,应用系统往往需要和后台的数据服务进行交互,在这个交互的过程中通常会选择 RESTful 或者 RPC 的方式进行调用。
在这个过程中,以目前主流的 RESTful 为例:
在实际的开发过程中会遇到这样的情况——系统和系统之间(这里指的就是应用系统和数据服务)是通过网络来进行数据传输的,只要是网络就可能出现网络抖动的情况,那么为了保证系统的高可靠性,作为前端的调用系统,可能会增加像 Spring Retryable 这样的组件,通过不断重试发送相同的调用来尽可能地提高系统的可靠性,这是日常开发中非常常见的一种使用方式。
但是这种使用方式会带来一种附加的问题:作为后台服务,必须要考虑幂等性。
具体案例
PUT https://xxxxx.com/employee/salary {"id":"1","incr_salary":500}