虎牙海外直播的“专库专用”策略

原创
云计算 数据库
在虎牙海外业务快速发展的过程中,也对数据库提出了更高的要求。目前,虎牙海外直播业务根据不同的业务场景,使用了亚马逊云科技不同的数据库来解决不同的业务问题,实现了数据库性能提升,全球数据同步,直播平台的风险把控,并应对了流量突增等业务场景。

【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】

 

责任编辑:鸢玮 来源: 51cto
相关推荐

2019-12-13 09:15:23

虎牙AWSre:Invent 2

2019-02-28 09:22:37

Nacos微服务DNS

2018-08-29 15:04:35

网约车

2020-08-21 23:04:46

华为云

2020-10-29 10:44:59

斗鱼腾讯虎牙

2016-12-27 13:44:49

腾讯

2018-11-22 16:12:41

2009-04-13 09:25:00

2024-01-25 15:39:56

易点天下

2019-04-28 12:42:53

虎牙高清户外直播

2020-10-12 10:25:15

腾讯/直播

2022-12-21 14:28:07

腾讯云卡塔尔世界杯直播

2009-03-30 20:56:46

智慧的地球云计算IBM软件

2018-08-13 17:52:00

腾讯云

2018-11-13 14:47:13

点赞
收藏

51CTO技术栈公众号