目录
百战程序员,全站22050+开发课程+文档 ,学习精选优质好课快人一步!观看视频 快捷键ALT+N

JAVA全系列 教程

3762个小节阅读:7088.4k

收藏
全部开发者教程

C语言快速入门

JAVA全系列 教程

面向对象的程序设计语言

Python全系列 教程

Python3.x版本,未来主流的版本

人工智能 教程

顺势而为,AI创新未来

大厂算法 教程

算法,程序员自我提升必经之路

C++ 教程

一门通用计算机编程语言

微服务 教程

目前业界流行的框架组合

web前端全系列 教程

通向WEB技术世界的钥匙

大数据全系列 教程

站在云端操控万千数据

AIGC全能工具班

A

A A

White Night

阅读(433)
赞(0)

接口设计与重试机制引发的问题

image-20220606180422572

什么是幂等性

f(f(x))=f(x)

解释:

  • 数学方面:幂等元素运行多次,还等于它原来的运算结果。
  • 程序方面:在系统中,一个接口运行多次,与运行一次的效果是一致的。

为什么会产生接口幂等性问题

  • 网络波动, 可能会引起重复请求。
  • 用户重复操作,用户在操作时候可能会无意触发多次下单交易,甚至没有响应而有意触发多次交易应用。
  • 使用了失效或超时重试机制(Nginx重试、RPC重试或业务层重试等)。
  • 使用浏览器后退按钮重复之前的页面操作,导致重复提交表单。

注意:

不是所有接口都要求幂等性,要根据业务而定。

幂等性接口设计

  • Select操作:不会对业务数据有影响,天然幂等。
  • Delete操作:第一次已经删除,第二次也不会有影响。
  • Update操作:更新操作传入数据版本号,通过乐观锁实现幂等性。
  • Insert操作:此时没有唯一业务单号,使用Token保证幂等。

如何保证接口幂等性

  • 一个方向是客户端防止重复调用
  • 一个是服务端进行校验

实时效果反馈

1.下列那种情况会产生接口幂等性问题____

A 网络波动, 可能会引起重复请求

B 页面重复刷新

C RPC重试

D 以上都是正确

答案

1=>D

 

北京市昌平区回龙观镇南店村综合商业楼2楼226室

©2014-2023 百战卓越(北京)科技有限公司 All Rights Reserved.

京ICP备14032124号-2