IT老齐架构300讲笔记
文章平均质量分 57
https://space.bilibili.com/359351574/channel/series
Peter Pan 1231
结硬寨 打呆仗 WebChat JianLong1231
展开
-
IT老齐架构300讲笔记(086) 新年将至,100W用户8000W流量在线贺卡应用架构如何优化
目录一、场景背景二、架构分析2.1 分析核心复杂度2.2 计算架构核心数据三、架构改进3.1 结果推导3.2 改进架构专栏链接: IT老齐架构300讲笔记一、场景背景 二、架构分析2.1 分析核心复杂度当下架构核心复杂度有3点每个贺卡要占用5mb的带宽,而单台ECS只有200MB,肯定不够用 单台ECS API性能极限有限,肯定扛不住 100万用户在5个小时内预计将产生8000万数据,数据库扛得住吗2.2 计算架构核心数据.原创 2022-01-25 17:10:00 · 2684 阅读 · 0 评论 -
IT老齐架构300讲笔记(077) 几张图讲明白RocketMQ高可用方案
目录一、RocketMQ有哪些角色二、RocketMQ消息生产消费流程三、Broker主挂了RocketMQ怎么办四、Broker主从都挂了RocketMQ怎么办五、NameServer挂了RocketMQ怎么办六、同步复制与异步复制之间的区别于应用场景专栏链接: IT老齐架构300讲笔记一、RocketMQ有哪些角色二、RocketMQ消息生产消费流程三、Broker主挂了RocketMQ怎么办不会进行自动的主从切换四、Broker..原创 2022-01-24 23:27:38 · 2970 阅读 · 0 评论 -
IT老齐架构300讲笔记(074) 从76237到753毫秒,海量数据大页码MySQL查询该如何优化?
目录一、场景需求二、查询改进2.1 初步改进2.2 利用上下页机制改进2.3 连续切换页还要考虑出现大量重复数据的情况专栏链接: IT老齐架构300讲笔记一、场景需求按日期升序排列,查看第50000页数据二、查询改进2.1 初步改进 2.2 利用上下页机制改进2.3 连续切换页还要考虑出现大量重复数据的情况...原创 2022-01-24 17:25:06 · 2313 阅读 · 0 评论 -
IT老齐架构300讲笔记(068) 高并发电商热门商品缓存访问倾斜,该怎么解决
目录一、热门商品缓存访问倾斜二、访问倾斜解决方案 2.1 热门数据分片2.2 如何区分热点数据2.3 缓存前置 + 闪电缓存专栏链接: IT老齐架构300讲笔记一、热门商品缓存访问倾斜访问倾斜: 少量的服务器承载了大量的请求二、访问倾斜解决方案热门数据分片(热点数据特征是短时间访问超高,数据总量相对较少) 缓存前置 + 闪电缓存2.1 热门数据分片 2.2 如何区分热点数据2.3 缓存前置 + 闪电缓存...原创 2022-01-23 23:04:49 · 401 阅读 · 0 评论 -
IT老齐架构300讲笔记(065) 十分钟上手阿里巴巴分布式流控神器Alibaba Sentinel
目录一、为什么需要做流量控制1.1Sentinel 是什么?1.2 Sentinel架构1.3 Sentinel 的开源生态二、Alibaba Sentinel 部署与接入2.1 启动Sentinel控制台2.2 启动Sentinel Demo三、Sentinel拦截执行原理一、为什么需要做流量控制1.1Sentinel 是什么? https://github.com/alibaba/Sentinel/wiki/%E4%BB%8B%E7%BB%8DSe..原创 2022-01-21 15:56:40 · 289 阅读 · 0 评论 -
IT老齐架构300讲笔记(064) 上了微服务就能高并发?扯淡,几张图给你讲明白微服务架构的作用
目录一、微服务帮我们解决了什么问题?1.1 系统间通信困难1.2 系统内部复杂度对外暴露1.3 系统间通信逻辑复杂1.4 系统的重复建设二、微服务改造2.1 改造后的微服务架构2.2 标准化的通信过程Restful2.3 对外屏蔽系统内部复杂度2.4 有序的调用链路2.5 大一统的架构设计2.6 规避大一统的架构设计一、微服务帮我们解决了什么问题?1.1 系统间通信困难1.2 系统内部复杂度对外暴露1.3 系统间通信逻辑复杂.原创 2022-01-21 14:34:38 · 862 阅读 · 0 评论 -
IT老齐架构300讲笔记(063) 大型电商整点秒杀业务场景商品库存如何预防超卖现象
目录一、分析库存超卖的产生二、秒杀场景的分析三、高并发下预防超卖的解决方案一、分析库存超卖的产生二、秒杀场景的分析秒杀商品库存总量固定 先到先得,瞬间并发极大,但写库量有限三、高并发下预防超卖的解决方案利用预减库存方式杜绝超卖 利用Nginx+Lua在网关层面将无效请求阻挡 利用MQ消息队列的限流特性保证MySQL不会被瞬间击垮 APP需要额外设计轮询机制查询订单状态...原创 2022-01-20 17:56:33 · 1319 阅读 · 0 评论 -
IT老齐架构300讲笔记(062) 聊聊Cache Aside Pattern与延迟双删 缓存一致性如何保障
目录一、为什么不能直接更新缓存二、Cache Aside Pattern到底说了什么2.1为什么不是“先删缓存,再写库”2.2 Cache Aside Pattern三、延迟双删3.1 Cache Aside Pattern不一致场景3.2 延迟双删解决极端场景数据不一致专栏链接: IT老齐架构300讲笔记一、为什么不能直接更新缓存不要考虑去update更新缓存二、Cache Aside Pattern到底说了什么Cache Asid..原创 2022-01-20 09:31:35 · 335 阅读 · 0 评论 -
IT老齐架构300讲笔记(061) 大白话聊聊BASE最终一致性
目录一、什么是BASE最终一致性1.1 CAP背景1.2 CP1.3 AP1.4 BASE最终一致性二、保障BASE常见措施有哪些2.1 重试2.2 数据校对程序2.3 人工介入一、什么是BASE最终一致性1.1 CAP背景1.2 CPCP表现为订单创建后一直等待库存减少后才返回结果。适用于数据一致性要求高、低并发的场景。表现为短信没发成功,用户一直处于阻塞等待1.3 APAP表现为订单创建后无需等待短信是否发送,直接将订单创建成原创 2022-01-20 09:01:31 · 601 阅读 · 0 评论 -
IT老齐架构300讲笔记(060) 分布式架构开发时N点血的教训
目录一、什么是分布式架构?二、分布式开发各个方面分析2.1 网络2.2 性能2.3 运维成本2.4 组织架构层面2.5 集成测试三、微服务最佳实践3.1 微服务的划分原则3.2 微服务实践通用原则3.3 为每一个微服务模块明确使命3.4微服务确保独立的数据存储3.5 服务间通信优先采用聚合器模式3.6 一定要务实,不要强行“微服务”化专栏链接: IT老齐架构300讲笔记一、什么是分布式架构?分布式系统是将一个大的系统打散成很多个小系统、.原创 2022-01-19 23:51:01 · 2656 阅读 · 0 评论 -
IT老齐架构300讲笔记(056) 日千万级订单系统的高可用、高性能架构该如何设计
目录一、场景二、如何设计一个简单的订单系统三、如何避免丢单情况四、重构优化4.1 如何设计一个支持日万级的订单系统4.2 千日万级的订单系统可能遇到的问题4.3 如何设计一个支持千日万级的订单系统一、场景我们每天都在使用网络进行下单,购买各种各样的商品和服务,作为一名后端服务的程序员,你有没有好奇地想过,在网络下单后,后台流程是如何处理的,订单是如何生成的,又是如何推送到下游的各个系统的,以及在这个过程中,订单系统是如何保证系统低延迟、高可用的,尤其是不出现丢单.原创 2022-01-19 15:59:35 · 2916 阅读 · 3 评论 -
IT老齐架构300讲笔记(054) 分析医X云架构,为什么抛弃MySQL去拥抱MongoDB
目录一、介绍医X云医疗大数据的技术架构二、MongoDB在海量处理数据时有什么优势专栏链接: IT老齐架构300讲笔记一、介绍医X云医疗大数据的技术架构二、MongoDB在海量处理数据时有什么优势程序使用的表达(JSON文档)和数据存储是一致的,称为“面向对象数据模型”...原创 2022-01-18 15:41:23 · 1834 阅读 · 0 评论 -
IT老齐架构300讲笔记(053) 单页10万QPS,京东如何通过动静分离架构抗住超高并发访问
目录一、动静分离1.1 架构三大分离设计1.2 动静分离1.3 有效区分页面中的动静数据是优化的关键前提二、动静分离案例2.1 缓存架构2.2 动静分离流程图2.3 页面静态化与伪静态化技术2.4 伪静态化2.5 静态化的问题三、动静整合方案3.1利用SSI实现动静分离3.2 Ajax异步请求法 京东动静结合方案专栏链接: IT老齐架构300讲笔记一、动静分离1.1 架构三大分离设计读写分离 动静分离 前后台分离1.2 动静..原创 2022-01-18 15:16:58 · 1145 阅读 · 0 评论 -
IT老齐架构300讲笔记(051) 微博架构中大V更新动态,动态通知采用推Push还是拉Pull更合适
目录一、推模式(Push)与拉模式(Pull)有什么不同二、写扩散与读扩散该如何优化应对2.1 写扩散(Push)优化2.2 读扩散(Pull)优化2.3推特的混合模式专栏链接: IT老齐架构300讲笔记一、推模式(Push)与拉模式(Pull)有什么不同 Push模式 Pull拉取模式 实时性 较好,通过网络管道准实时发送 较差,取决于定时轮询时间.原创 2022-01-18 13:43:17 · 561 阅读 · 0 评论 -
IT老齐架构300讲笔记(050) MySQL服务器该如何选择 CPU、内存、硬盘三大件
目录一、CPU优先选大核还是选多核?二、物理内存多大合适?三、硬盘RAID该怎么选?一、CPU优先选大核还是选多核?二、物理内存多大合适?三、硬盘RAID该怎么选?原创 2022-01-18 00:04:02 · 635 阅读 · 0 评论 -
IT老齐架构300讲笔记(049) 比MySQL快100倍,解读cassandra列式数据库高性能背后的原理
目录一、列式存储二、为什么列式存储性能这么高2.1 行式存储查询的劣势2.2 列式存储查询的优势(顺序读)2.3 列式存储的问题一、列式存储列式数据库是以列相关存储架构进行数据存储的数据库,我们常见熟悉的关系型数据库是行式存储。应用场景:批量处理、超大规模即时查询二、为什么列式存储性能这么高2.1 行式存储查询的劣势2.2 列式存储查询的优势(顺序读)2.3 列式存储的问题...原创 2022-01-18 00:04:38 · 955 阅读 · 0 评论 -
IT老齐架构300讲笔记(048) 为什么Kafka这么快,解密Kafka高性能背后的秘密
目录一、Kafka实现高性能二、Kafka所做的优化2.1 磁盘顺序读写2.2 页缓存2.3 零拷贝(操作系统级别)2.4 批量操作一、Kafka实现高性能磁盘顺序读写 页缓存 零拷贝 批量操作Kafka 吞吐量大,并行处理抢 RocketMQ 高压水枪,高并发峰值处理BATJ 每小时产生数TB数据,对于Kafka这种大吞吐量设计自然是最佳选择二、Kafka所做的优化2.1 磁盘顺序读写2.2 页缓存Kafka避.原创 2022-01-17 18:09:03 · 393 阅读 · 0 评论 -
IT老齐架构300讲笔记(047) 避坑分享财Z部金财平台用主键用了UUID后出现的问题
目录一、场景二、UUID的版本2.1 基于时间的UUID2.2 DCE安全的UUID2.3基于命名空间的UUID(MD5、SH1)2.4基于随机数的UUID(最常用)三、为什么 UUID 会引起IO异常一、场景财政部金财工程平台在代理行日终结算时,经常出现磁盘的IO异常,导致经常出现高延迟。这个问题一直困扰我们很长时间,对比发现在大量数据新增时磁盘IO居高不下,多次测试后发现是UUID主键在搞鬼。二、UUID的版本2.1 基于时间的UUID...原创 2022-01-17 15:55:29 · 452 阅读 · 0 评论 -
IT老齐架构300讲笔记(046) 宜信如何利用RabbitMQ队列解决消息积压问题
目录一、待优化场景二、初步优化方案三、继续优化方案四、死信一、待优化场景每天上午10点,全国2万多名客户经理集中录入上一日JK单据到BorrowSale系统,峰值能达到500单/s。但信审系统任务重,最多只支持到60单/s,每日会导致大量消息积压二、初步优化方案 最简单办法:RabbitMQ改为工作队列模式,将消息送给9个信审系统实例并行完成。但信审系统不愿配合,以预算不足为由拒绝,作为BS前台就得自己想办法解决消息积压问题三、继续优化方案BS.原创 2022-01-17 15:23:56 · 352 阅读 · 0 评论 -
IT老齐架构300讲笔记(045) RabbitMQ六种队列模式与应用场景
目录一、RabbitMQ二、RabbitMQ的六种队列模式2.1 简单模式2.2 工作队列模式2.3 发布订阅模式2.4 路由模式2.5 主题模式2.6 RPC同步通信(阻塞)一、RabbitMQProducer:生产者,消息的提供者 Consumer:消费者,消息的使用者 Broker:MQ服务器,管理队列、消息及相关信息 Message:消息,程序间的通信的数据 Queue:队列,消息存放的容器,消息先进先出 Exchange:交换机,用于分发消息原创 2022-01-17 15:00:45 · 956 阅读 · 0 评论 -
IT老齐架构300讲笔记(044) 190毫秒干到2毫秒,2017阿里云SQL优化挑战赛实战分享
比赛出题人表结构待优化的SQL第一次执行 选取驱动表创建索引再次执行更详细的执行计划 发现问题 修改表结构执行SQL均使用索引原创 2022-01-17 14:19:14 · 293 阅读 · 0 评论 -
IT老齐架构300讲笔记(043) 生产环境JVM(下) 线上Java OOM排查与解决过程分享
专栏链接:IT老齐架构300讲笔记专栏原创 2022-01-17 14:03:05 · 239 阅读 · 0 评论 -
IT老齐架构300讲笔记(042) 生产环境JVM(上) 垃圾回收GC的一些建议
专栏链接:IT老齐架构300讲笔记专栏原创 2022-01-17 13:52:34 · 303 阅读 · 0 评论 -
IT老齐架构300讲笔记(040) 为什么表的主键要使用自增主键,不建议使用业务主键
目录一、业务主键与自增代理主键1.1 使用业务主键的缺点1.2 使用场景一、业务主键与自增代理主键1.1 使用业务主键的缺点1. 业务主键更浪费空间2. 业务主键无顺序,可能会造成写入数据时需要更长组织索引3. 业务主键如果是字符串,在分库分表时,无法直接取模运算,需要先转换为数字,处理更麻烦了。1.2 使用场景身份证从15位更新到18位员工离职再入职...原创 2022-01-17 10:07:13 · 3070 阅读 · 2 评论 -
IT老齐架构300讲笔记(038) MQ中间件是如何实现可靠性投递的?
目录一、MQ中间件的通用消息投递过程有哪些情况可能会造成丢数1.1 可能出现问题的阶段1.2 可能出现问题的细节点一、MQ中间件的通用消息投递过程有哪些情况可能会造成丢数1.1 可能出现问题的阶段 发送阶段,遇到高延迟,Producer会多次重发消息,直到Broker ack确认,过程中Broker会自动去重,超时Producer产生异常,应用进行捕获提示。 存储阶段,Broker先刷盘再ack确认,即便ack失败消息不会丢失,多次重试直到Producer接收,会.原创 2022-01-17 09:36:55 · 551 阅读 · 0 评论 -
IT老齐架构300讲笔记(037) 为什么软件设计时要禁用JDK序列化?
不同语言的微服务项目进行交互,需使用JSON数据,非Java项目无法反序列化JDK序列化二进制流原创 2022-01-17 09:15:33 · 217 阅读 · 0 评论 -
IT老齐架构300讲笔记(036) 阿里开发规范解读,小心MySQL索引选择性陷阱
目录一、什么是索引选择性陷阱1.1 InnoDB的存储结构1.2 头匹配,尾匹配与任意匹配1.3 索引选择性太差导致全表扫描二、索引选择性差的场景三、索引选择性差的解决方法3.1 通过组合索引提高选择性3.2引入搜索引擎3.3 强制使用索引3.4 增加缓存,提高全表扫描速度一、什么是索引选择性陷阱1.1 InnoDB的存储结构1.2 头匹配,尾匹配与任意匹配1.3 索引选择性太差导致全表扫描命中的索引值超过总量25%,就可能产..原创 2022-01-16 23:48:33 · 1659 阅读 · 1 评论 -
IT老齐架构300讲笔记(035) 蓝绿、红黑、灰度发布
目录一、蓝绿、红黑、灰度发布概念区别1.蓝绿部署2.红黑部署3.灰度发布二、灰度发布遇到的挑战1 考虑数据库变更对旧版本的兼容性影响2.1 方案一:放弃灰度,采用红黑方式全量发布2.2 方案二:考虑独立部署数据源进行迁移三、灰度发布遇到的挑战2 灰度发布用户群的选择四、灰度发布遇到的挑战3 什么时候才可以提升分配比例一、蓝绿、红黑、灰度发布概念区别科学部署的意义尽可能减少服务停机时间,控制新版本带来的质量风险1.蓝绿部署 2..原创 2022-01-16 23:29:18 · 1093 阅读 · 0 评论 -
IT老齐架构300讲笔记(031) 从宜信架构演化理解微服务架构设计
了解分布式架构的发展过程1.单体阶段 单体阶段紧耦合 系统复杂,牵一发动全局 所有模块耦合在一个进程中 完全封闭架构 业务发展初期,快速满足客户需求2.垂直拆分阶段垂直拆分阶段紧耦合 垂直拆分系统,竖井式架构子系统之间没有直接关联重复造轮子∶ OS,DB, Midderware 存在大量的重复代码拷贝 完全封闭架构业务 快速增长时,以应用系统为中心的架构模式3.RPC阶段RPC通信阶段紧耦合(共享分布式对象实现远程方法调用)...原创 2022-01-14 09:39:12 · 474 阅读 · 0 评论 -
IT老齐架构300讲笔记(030) MySQL MVCC机制
目录MVCC1.隔离级别2.场景分析 ReadView1.ReadView数据结构2.读已提交(RC):在每一次执行快照读时生成ReadView3.可重复读(RR):仅在第一次执行快照读时生成ReadView,后续快照读复用MVCC1.隔离级别在MySQL InnoDB存储引擎下,RC、RR基于MVCC(多版本并发控制)进行并发事务控制MVCC是基于”数据版本”对并发事务进行访问2.场景分析 UNDO_LOG不是会被删除吗?中间数据万..原创 2022-01-14 09:06:00 · 753 阅读 · 0 评论 -
IT老齐架构300讲笔记(029) MySQL脏读、幻读、不可重复读
目录脏读、不可重复读、幻读的区别与出现场景事务隔离级别脏读、不可重复读、幻读的区别与出现场景脏读指读取到其他事务正在处理的未提交数据 不可重复读指并发更新时,另一个事务前后查询相同数据时的数据不符合预期 幻读指并发新增、删除这种会产生数量变化的操作时,另一个事务前后查询相同数据时的不符合预期事务隔离级别MySQL默认Repeatable Read(RR)-可重复读MySQL 5.1以后默认存储引擎就是InnoDB因此MySQL默认RR也能解.原创 2022-01-12 11:48:40 · 475 阅读 · 0 评论 -
IT老齐架构300讲笔记(028) 白话Redis Cluster集群模式
目录Redis Cluster集群模式Redis Cluster 集群 与 Redis Sentinel 有什么不同?Redis Cluster 集群如何将数据分散存储为什么是16384Redis Cluster 集群构建流程1.配置redis-cluster.conf2.创建集群3.查看集群4.插入数据5.Master故障情况6.原Master恢复服务变成SlaveRedis Cluster集群模式Cluster模式是Redis3.0开始推出..原创 2022-01-12 11:27:29 · 457 阅读 · 0 评论 -
IT老齐架构300讲笔记(027) 分享一套经典的Web高可用架构
目录初始Web架构使用Virtual IP和Keepalived的升级架构DNS轮询 + 多VIP组合方案初始Web架构使用Virtual IP和Keepalived的升级架构DNS轮询的缺点只负责IP轮询获取,不保证节点可用 DNS IP列表变更有延时 外网IP占用严重 安全性降低DNS轮询 + 多VIP组合方案...原创 2022-01-12 09:24:24 · 461 阅读 · 0 评论 -
IT老齐架构300讲笔记(026) 公共表在分布式架构下该如何访问?
目录什么是公共表?分布式环境下公共表解决方案场景解决方案什么是公共表?被其他业务模块共享的基础数据表,被称为公共表比如:系统用户表、行政区划、组织机构、系统配置分布式环境下公共表解决方案场景假如用户表有4000万数据,在查询时不小心没有了索引,导致磁盘IO直接拉满,其他表访问就会出现高延迟解决方案 实时数据,将公共表下沉为基础服务 业务模块上浮为业务服务 业务应用通过RPC、RESTful API访问数据层面解耦,有独立的服务器.原创 2022-01-12 09:13:51 · 292 阅读 · 0 评论 -
IT老齐架构300讲笔记(025) 无状态的JWT令牌实现续签功能
目录为什么JWT要续签不允许改变Token令牌时实现续签允许改变Token令牌时实现续签存在重复生成JWT的问题1.不允许改变Token令牌时实现续签2.允许改变JWT时实现续签3.续约时的重发JWT问题解决为什么JWT要续签那JWT不设置过期时间行不行?不行,会留下”太空垃圾”,后患无穷JWT不建议设置长时有效期续签JWT必须有退出机制不允许改变Token令牌时实现续签为什么加入Redis后JWT中过期时间可...原创 2022-01-10 16:24:39 · 2526 阅读 · 0 评论 -
IT老齐架构300讲笔记(024) 前后端分离架构下JWT认证该怎么设计?
目录1.什么是JWT介绍JWT结构JWT的创建和校验2.JWT的认证架构设计方案一 网关统一校验方案二 应用认证方案方案总结1.什么是JWT介绍Json Web Token(JWT)JWT是一个经过加密的,包含用户信息的且具有时效性的固定格式字符串JWT结构JWT的创建和校验Java提供了JJWT其他语言也提供了对应的组件2.JWT的认证架构设计方案一 网关统一校验方案二 应用认证方案..原创 2022-01-10 15:58:00 · 366 阅读 · 0 评论 -
IT老齐架构300讲笔记(023) 阿里开发规范解读存储过程
目录为什么银行都在用存储过程存储过程为什么成为互联网弃子信息安全问题存储过程在互联网分布式场景的问题数据库压力激增无法保证分布式全局事务存储过程难以调试,没有内置的版本管理方案业务执行碎片化为什么银行都在用存储过程存储过程为什么成为互联网弃子信息安全问题银行被Oracle、DB2绑架数据好迁移,存储过程要全部重写谁来/谁敢承担核心业务的风险?存储过程在互联网分布式场景的问题数据库压力激增无法保证分布式全局..原创 2022-01-10 15:38:44 · 424 阅读 · 0 评论 -
IT老齐架构300讲笔记(022) 阿里开发规范为什么禁止三表Join关联
目录为什么要禁用多表关联1.临时解决方案 拆成多条SQL2.反范式表 形成一个具有多表信息的冗余表3.数据仓库数据集市 定时对多个表进行数据清洗为什么要禁用多表关联产品的强制要求,阿里OceanBase只允许2张表关联,MyCat只支持2张表的关联 MySQL自身的设计缺陷,超过3张表关联时优化器做的不好,NLJ多级嵌套性能差(小表驱动大表) 依赖数据源特性获取数据 数据迁移改造困难,有跨库、性能上的问题临时解决方案 拆成多条SQL缺点临时原创 2022-01-10 15:15:31 · 1059 阅读 · 0 评论 -
IT老齐架构300讲笔记(021) 京东金融是如何通过乐观锁解决并发数据冲突
目录为什么会产生并发冲突传统解决方案(悲观锁)增加行锁for update悲观锁缺点乐观锁方案乐观锁遇到冲突后的解决方案为什么会产生并发冲突传统解决方案(悲观锁)增加行锁for update悲观锁缺点悲观锁并发性太差高并发场景用户体验差乐观锁方案实现目标:既要保证用户体验,也要实现数据可靠乐观锁遇到冲突后的解决方案前端应用提示"数据正在处理,请稍后再试!" 附加spring-retry在service上进行.原创 2022-01-10 14:51:07 · 326 阅读 · 0 评论 -
IT老齐架构300讲笔记(020) 京东金融如何保证接口的幂等性
目录幂等性如何解决类似的幂等性问题幂等表方案幂等性发一次接口调用与发多次相同的接口消息都能得到与预期相符的结果如何解决类似的幂等性问题每重发一次请求1号工资就会+500,幂等性就被破坏了传统办法是代码增加前置判断if(!员工已调薪){进行调薪}缺点需要前置判断的地方太多了,一不留神就漏了这种技术问题不应该成为干扰程序员写业务代码的因素需求我们需要一种无侵入的幂等解决方案构建幂等表是我们的通用解决方案幂等表方...原创 2022-01-10 14:24:43 · 470 阅读 · 0 评论