荔枝,致力于打造声音处理平台,帮助人们展现自己的声音才华。荔枝集录制、编辑、存储、收听、分享于一体,依托声音底层技术积淀,具有声音节目录制功能,可在手机内完成录音、剪辑、音频上传和语音直播。

简单理解,荔枝APP上有很多主播,主播和用户之间可以通过声音互动。目前,荔枝APP月均活跃用户达到好几千万,月均活跃主播达到好几百万,全球注册用户和音频节目数量都已过亿。

那么,对于有着大用户量的社交APP来说,荔枝APP的背后架构该如何设计?一个时间轴可以概括整个架构的演进过程。

大主播开直播,访问量爆涨,影响了其他直播间的直播效果,比如出现卡顿、进入不了直播间、接口超时。举个例子:李易峰晚上8点在荔枝APP上做直播,那么从8点前开始,整个系统的访问量就会比平时要高出很多。有用户就会出现进入直播间慢、评论出现慢以及其他体验不好的情况出现。像这样的问题,应该如何解决呢?

第一个方案,也是最简单的方法,是“隔离”。在 data store 中,针对 redis 存储开发,按前缀分片的功能,对大主播的直播数据进行隔离,避免影响其他主播的直播效果。

第二个方案是,在高访问量期间,结合分布式服务框架中开发的熔断、降级、过载保护等功能,采取对部分非关键服务做降级措施,避免服务器因访问量过高发生雪崩。

在高并发环境下,Mysql 查询性能成为瓶颈。当数据量呈现爆发式增长,Mysql 查询速度变慢。我们对分布式数据库中间件作了扩展,在操作mysql时,在数据库上层加入缓存memcached后,大大提高了查询性能,并且自动维护缓存和数据库数据的一致性。

随着服务的增多,每个服务都有很多实例,导致整个架构的调用链路不清晰,也不能预知整体架构存在的瓶颈。引入skywalking 实现调用链跟踪功能后,能快速定位到线上故障和整个架构的性能瓶颈。

好的系统不是设计出来的,而是演进出来的。未来,荔枝的系统架构会更加完善,在不断探索中更加精进。

转载于:https://www.cnblogs.com/xiaohaigege666/p/10581094.html

感悟:荔枝架构实践与演进历程相关推荐

  1. 云时代架构之荔枝架构实践与演进历程

    荔枝架构实践与演进历程 好的系统不是设计出来的,而是演进出来的.荔枝APP,致力于打造声音处理平台,帮助人们展现自己的声音才华.荔枝集录制.编辑.存储.收听.分享于一体,依托声音底层技术积淀,具有声音 ...

  2. 荔枝架构实践与演进历程

    黄全,荔枝APP架构师.拥有10年的互联网开发经验,对分布式系统.高并发解决方案有着丰富的实践经验,在国内知名互联网企业担任过资深工程师.系统架构师等职.曾就职于UC浏览器.春笋新科技.现任荔枝资深工 ...

  3. 《荔枝架构实践与演进历程》读后感

    荔枝,是一个致力于打造声音处理平台,帮助人们展现自己的声音才华.荔枝集录制.编辑.存储.收听.分享于一体,依托声音底层技术积淀,具有声音节目录制功能,可在手机内完成录音.剪辑.音频上传和语音直播.简单 ...

  4. 荔枝架构实践与演进历程阅读心得

    荔枝,致力于打造声音处理平台,帮助人们展现自己的声音才华.荔枝集录制.编辑.存储.收听.分享于一体,依托声音底层技术积淀,具有声音节目录制功能,可在手机内完成录音.剪辑.音频上传和语音直播. 简单理解 ...

  5. 百分点大数据技术团队:舆情平台架构实践与演进

    编者按 现代社会每天都有大量信息产生,抖音.小红书等自媒体的普及,不断丰富着人们表达看法.传播诉求.分享信息的渠道和形式.如何完成多源异构数据的收集和处理,挖掘海量信息中的价值,洞察事件背后的观点和情 ...

  6. 饿了么监控平台的架构设计与演进历程

    作者 | 田晓旭 嘉宾 | 黄杰 运维行业流传着一句话:"无监控,不运维",监控的重要程度可见一斑. 随着互联网行业的不断发展,各种监控工具多得不可胜数,如何利用这些工具构建一个完 ...

  7. 网商银行×SOFAStack:首家云上银行的微服务架构实践与演进

    本文整理自 2019 云计算开源产业大会网商银行高级技术专家蒋易民的演讲.本文将带读者深入了解网商银行微服务架构的应用实践. 网商银行架构现状概览 网商银行依托于蚂蚁金服自主研发的金融级分布式数据库 ...

  8. 首度公开!OceanBase存储系统架构的演进历程及工程实践

    随着用户数据量的不断增长,基于传统共享存储的纵向扩展能力渐渐变得力不从心,分布式存储成为应对用户海量数据的标配. 作为一位架构师,在设计系统的分布式存储架构时,需要关注哪些方面呢?或者我们换句话说,对 ...

  9. 分布式服务框架原理与实践pdf_深度解析微服务治理的技术演进和架构实践

    为什么需要服务治理? 第一.业务需求 随着业务的发展,服务越来越多,如何协调线上运行的各个服务,保障服务的SLA,对服务架构和运维人员是一个很大的挑战.随着业务规模的不断扩大,小服务资源浪费等问题逐渐 ...

最新文章

  1. 计算机网络·物理层练习题
  2. Windows常见宏的使用
  3. 转发:Ajax动态画EChart图表
  4. [Cnoi2019]须臾幻境(LCT维护最大生成树+主席树/分块)
  5. 【剑指offer】面试题45:把数组排成最小的数
  6. 使用Navicat Premium 12 连接远程Oracle数据库
  7. abb机器人开通选项_ABB机器人623-1Multitasking选项 ABB机器人多任务使用方法教程...
  8. matlab实现移动通信的技术,移动通信系统OFDM系统仿真与实现(基于MATLAB)
  9. 搭建 Harbor 1.10.6 高可用集群
  10. webdriver原理(自己做个记录)
  11. SOA与微服务的比较和对比
  12. solr html显示,在SOLR中,如何执行索引. html 文件_solr_开发99编程知识库
  13. java中编写一个学生抽奖活动_用java做的抽奖程序
  14. 拼团不成功自动退款功能php实现,壹佰万能门店 1.0.89 小程序前端+后端 【优化】拼团订单不成团自动退款 微擎模块...
  15. 二、AFD-Net: Aggregated Feature Difference Learning for Cross-Spectral Image Patch Matching论文阅读
  16. 安卓平板usb变显示器_三星DeX—安卓生产力之巅
  17. ASP.NET 页面中的 ValidateRequest属性
  18. Cygwin的简介以及使用方法
  19. linux命令设置波特率,Linux设置串口波特率等参数
  20. 面包板入门制作之光敏电阻,

热门文章

  1. Java实现喝酒掷骰子Swing小程序
  2. 前 Google 科学家林德康详解:卷积神经网络如何应用于文本分类 | AI 研习社
  3. AI大牛们都去哪儿了:2016年度AI人才流动大盘点 | 2016 影响因子
  4. 小金的2019年终总结
  5. 微信小程序访问云服务器,微信小程序访问云服务器ThinkPHP接口的HTTPS问题
  6. 什么是Java动态代理,如何实现一个动态代理例子
  7. 三菱Q系列总线型项目程序全套
  8. 用 Python 为接口测试自动生成用例
  9. git中本地与远程库的关联与取消
  10. IOS开发 之百度地图API环境搭建