本文根据熊猫 TV 高级应用开发工程师 沈冠璞在 MDCC 2016 移动开发者大会上的演讲整理而成,PPT 下载地址:http://download.csdn.net/detail/sinat_14921509/9642194。
大家好,我是来自熊猫 TV 的沈冠璞,有 7 年的后端开发经验,是熊猫直播的第二行的作者,经历熊猫直播从 0 到 1 海量 PV 和存储的快速扩张发展场景,有大中型互联网网站高可用设计架构经验。礼物系统做了近 1 年,踩过不少的坑,经历了产品、DBA,然后才有了现在的发展。今天跟大家分享的是百万弹幕下的礼物系统,也是借礼物系统这个典型的案例给大家分享一下熊猫直播在海量并发和强事务系统下实践。
目前熊猫 TV 礼物系统的现状,部署了两个集群,每个集群是六台服务器,QPS 峰值 2 万+,平均响应时间 10ms,服务热部署 99.99% 可用,具体的服务架构如下图所示,其中采用了双机房的水平部署,四层采用通用的 KOS,接入层就使用 NDS,平台服务层实现了 APC,缓冲使用 Redis,是存储排行榜的信息,礼物分组,使用存储礼物属性,存储消费流水和主播的每日消费每日的收益统计。
那么如何通过具体的实践来构建百万在线的礼物系统,熊猫直播选择使用高并发加上最终一致性保证事务的方式,首先进入 NoSQL 系统设计,该礼物系统要始于去年冬天,上线 2 个月后,产品王说:“兄弟,没有礼物的直播就是耍流氓”,接而我先对礼物系统做了简单的分析,大概分成四个大的模块:礼物列表;礼物赠送;礼物排行;礼物消费流水,重点分析核心流程。作为一个观众,进入到直播间,首先会获取礼物列表,然后送主播礼物,观众开始点礼物图标,进入到扣费环节,扣费成功就给用户加经验,加完经验,在我们平台就是类似于不错的等级,比较青铜、黄金、王者,给用户荣誉感,然后会弹出弹幕,关心付费实践的业务,这就是一个完