# 关注并星标腾讯云开发者
# 每周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点开奖。
-
金都城:黄金开启三浪下跌反弹仍是高空,原油将继续走强在一系列强势经济数据支持下,9月8日,也就是本周周五ICE美元指数
-
阿根廷tini(史蒂芬说:阿根廷70万人请愿)阿根廷球迷杀人诛心了,哈哈!不甘心的法国人,20万人在网上签名请愿,
-
突发!日媒:日本外相访问乌克兰,系俄乌冲突爆发以来首次日本外相首次访乌克兰,支持其抵御俄罗斯入侵。
-
西安多区通知:9月9日10点开始预约HPV疫苗新一波的HPV疫苗预约来了!9月9日(星期六)上午10:00,雁塔区、新城区、
-
坤鹏论:读《形而上学》 学习亚里士多德的第一哲学(16)真正有本事的是疏,而非堵与禁。——坤鹏论第一卷第六章(二)原文:而
-
茶和咖啡(关于茶和咖啡简述),你们好,今天0471房产来聊聊一篇和咖啡,和咖啡简述的文章,网友们对
-
如何下载豆丁网(豆丁下载器)来为大家解答以上问题,如何下载豆丁网,豆丁下载器很多人还不知道,现
-
逾5千家上市公司披露年报,235家公司被出具非标审计意见逾5千家上市公司披露年报,235家公司被出具非标审计意见,年报,非标,证
-
“讲好山东政法故事”创意传播大赛暨“我的政法故事”征文优秀作品展示举行海报新闻记者丛萍济南报道9月8日下午,忠诚的力量——“讲好山东政法故
-
因控股股东非经营性资金占用触及违规 ST天顺及控股股东、实控人等相关责任人遭深交所通报批评深交所9月8日向ST天顺及控股股东舟山天顺股权投资有限公司,控股股东关
-
曼联女足首任主帅是曾入狱的恋童癖,但曼联仍邀他参加俱乐部活动曼联女足首任主帅是曾入狱的恋童癖,但曼联仍邀他参加俱乐部活动,英超,
-
房地产收并购市场热度回升 八月交易额明显增长房地产收并购市场8月热度回升显著,企业正在加快处置资产回笼资金。根
-
合肥一中学班主任向学生推销教辅材料 校方:行为错误,已纠正合肥一中学班主任向学生推销教辅材料 【合肥一中学班主任向学生推销40
-
五根手指各叫什么名字_五根手指分别叫什么1、拇指、食指、中指、无名指、小指。本文到此讲解完毕了,希望对大家
-
幸福蓝海9月8日快速反弹以下是幸福蓝海在北京时间9月8日13:41分盘口异动快照:  9月
-
2开双控开关接线图解(2开)1、2开纸的尺寸是:530mm×760mm不过既然是学校发的就可以就用那个啊。
-
南通向全市教育工作者发放“江海尊师卡”本报讯(记者王艳芳)为弘扬尊师重教的传统美德,充分凸显对广大教师群
-
深入分布式一致性:Raft 和 etcdRaft分布式一致性是构建可靠的分布式系统的关键要素之一。为了确保数据的一
-
北交所总经理隋强:打造资本市场改革试验田 北交所进入高质量建设2.0版本9月7日,北交所联合北京市地方金融监管局、市科委中关村管委会、市经信
-
阿维塔12重磅来袭!比极氪001更酷炫由长安汽车、华为科技以及宁德时代三家巨头共同鼎力打造的阿维塔,在市
-
厚普股份(300471)8月31日主力资金净买入1221.10万元截至2023年8月31日收盘,厚普股份(300471)报收于13 47元,上涨2 51%,
-
文昌航天发射场规划建设新一代载人登月火箭发射工位记者8月31日从文昌航天发射场获悉,目前该发射场正在规划建设新一代载
-
西安警方捣毁特大“网络水军”团伙 125人被采取刑事强制措施虚假信息、诽谤攻击、非法推广、恶评去势、操控扰乱网上舆论秩序,“网
-
广西自贸试验区加快构建面向东盟跨境产业链供应链【东盟专线】广西自贸试验区加快构建面向东盟跨境产业链供应链中新社南
-
福晟国际上半年收入1.88亿元 筹集新借贷0元观点网讯:8月31日,福晟国际控股集团有限公司发布了截至2023年6月30日
-
2023暑期档票房206.08亿2023暑期档票房206 08亿:格隆汇8月31日|据灯塔专业版,截至8月31日21
-
婚礼现场布置设计(婚礼现场布置)精选小编来为大家解答以上问题。婚礼现场布置设计,婚礼现场布置很多人
-
福州楼市限购再松绑 “本地户籍+市区”成为政策亮点为更好满足居民刚性和改善性住房需求,促进房地产市场平稳健康发展,8
-
NH4CL的电子式和结构式(nh4cl的电子式)1、nh4+中的n的其中一对孤对电子也h形成配位键,表示为n→h,其他的就
-
镇江67个乡镇(街道)全部建立应急办 将应急管理的触角延伸到基层末梢“本次培训会议,住宿3人及以上的‘三合一’场所要通知到位、派人参加