高并发系统实战课
徐长龙
前微博架构师、极客时间架构师
11663 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 30 讲
结束语&结课测试 (2讲)
高并发系统实战课
15
15
1.0x
00:00/00:00
登录|注册

答疑课堂|思考题答案(一)

分布式事务保证
事件队列处理
设置标注key
事务头尾插入同步标识
利用缓存更新Version版本号
更新修改端的token
Redis的Cuckoo Filter
降低概率方法
Seata方式
AT方式
避免更新操作同一条数据
数据标识和最大值判断
增加修改时间或版本号
精妙设计
减少库存为0后接口缓慢问题
贫血模型和充血模型
业务实体领域和关系
作用域范围
数据同步和竞选
环形链路
快速更换token
添加和删除key
识别热点key
关系记录
历史记录
分布式实现方式
两个系统之间数据不同步
锁的使用方式
原子操作+拆开库存方式
MVC三层方式和DDD实现的差异
Raft集群成员增减
Otter同步链路
用户昵称更换
BloomFilter
用户邀请记录
第九节课
第八节课
第七节课
第六节课
第五节课
第四节课
第三节课
第二节课
第一节课
思考题答案

该思维导图由 AI 生成,仅供参考

你好,我是编辑小新。
今天是一节答疑课。我们的专栏已经步入尾声。除了紧跟更新节奏的第一批同学,也很开心看到有更多新朋友加入到这个专栏的学习中。
很多同学的留言也是这门课的亮丽风景,给专栏增色了不少。大部分的疑问,老师都在留言区里做了回复,期待更多同学在留言区里分享经验,提出问题或尝试解答他人的疑问,我们来共建一个共同学习、积极交流的良好氛围。
为了给你留下足够的思考和研究的时间,我们选择用加餐的方式,公布每节课的参考答案,也会精选一些优秀同学的答案展示出来。这里要提醒一下,建议你先做了自己的思考后,再核对答案。另外每节课都有超链接,方便你跳转回顾。
Q:请你思考一下,用户邀请其他用户注册的记录,属于历史记录还是关系记录?
A:用户邀请其他用户注册的记录,我认为属于关系记录。
虽然这种记录有历史记录特征,但是被邀请注册的用户只能被邀请一次,所以总量是可控的。同时,这种表的用途很明确,表内记录的是关系记录,查询时会按邀请人或被邀请人 uid 进行查询。
留言区里也有不少精彩的答案,推荐你去看看。比如 @移横为固的答案,这里我也复制过来:
一开始觉得注册邀请表应该作为历史表。思考了下作为关系表也是可以的。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

这篇文章总结了一节答疑课的参考答案,涵盖了用户邀请记录、BloomFilter、token更新、Otter同步链路、Raft集群成员增减、MVC三层方式与DDD实现的差异、原子操作+拆开库存方式、锁的使用方式、数据同步检查、分布式实现方式等技术问题。文章通过展示学生的答案和老师的补充,深入探讨了这些技术问题的解决方案和实践经验。读者可以从中获得启发和思考,了解到这些技术问题的解决思路和实践中的挑战。整篇文章内容丰富,涉及的技术领域广泛,对于技术人员来说具有一定的参考和学习价值。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《高并发系统实战课》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(3)

  • 最新
  • 精选
  • ARM
    老师好第一次评论:针对该回答有疑问,A1:我们可以再设置一个 key,标注还有哪些 key 有库存。 访问压力问题:这个key每次调用都会访问到,是一个共享的高频key,每次访问库存前都要查询,访问压力不小吧? 存储结构问题:这个key用什么数据结构存储呢?hash?应该就可以了,删除指定key速度快。 补偿问题:这个库存为负数肯定会出现,所以还需要补偿吧。

    作者回复: 你好,ARM,第一个问题,访问压力是有不过他和别人方式不同,他对所有缓存分片都复制了一份,所以他的请求压力是分散的,和单个库存只能在一个分片不同,比如有16个分片,随机找一个分片请求即可拿到是否有剩余库存,确认有库存后再去找库存扣减这样虽然多了一步但是能降低单个有库存分片的请求压力。第二个hash不推荐使用因为使用他的用户很多都是使用hgetall来工作,这很容易出现问题,并且hash的key只会在一个缓存分片上,一般来说缓存string性能最好。库存为负数的问题,看业务需要,很多秒杀系统对于负数库存是不予理会的,过了这个活动后再清算整理,原因是库存如果回传有很多种情况,处理起来很麻烦,不如直接放弃这个库存更好维护。

    2023-01-13归属地:河南
    1
  • 梓荣
    那个用json来存储用户信息的怎么是个优秀的想法呢,先不说空间问题,光是获取鉴权问题就会很头疼,这样极易造成用户信息泄漏

    作者回复: 你好,如果担心泄露或者被扫描的问题,你可以这样设置:在获取token时增加临时token验证,验证通过后才能获取。 另外,我再补充一下这种优化的使用背景,方便同学们理解。 json存储的方式更适合用在高并发系统里。比如一个系统高峰期有十万QPS,很多系统共用一个用户中心,但高峰期的时候我们不希望商城受影响,始终可以不卡顿地获取用户信息。 这时,就可以考虑让用户中心和其他大流量系统脱耦合,并用 JWT这个方式的token作为辅助存储。这样设计,压力就不会都集中在在用户中心,在前端即可获取到对外可公开的信息。

    2024-01-17归属地:广东
  • TableBear
    弱弱问一句,徐老师不会是🐏了吧

    作者回复: 家父……

    2022-12-12归属地:内蒙古
    3
收起评论
显示
设置
留言
3
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部