18|流量拆分:如何通过架构设计缓解流量压力?
该思维导图由 AI 生成,仅供参考
可预估用户量的服务:游戏创建房间
- 深入了解
- 翻译
- 解释
- 总结
本文介绍了如何通过架构设计来缓解流量压力,特别是针对直播互动服务的情况。首先,文章讨论了可预估用户量的服务,以游戏创建房间为例,通过设置服务器可以开启的房间数量上限来限制一台服务器能同时服务多少用户,并通过调度服务进行资源分配。接着,文章讨论了不可预估用户量的服务,如全国直播,提出了预测用户量、延缓用户进入直播、聊天信息合并、瞬时信息拉取高峰等解决方案。此外,还介绍了针对点赞的客户端互动合并和服务端树形多层汇总架构的设计。文章还提到了服务降级的操作,通过队列将修改合并或做网关限流,以及对强一致实现分片、调度等。最后,文章指出了实现可动态调配的高并发的直播系统所需的基础建设,包括分布式服务、动态容器、调度服务等支撑。整体而言,本文通过具体的场景分析和解决方案,为读者提供了架构设计缓解流量压力的实用建议。
《高并发系统实战课》,新⼈⾸单¥59
全部留言(7)
- 最新
- 精选
- 黄堃健老师,在树形热迁移切片中,对于有状态的数据,对于相同的用户,通过什么方式保证主从的数据的强一致? 是不是像etcd的采用线性读之 ReadIndex来保证?
作者回复: 你好,堃健,树形主要功能是拆分了分片的读写压力,如果分片很多,那么如Redis基本只有一个主库对外服务,从库多数是用来备份恢复使用,所以不存在同步问题,如果我们切片存在主从服务,并且业务场景严格要求强一致性,那么需要主从需要使用ReadIndex方式保证一致,但是性能不佳(极其少见这个需求落到数据层部署设计上),常见的多数是最终一致性配合原子操作就足够了。
2024-03-12归属地:广东 - 黄堃健老师,你好。 文中提到请注意,这个方式只适合用在疯狂刷屏的情况,如果用户量很少可以通过长链接进行实时互动。 那么问题来了:在聊天时,如何感知实时刷屏? 正常聊天和实时刷屏让客户端去区分吗?那么又如何让聊天信息和刷屏信息统一起来
作者回复: 你好,堃健,用户发送上来的信息会先用队列进行汇总,这时就可以通过监控队列堆积情况来进行度量
2024-02-23归属地:广东2 - 小达有个问题,像直播这种场景,如果客户端观看人数很多,比如同时100w人在线,是需要维护100w个客户端到服务器的长连接吗?这样感觉服务器会不会扛不住
作者回复: 你好,是可以做到的,目前服务器性能很强的,我记得 360 做过一个分享一台服务器就能维持 100 万连接,加上推送实时性以及稳定性需要 20 万或者更少用来剩下空间做冗余,刚想起来再补充下,人多在线的直播会把推送改为拉取,那样更好做去重计算
2023-04-25归属地:广东 - 普通熊猫 ଘ(੭ˊ꒳ˋ)੭✧chrome从54版本开始,用户刷新页面的时候,只要缓存不过期,都是从memory cache或disk cache中直接加载。只有过期的资源,才需携带ETag或Last-Modified送审web server,以获取更新的资源。 由于存储成本很低,目前CDN上的静态资源存储模式已逐渐演变为:只增加,不修改,永不过期。通过在资源名称中嵌入digest值,可以做到每一份新的资源都拥有不同的文件名。而且天然防止预测文件名称,在一定程度上避免了CDN上的资源被扫描的可能性。 摘自《29.五级缓存论》: https://mp.weixin.qq.com/s/087cUV5MrXsDQZcZUnB0nQ
作者回复: 你好,熊猫,这个是没问题的,但是这个多数是对于js文件和静态文件的,如果我们的是数据,服务端刷新数据的时候,我们是期望本地cache在没到期的时候也有办法刷新。:)
2023-03-15归属地:北京 - 若水清菡既然 CDN 能够缓存我们的静态数据,那么它是如何识别到我们本地的静态数据有更新的呢? 一般情况下静态数据的更新需要使用cdn的文件或目录刷新接口进行刷新,cdn通过文件的创建时间和修改时间来匹配文件是更新还是新增,对同名文件进行回源拉取后在边缘节点下发更新操作,对新增文件进行回源拉取然后下发边缘节点操作。
作者回复: 你好,若水清菡,一般来说会有集中方式其中有http304方式检测,expire超时检测,etag检测等~
2023-01-24归属地:北京 - LPF老师,针对IM这种1 V 1读写的状况,我们该如何去进行流量拆分呢?直接读写怼数据库是不是会蹦啊
作者回复: 你好,LPF,这种数据主要是产生后不会修改的数据,可以说产生后就是归档,读取并发不高,个人理解扔类似对象存储append挺好的,辅助查询服务即可
2023-01-19归属地:河南 - brqi既然 CDN 能够缓存我们的静态数据,那么它是如何识别到我们本地的静态数据有更新的呢? 可以通过MD5一下缓存文件,对比md5值就知道变化了,可以采用 文件名称+文件md5值来判断,降低MD5值冲突风险
作者回复: 你好,brqi,感谢交流,这个思路没问题,我们继续深入下,什么时候CDN会知道我们更新资源了~
2022-12-22归属地:北京6