当前位置: 首页 > article >正文

java八股-分布式服务的接口幂等性如何设计?

文章目录

  • 接口幂等
  • token + Redis
  • 分布式锁

原文视频链接:讲解的流程特别清晰,易懂,收获巨大
【新版Java面试专题视频教程,java八股文面试全套真题+深度详解(含大厂高频面试真题)】

https://www.bilibili.com/video/BV1yT411H7YK/?p=56&share_source=copy_web&vd_source=afbacdc02063c57e7a2ef256a4db9d2a

接口幂等

在这里插入图片描述

token + Redis

第一次请求:这里是我们点击进去某个商品页面,就会向服务端发送请求,请求获取token,这里服务端接受到请求之后吧token存储到Redis里面,接着返回token到客户端。
第二次请求:这里我们假如手贱多按了几次,提交订单,导致后面发送了好几次请求。其中只有1次是成功的,原因如下,请求req带token去服务端,服务端验证token是否存在,存在则删除token,删除了之后,其他多余的请求req来了个之后发现token没了,只能返回失败的结果,因此只有1个请求是能够被Redis验证为token存在,然后真的扣钱支付成功的!!

在这里插入图片描述

分布式锁

采用trylock的方式,非阻塞锁,只有能抢到锁的线程能执行完毕,这个也是保证了接口的幂等性,其余线程全部失败
在这里插入图片描述


http://www.kler.cn/a/418429.html

相关文章:

  • 数据集-目标检测系列- 海边漫步锻炼人检测数据集 person >> DataBall
  • hive3.1.3安装及基本例子
  • uniapp input只输入一个字符就自动失去焦点
  • Cursor AI快捷键的使用场景及作用
  • Mybatis:CRUD数据操作之多条件查询及动态SQL
  • 基于Java Springboot奶茶点餐微信小程序
  • 爬虫系统学习3——chrome分析post与json
  • 基于深度学习的卷积神经网络十二生肖图像识别系统(PyQt5界面+数据集+训练代码)
  • 如何手搓一个智能宠物喂食器
  • 网络协议(TCP/IP模型)
  • GEE案例——基于Landsat 8 C02数据的LST地表温度计算和下载(筛选制定温度范围的影像下载)
  • Java开发每日一课:Java开发岗位要求
  • HTMLHTML5革命:构建现代网页的终极指南 - 2. HTMLHTML5H5的区别
  • 农业强国助农平台:开启2025年助农新篇章
  • 【MySQL】:索引
  • 鸿蒙NEXT元服务:论如何免费快速上架作品
  • 个人信息修改昵称
  • PMP–一、二、三模、冲刺–分类–8.质量管理
  • GRU模型:原理、实现与分析
  • LeetCode—74. 搜索二维矩阵(中等)
  • 【Go - 什么有序?解密MongoDB bson.D】
  • 用php 处理 xls和xlsx (简单版)
  • 【JavaEE 初阶】⽹络原理 - 初识
  • 组播基础实验
  • FRU文件
  • python7学习笔记-循环、迭代、pass