# 关注并星标腾讯云开发者
# 每周3 | 谈谈我在腾讯的架构设计经验
(资料图片)
#第2期|赵威:QQ音乐评论系统如何实现高可用?
QQ 音乐自诞生以来,已有多个版本的评论业务系统。最新版本是19年再次全新迭代,基于 tlist 存储,按照发表时间顺序展示。后续为了更好的用户体验,产品形态调整为评论盖楼模式,为了实现该功能,存储迁移到 mongo。
目前评论作为用户社交重要场景以及艺粉互动(明星空降)重要场地,经常会有突发流量。为了更好地保障空降场景评论体验,我们对评论系统进行充分的设计。
评论系统设计核心挑战点在于艺人空降时需要扛住突增的读写压力,包括评论数量、评论列表等读场景,以及发表评论,艺人评论置顶等写场景。
如果直接读 mongo,需要用非常高的存储成本来抗住读压力。对于高并发热 key,常规使用缓存方案,在缓存使用中注意做好防穿透以及限流策略,防止存储高负载雪崩。
评论写涉及比较复杂的业务逻辑,整体流程包含:
▶︎ 评论安全打击;
▶︎ 评论发布属地信息查询并记录;
▶︎ 评论是否需要置顶;
▶︎ 评论是否乐评人评论。
▶︎ ......
它涉及多个操作,部分处理失败会造成比较严重的体验问题。需要保障数据处理的一致性。为了保障一致性,一种是使用事务处理,强一致,但吞吐量稍微差些。另一种是使用可重入保障最终一致性,为了保障更高的吞吐量,写场景采用了最终一致方案。
通过消息队列解耦将评论写入高速 cache,异步写入 mongo。同时也能通过重试,确保比较核心数据最终写入 mongo。
通过上面两种设计,能在正常情况下很好满足日常评论的吞吐量,那是否真正做到高可用呢?随着业务迭代,在 add 消费场景再次增加了业务逻辑,比如增加上报,如果业务延时增加比较大或前置属地查询失败比较多时,整体 add 流程处理时延严重增加,导致消费效率下降、消息堆积,最后导致大盘全部评论全部延迟消费,用户体验出现发布后没有外显丢评论的体验问题。
评论系统引入热门消息队列,将全局评论和热门评论的消息队列做拆分。当热门消息过多时,最多只影响局部热门消息队列的堆积,对全局评论体验不影响。
上面没有在生成时直接写两个消息队列 topic,而采用对已有的消息队列再消费写入到热门消息队列,是由于下游还有很多场景在消费原有的消息队列,比如各种任务系统等,为了减少开发成本,采用了目前的方案。
采用上面的读写设计,基本能满足日常空降场景评论系统的可用性。随着空降参与艺人粉丝越来越多,业务遇到新的挑战。
艺人空降评论区艺粉互动效果不错,越来越多艺人空降评论区。粉丝参与热情高涨,读写流量节节高升,空降活动导致评论系统挑战越来越大,需要系统优化保障服务质量。我们通过如下方式来处理挑战:
▶︎ 增加写消费效率:增加 mongo 存储的存储核数,并增加消费并发度;
▶︎ 读服务平行扩容,并拆分缓存到更多的 key(uin%10等),防止热 key 太集中,增加读服务吞吐量;
▶︎ 拆分读服务和写服务部署,防止读写互相影响;
▶︎ 非关键场景限流,保障核心路径的可用性。
通过上述手段,保障空降活动大致稳定可靠,虽然遇到消费瓶颈,导致写场景有轻微堆积,但用户感知没有那么强烈。
其中一次大牌艺人活动中评论系统整体稳定可靠,但还是遇到了消费瓶颈,且中间出现了依赖存储 ckv 由于设置了降冷,在访问量非常高且空查询比较多的情况下,大量请求降到降冷存储 tssd。由于 tssd 降低成本设计未充分业务隔离,导致全平台 tssd 告警的问题。虽然通过限流紧急处理,但还是需要有系统性优化。
近期通过以下方面完成了相关的优化:
读场景
▶︎拆分评论数、点赞数存储从 ckv 迁移到 ckv+,不降冷,尽可能保障这两个数据可用性;
▶︎评论数增加本地缓存,增加版本号,保障用户体验无异常且评论数的高吞吐量;
▶︎前端保护后端,合理化请求时机,并在前端有数据情况下,遇到评论数或列表拉取异常时,前端不弹异常,减少异常感知;
▶︎前端优化页面体验,提升秒开率,提升用户体验。
写场景
▶︎ 拆分评论写场景逻辑,保障核心路径简化,优先保障写 mongo 速度和吞吐量,减少消息堆积概率;
▶︎ 增加优先级队列,保障艺人核心体验无阻塞;
▶︎ 完善相关工具建设,随时可以跟进相关数据或运营诉求,提升运营效率。
压测
▶︎读写场景常规压测,确保压测出业务瓶颈在运营场景需要情况下,能快速通过平行扩容,保障系统可用性。
通过一系列流程和架构优化,评论系统可用性得到进一步提升,相信在未来运营场景能很好地保障用户体验。欢迎各位在评论区交流讨论。以上就是本篇文章的全部内容了,如果文章对你有帮助,欢迎转发分享。
你亲历过哪些考验项目高并发/高可用的场景?你有什么可以分享的高并发/高可用经验吗?欢迎留言。我们将挑选一则最有趣的答案,为其留言者送出腾讯定制毛毯。8月16日中午12点开奖。
-
空降流量危机?QQ音乐升级架构应对高并发关注并星标腾讯云开发者 每周3|谈谈我在腾讯的架构设计经验 第2期|赵
-
江苏大学怎么样好不好 排名 江苏大学怎么样1、江苏大学在镇江,我就是镇江人,江苏大学在江苏本科院校中。2、应该
-
msvcrtd.dll放在哪里(msvcrtd.dll是什么)来为大家解答以上问题,msvcrtd dll放在哪里,msvcrtd dll是什么很多人
-
[伊芬底特星生态系统系列]缝合怪虫——䗿原型:奇虾,异虫,三叶虫,等足目,十足目,博比特虫,鲎䗿平均成年个
-
什么是监理细则 什么是监理1、工程建设监理是指监理单位受项目法人的委托,根据国家批准的工程项
-
新能源车市快速扩容 激发工业机器人再创新针对前驱与后驱等不同造型的电驱单元,奥特能武汉工厂利用人工智能(AI
-
体验城市管理,参与爱心帮扶,镇江“童眼看城管”系列夏令营火热进行中扬子晚报网8月12日讯(通讯员章啸晨谢胜盛记者万凌云)在我们生活的城
-
对氯间二甲苯酚商品报价动态(2023-08-12)交易商品牌 产地交货地最新报价对氯间二甲苯酚 99 9%山东宏洋化学有限
-
2021年商业电费一度多少钱(2020年商业用电多少钱一度)1、不同城市、不同电压等级,电价都不一样。2、如您是广东电网公司的用
-
居留许可证英文 许可证英文1、企业法人营业执照(副本)BUSINESSLICENSEOFLEGALENTITY(DUPLICATE)
-
九岁县太爷演员表及人物关系 九岁县太爷演员表1、张铎饰虎一帆张佳宁饰宋楚楚王黎雯饰张晓燕刘天佐饰冯大宝李依玲饰
-
三星 Galaxy A90 5G国行版本上架:全息3D格纹设计,4499元IT之家10月18日消息据京东商城官方网站消息,今日上午三星GalaxyA905G
-
手机相关知识:微店随机红包一般能减多少科技、数码、互联网新闻如今都成为了大众所关注的热点了,因为在我们的
-
哈兰德谈被瓜帅训斥:我抱怨B席没传球给我,瓜帅对我有点生气直播吧8月12日讯在英超首轮比赛中,哈兰德梅开二度,帮助曼城3比0完胜
-
电势能和电势概念的区别_电势和电势能的本质区别是什么?1、电势和电位之间有相对性。2、通常以无穷大或地球作为零电势点。3、
-
初二成绩不好暑假怎么补救 方法是什么如果是初二学生上课不认真听讲,总是开小差,这个家长可以和学校的老师
-
千万别让这些习惯坑了你的孩子!所有家长都该看看!牙齿不雅社交场上你还能自信吗口腔好坏不仅关乎健康而且关乎面容口气太
-
小米Redmi K60至尊版将在9月发布:天玑9200+处理器、16GB大内存2023-08-12 06:40:47 作者:姚立伟8月11日,小米官方宣布,将在8
-
成果转化为零,背后是“刷论文”式科研一所高校累计获得财政投入科研经费1 31亿元,实施科研项目862个,实现
-
最"壕"基金,一次发了2.97亿!40天,基金派发百亿"红包"截至8月9日的40天,基金分红总金额已近百亿。Wind数据显示,下半年基金
-
辽宁发布地质灾害气象风险橙色预警【辽宁发布地质灾害气象风险橙色预警】!!!今天受到全网的关注度非常高
-
期盼华为王者归来今年第二季度,国产手机市场份额都出现了不同程度的下降,唯有华为逆势
-
格瓦迪奥尔首秀数据:4次对抗均成功,获评7.0分直播吧8月12日讯曼城在英超首轮3-0轻取伯恩利,格瓦迪奥尔替补完成曼城
-
荣耀90跌至新低,16GB+512GB突降2409元,堪称手机行业“新卷王”想要自家的产品比友商产品卖得好,这种只能算是竞争,但是在如今的手机
-
林中小屋2什么时候出了没有(林中小屋2什么时候出)今天小鱼来为大家解答以上问题,林中小屋2什么时候出了没有,林中小屋2
-
四川:最大跨径公路悬浇拱桥拱圈合龙夜幕下正在建设中的古金高速水落河特大桥。蜀道集团供图中新网泸州8月1
-
海河流域已有超22亿立方米洪水从天津下泄入海新华社天津8月11日电(记者黄江林)记者从天津市水务局获悉,自7月31日
-
茄实海外070012(070012)我是小前,我来为大家解答以上问题。茄实海外070012,070012很多人还不
-
千城百县看中国|福建长泰:坂里红曲酒 传承千年01:37在福建长泰,坂里红曲酒是当地的非物质文化遗产代表性项目,古法
-
这一次,该地块拆迁速度真的没话说!淮安人网宣传推广:18121680880近日,有网友路过河下南入口,纷纷惊奇