答疑课堂|思考题答案(一)
该思维导图由 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