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

高并发系统 - 接口幂等技术方案,高可用系统架构与技术选型

幂等概念来自于数学,在计算机科学中,幂等表示一次后、或多次请求某一资源,应该有同样的影响效果。
在业务表现上一般是同样的数据效果,下面就常用的业务场景,来聊聊幂等的技术方案。

----------------- 数据层 -----------------

  1. 索引与事务
    根据业务需要,给表添加唯一索性或组合索引,防止产生脏数据。
    根据数据库隔离级别,比如可重复读,在操作多表数据时,使用事务,要求数据要么全部操作成功,要么全部失败。
  2. 悲观锁
    根据实际情况使用,查询指定数据时指定用于更新,注意根据主键或唯一索引查询。数据锁定时间可能会很长,会造成读取该数据的等待时间长。
  3. 乐观锁
    乐观锁只在更新数据的那一刻锁表,适用于并发冲突不是很高的场景,可配合业务重试机制。
    乐观锁的实现方式,一般通过版本号或时间戳来实现,其他条件也可。
    之前的文章『MySQL锁与应用场景』,有说乐观锁与悲观锁的SQL示范。

----------------- 业务层 -----------------

  1. 对外提供的接口
    对接外部系统时,使用来源、业务流水号等,作为联合唯一索引,或者生成分布式唯一ID,记录在数据库。
    来请求时,查询数据库流水号已存在,并处理成功,就是重复请求,直接返回。如果数据不存在,记录流水号,开始处理,插入数据成功,接着返回成功。
  2. 先查询再插入
    对于并发不高的业务,为了支持重复执行,简单的处理方式是,查询关键数据来判断&
http://www.lryc.cn/news/174842.html

相关文章:

  • 简单的手机电脑无线传输方案@固定android生成ftp的IP地址(android@windows)
  • Unity3D 检测鼠标位置的Sprite像素颜色
  • layui input 监听事件
  • 一致性思维链(SELF-CONSISTENCY IMPROVES CHAIN OF THOUGHT REASONING IN LANGUAGE MODELS)
  • 腾讯云16核服务器配置大全_16核CPU型号性能测评
  • HTML中Input elements should have autocomplete attributes的解决方案
  • 2808. 使循环数组所有元素相等的最少秒数;1015. 可被 K 整除的最小整数;1001. 网格照明
  • Python爬虫在Web应用自动化测试中的应用
  • 苹果手机短信删除了怎么恢复?3种有效方法介绍
  • 前端JavaScript中的 == 和 ===区别,以及他们的应用场景,快来看看吧,积累一点知识。
  • 文献阅读:LIMA: Less Is More for Alignment
  • 机器学习第十四课--神经网络
  • React(react18)中组件通信04——redux入门
  • 最新AI创作系统+ChatGPT网站源码+支持GPT4.0+支持ai绘画+支持国内全AI模型
  • react+umi项目中引入antd组件报错:“Button”不能用作 JSX 组件解决方案
  • 常用算法模板
  • 最全跨境独立站建站详细步骤解析
  • 提升群辉AudioStation音乐体验,实现公网音乐播放
  • 虹科分享 | 谷歌Vertex AI平台使用Redis搭建大语言模型
  • VS Code 代码跳转到定义(.js 和 .vue文件跳转)
  • 华为云云耀云服务器L实例评测 | Docker 部署 Reids容器
  • 聚观早报 | 杭州亚运开幕科技感拉满;腾讯官宣启动「青云计划」
  • Linux Gnome桌面无法打开终端Terminal
  • MySQL学习笔记15
  • 6、SpringBoot_项目的打包与运行
  • 图像语义分割概述
  • ViT细节与代码解读
  • Linux中软链接与硬链接的作用、区别、创建、删除
  • 第一章:最新版零基础学习 PYTHON 教程(第十四节 - Python 条件和循环语句–Python 中的 with 语句)
  • 安科瑞AMC16-DETT铁塔jizhan直流电能计量模块,直流计量用