Bootstrap

【微服务】接口幂等性常用解决方案

一、前言

在微服务开发中,接口幂等性问题是一个常见却容易被忽视的问题,同时对于微服务架构设计来讲,好的幂等性设计方案可以让程序更好的应对一些高并发场景下的数据一致性问题。

二、幂等性介绍

2.1 什么是幂等性

通常我们说的幂等性,大多数情况下指的是服务端的接口幂等性。所以接口幂等性指的是,用户对于同一个操作发起的一次请求,或者多次请求结果是一致的。

举例来说:一个用户在手机APP提200块钱,一不小心点击了两次,理论上应该只取出200块钱,而不应该出来400(当然,真实场景下取钱操作是一个复杂事务,不可能一个接口点击就出来了)。在这种场景下,即使用户点了两次也应该只取出一次的钱,这就是接口幂等性。

2.2 幂等性问题产生原因

什么情况下会出现接口幂等性问题呢,通常来说主要有下面几个原因:

  • 用户重复提交,当客户端发起多次相同的请求时,服务器未能正确处理重复请求,导致产生幂等性问题。

    • 一般指用户填写好表单信息后,由于服请求响应较慢,从而多次点击提交按钮。

  • 非法调用,比如像第三方,通过逆向手段调试到了接口地址,然后通过爬虫或接口工具多次调用。

  • 并发操作

    • 在高并发环境下,可能出现多个请求同时到达服务器,如果服务器未能正确处理并发请求,可能会导致幂等性问题的产生。<

;