后端存储实战课
类电商平台存储技术应用指南
李玥  美团高级技术专家
专栏
已完结·共 30 讲
|
4.4w 人已学
|
收藏
Ling
1. 作者讲了什么? 针对**必须保证数据可靠性的写需求**(例如订单操作)的操作,如何保证数据库的可靠性(准确) 引入了**幂等**的概念,表明重复请求在实际生产环境中不可避免; 要避免重复请求,就需要使请求幂等,并通过列子说明,如何实现请求的幂等 2. 作者是怎么把事情说明白的? 通过举了电商系统订单的实际的几个例子: 1. 订单创建,如何保证保证不重复下单 2. 订单更新,如何保证准确和幂等 3. 为了讲明白,作者讲了哪些要点?哪些是亮点? **要点** 1. 实际生产环境,重复请求不可避免(客户端重试、服务间重试) 2. 增: 1. 生成唯一订单ID,订单ID全局唯一,并递增(为了MySQL建立索引时,如果不递增引起页分裂等问题,导致写入性能下降) 2. 将生成的ID放入缓存 3. order表的订单ID字段设置唯一索引约束 4. 客户端请求带上订单ID,如果重复插入会引起唯一索引重复,导致事务失败 5. 由于订单已经创建成功,对于由于唯一索引冲突导致的创建失败,需要给前端返回“创建成功”,防止对客户产生困扰 3. 改:更改请求接口,带上当前version;SQL条件加上`WHERE version=x `实现天然幂等 ```sql UPDATE order SET tarcing_num=666 AND version=version+1 WHERE id=100 AND version=6 ``` 4. 对于作者所讲,我有哪些发散性思考? 1. 对于任何“写”操作的接口,在设计的时候,都需要考虑**幂等**的概念。对于需要强保证数据可靠性的服务,需要设计**幂等** 2. 对于下订单、发表文章、发表评论这些写入服务的接口,除了幂等,还有防止重复提交、快速提交的问题 - 一方面 :客户端端需要做锁,用户点击“发布”按钮后,在网络请求没有返回,或者超时之前,用户都不可以继续点击“发布按钮”,界面可以将按钮置灰或者转菊花 - 另一方面:服务端需要进行加锁 1. 请求接口时,获取一个锁 锁的粒度 :同一用户的同一操作逻辑 锁名称规则:业务名称+用户ID (例如:post_msg:100101 ) 2. 给锁设置过期时间2-3秒,防止业务逻辑执行错误,用户一直被锁住 3. 如果被锁了,返回“正在处理,请勿重复提交” 4. 没有被锁,执行正常逻辑,在逻辑结束后,删掉锁 5. 在未来哪些场景,我可以使用它? 1. 在做任何更新接口时,时刻考虑是否需要实现**幂等**
2021-05-25
Geek_8c4282
老师想问下库存在高并发下有没有方法解决超卖或少卖问题,看了下好多同学都问了,但是老师都不回答
2021-01-13
anthony
老师好 单个mysql的并发 你那边有它的并发数据吗
2020-11-09
o.captain.my.captain
解答了多年了认为大学学的知识没用的疑惑
2020-05-24
Echo
发现老师不仅技术好,课讲的好,文采也好。所谓触类旁通。哈哈
作者回复:谢谢哈😺
2020-05-19
喜欢地球的阿培同学
老师江湖再见!消息队列高手可和后端存储实战课,非常不错,我从中学习到了很多东西!
作者回复:江湖再见!
2020-05-09
skyline
老师江湖再见,祝顺利👍👍
2020-05-02
AI
一下子和Java的GC算法产生了共鸣。 创建新表的方式,只复制少部分数据,效率更高,但你要能接受这段时间的STW。这是复制算法。 历史归档,删除数据的方式,会产生碎片,利用率低。只有到空间不足的情况下,才进行压缩整理(OPTIMIZE)。这是标记清理算法,关键时刻再整理(STW),CMS GC就是这个思路。
作者回复:是的,磁盘碎片和内存碎片产生的原因是一样的,所以清理的思路很多都是相似的。
2020-04-27
Aliliin
这门课对我帮助很大。谢谢老师,期待下门课程发布。
2020-04-23
pony
Flag:理清几种常见数据库的使用场景和遇到存储问题的解决思路
2020-04-21
讲师

李玥

美团高级技术专家

李玥,《消息队列高手课》作者,前京东零售计算存储平台部资深架构师,他在流数据的一致性分发和可靠存储、分布式实时计算、高可用分布式系统架构等领域都有着丰富的实战经验。
编辑推荐
讲师的其他课程
消息队列高手课
李玥
美团高级技术专家

42讲 | 52212 人已学习

¥59¥129
包含这门课的学习路径

Java工程师

29门课程 154.7w人学习

架构师

28门课程 151.9w人学习

Go工程师

16门课程 89.9w人学习

后端工程师

27门课程 184.1w人学习
看过的人还看了
MySQL 实战 45 讲
林晓斌
网名丁奇,前腾讯云数据库负责人

49讲 | 224933 人已学习

¥68¥199
数据结构与算法之美
王争
前 Google 工程师

81讲 | 283800 人已学习

¥68¥199
左耳听风
陈皓
网名“左耳朵耗子”,资深技术专家

119讲 | 180996 人已学习

¥98¥399
设计模式之美
王争
前 Google 工程师,《数据结构与算法之美》专栏作者

113讲 | 123465 人已学习

¥98¥299
从 0 开始学架构
李运华
网名“华仔”,前阿里资深技术专家(P9)

66讲 | 152616 人已学习

¥68¥199
深入剖析 Kubernetes
张磊
Kubernetes 社区资深成员与项目维护者

57讲 | 116760 人已学习

¥68¥199