接口幂等性

概述

接口幂等性(Idempotence)是计算机科学和网络通信领域的一个重要概念,用于描述某个操作可以重复执行多次而不会产生不同的结果。幂等性是设计和开发网络服务和API时的重要原则之一,特别是在处理与数据修改相关的操作时,以确保系统的可靠性和一致性。

实现方式

设计幂等性的API对于分布式系统的可靠性和容错性至关重要。它允许客户端在网络通信中重试操作,而无需担心产生不一致的结果。在API设计中,可以通过以下方式来确保幂等性:

  1. 幂等性检查:在处理请求之前,服务器可以检查请求的幂等性,以确保不会产生意外的结果。

    • 缺点:
      • 前置判断地方太多,容易遗留
      • 干扰正常业务编写
  2. 构建幂等表:

    image-20230919102511895

    • 关键点:

      • 请求的请求头中必须带有唯一请求id
      • 判断是否在Redis中存在,不存在则存入Redis(格式为:系统-Id:请求状态:过期时间)
      • 数据服务完成请求需要修改Redis中该请求的状态(利用AOP进行后置通知更新)
    • 缺点:

      • 前台应用需要进行改造
      • 架构复杂度增加