虎牙海外直播的“专库专用”策略
WOT全球技术创新大会2022,门票6折抢购中!购票立减2320元!
【51CTO.com原创稿件】虎牙是以游戏直播业务为核心的直播平台,秉持技术驱动娱乐的理念,在业务发展过程中不断采用创新技术,创造直播互动的全新体验。在虎牙深耕国内业务的同时,也在进行海外业务拓展。2018年,虎牙推出海外直播产品 Nimo TV,并且快速进入到东南亚、拉美、中东等地区。截止到2020年,虎牙海外的移动游戏直播平台 Nimo TV 的海外 MAU 已经突破了三千万。
在海外业务快速发展的过程中,也对虎牙的数据库提出了更高的要求。虎牙海外业务平台的技术负责人马昭在采访时表示,虎牙会根据不同的业务场景使用不同的数据库来解决不同的有业务问题,和亚马逊云科技的“专库专用”理念不谋而合。目前,虎牙使用了 Amazon Aurora 替代传统 MySQL,提升了性能;利用 Amazon DynamoDB 的无服务器化特性,应对流量突增;利用 Amazon ElastiCache for Redis 实现内存数据的全球复制;采用 Amazon Neptune 实现对直播平台的风险把控。
全球化对数据库带来的挑战
在虎牙海外业务发展中,对数据库最基本的要求就是成熟稳定。马昭表示,数据库的稳定性直接决定了上云业务的稳定性,一旦数据库出现问题影响会比较大。其次,海外业务扩展迅速,因此虎牙需要对数据库的扩展性提出更高的要求,希望可以跟随业务的需求进行快速扩展。第三,数据库需要兼容已有架构。在海外业务建立前,虎牙直播已经在国内发展数年,当海外业务发展时,可以兼容基础平台和相关构件。
因此,在稳定性、扩展性、兼容性、全球化支持、自动扩容和成本优化等多方面综合考量后,虎牙选择了亚马逊云科技的数据库产品,通过选用不同类型的数据库解决不同业务问题。马昭认为,海外直播业务对可靠性、低延时等需求要求高,如果全球业务走公网的话,延时会非常高并且不稳定,安全性也相对较差。因此,虎牙海外直播场景依靠亚马逊云科技的核心骨干网,来实现低延迟访问。
Amazon Aurora 替代 MySQL 提升性能
过去,虎牙一直使用的是 MySQL 关系型数据库。随着业务量的增加以及数据爆炸式的增长,MySQL 的性能已经无法满足虎牙的要求。在虎牙选择亚马逊云科技的 Amazon Aurora 后,将交易信息、主题信息、主播开播记录以及用户信息等等迁移到 Amazon Aurora 中存储,达到了性能提升的目的。
马昭介绍了 Amazon Aurora 带来的诸多好处。首先是性能提升,若要提升 MySQL 的读写性能,需要进行分库分表操作,虽然可以提升性能但是聚合查询会变得非常困难。在使用 Amazon Aurora 后省去了大量分库分表工作,研发人员更加专注在主营业务方面。
第二,Amazon Aurora 非常易于扩展。虎牙海外流量变化迅速,需要频繁地扩缩容。而 MySQL 扩缩容经常需要迁移数据,非常困难。而 Amazon Aurora 由于计算和存储分离的架构,扩缩容非常容易,并且虎牙已经实现了 Amazon Aurora 自动扩容,成本下降了50%以上。
第三,Amazon Aurora 的全球同步能力提升。虎牙海外用户分布在不同国家,距离相对比较远,用户之间的访问延迟比较高,如果想要降低延迟,提升用户体验,就需要数据能够就近访问,但是 MySQL 很难满足这一需求。在使用 Amazon Aurora 的物理同步方式后,虎牙海外业务的数据全球化的问题得到了很好地解决。
第四,MySQL 的维护和迁移是相对比较繁琐的,需要 DBA 频繁地完成复制、备份等工作。Amazon Aurora 的维护会简单很多,基本可以实现自动化,并且 Amazon Aurora 还开放了很多 API 接口,虎牙可以接入自己的运维系统,便于运维工程师进行监控和规划。此外,Amazon Aurora 能够完全兼容 MySQL,无需做任何代码更改即可上线。
利用 Amazon DynamoDB 应对流量突增
虎牙海外业务遍布全球,在一些国家的重大节日或活动时,很多主播都会上线进行直播。当粉丝订阅了某个主播的某个频道后,在主播开播时,粉丝就会收到一条推送消息,告知粉丝主播开播可以到房间进行观看和互动。
开播服务有几大特点,业务变化非常快,低峰与高峰的数值跃动大,预测和预留资源困难,订阅关系分布不均匀,实时性比较高。因此,在亚马逊云科技的帮助下,虎牙设计了全球主播信息推送架构,可以轻松应对10倍以上的流量突增。
这其中使用了 Amazon DynamoDB 作为订阅关系的存储。借助 Amazon DynamoDB,虎牙海外业务实现了自动扩容,无需预留很多机器来应对流量突增带来的成本浪费。其次,亚马逊云科技的友好式计费方式,帮助虎牙节省了很多不必要的开支。马昭表示,当业务量很低的时候费用也会很低,当业务量突增后,只需要针对高峰流量进行付费。此外,虎牙采用的是无服务器架构,因此技术人员无需关心底层架构,极大地节省人力。在全球化业务的同步时,虎牙采用了Global Tables,可以轻松应对十倍以上的流量突增。
内存数据库以及图数据库的支持
除了使用 Amazon Aurora 和 Amazon DynamoDB 来提升性能和应对流量激增,虎牙海外业务还使用了内存数据库和图数据库。
随着虎牙的业务扩展到全球各个地区,用户之间距离也相对较远,经常需要跨洲访问,于是如何提升用户体验、降低物理延时成为了虎牙技术团队亟需解决的问题。马昭表示,在虎牙海外业务开启了内存数据库全球化的进程中 ,采用了 Amazon ElastiCache for Redis,存储了传统的数据缓存以及用户和主播的状态,并且利用 Amazon Global Datastore 实现低延迟的数据本地读取,满足了数据同步和低延迟的要求。
此外,虎牙还使用了 Amazon Neptune 图数据库,存储和搜索多度关系,并且完成了欺诈主播和欺诈用户的标定,只需要一条 Amazon Neptune 语句,就可以将利益链条上的所有主播和用户全部找出,实现了对平台的风险把控。
未来发展
未来,虎牙会在两方面不断探索。首先是云游戏领域,虎牙会尝试不同的数据存储和同步方式来支持游戏,也会进行计算和存储的分离工作来支撑云游戏的服务。
其次,虎牙会打造更加灵活的数据库弹性方式,以应对各种流量突增。同时,也会利用AI技术来预测流量的变化,以及采用各种推荐和欺诈监测等AI功能;此外,虎牙也会尝试无服务器化的数据库应用,来实现降本增效。
【51CTO原创稿件,合作站点转载请注明原文作者和出处为51CTO.com】

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
开发转测试,我拿到了20K的offer,熬夜7天整理出这一份5000字超全学习指南
什么都做了,和什么都没做其实是一样的,走出“瞎忙活”的安乐窝,才是避开弯路的最佳路径。希望我的经历能帮助到有需要的朋友。 我是二黑,现在暂居上海,大学的专业是Java软件技术,毕业后宿舍的4个兄弟有两个都走上了开发的道路,而我和另一个选择了测试,你们问为啥?当然是为了保护我珍贵的头发啦!正式参加工作后也证明我的选择并没有错,前两份工作在郑州和南京,企事业单位每天早10晚5,极少加班。当时的我还感慨:互联网行业,并没有大家说的那么可怕嘛。但太舒服的工作也有缺点,事儿少钱也少,薪资也就5k、6k。毕业两年看着原来的同学收入都高过了自己,心里还是在想要更争点气。 抱着涨薪的念头,我转战上海,开始找工作的时才发现我会的技术太少了,像xhell和navicat这些工具的使用都不是很熟悉,好在大学有Java基础,也成功入职了一家从事飞机制造系统的公司。十里洋场果然不一般,不仅薪资有了涨幅,做的项目也比我之前接触的要高大上太多了。当然加班在所难免,之前只是听闻过的996、007,在这段时间里经历了记不清多少次。这时候我才发现,原来这才是互联网真正的面貌。 这股新鲜劲还未持续一年,就很不巧碰上了突如其...
- 下一篇
2021中国互联网哈哈榜之1:十大网络流行语
WOT全球技术创新大会2022,门票6折抢购中!购票立减2320元! 又到一年年末,2021年依然是不平凡的一年,疫情全球弥漫令人不断emo,建党百年我们呼喊祖国yyds,中国健儿在奥运会的表现真的绝绝子......有喜有悲,有欢有忧,所幸一直有那么一群活跃于网络,不断造新梗的网友们,来看看他们今年又爆出了哪些金句吧! 「中国互联网哈哈哈榜」系列,到今年已经是第15个年头了。循旧例,今年哈哈榜的第一个榜单还是十大网络流行语。 1. yyds 你今年一定不少次想赞叹的时候,高呼「yyds」了吧! yyds,即「永远的神」的缩写,后常被粉丝用来赞赏自己的爱豆。 起源是山若泥在直播时多次称呼职业选手「uzi」为永远滴神,在出圈以后,yyds的应用场景不断扩大,不仅可以用来赞美人物,也可以用来赞美国家、机构、组织,进而扩展到事件、事理、事物等。 ▲ 图片来源于网络 只要一句yyds,万物皆可称神! 2. 破防了 破防,其实指的是破除防御的简称。原指在游戏中突破了对方的防御,使对方失去防御能力,现在却是直接跟两行泪的表情包连在了一起,网络上的「破防了」现在演变成因为遇到一些事或看到一些信息后情感...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS7,CentOS8安装Elasticsearch6.8.6
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS8安装Docker,最新的服务器搭配容器使用
- CentOS关闭SELinux安全模块
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- Docker安装Oracle12C,快速搭建Oracle学习环境
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- 设置Eclipse缩进为4个空格,增强代码规范
- CentOS8编译安装MySQL8.0.19