熊猫 TV 是一家视频直播平台,先先容下我们系统运行的环境,下面这 6 大做事只是我们几十个做事中的一部分,由于并发量与主要性比较高,以是成为 golang 小试牛刀的首批高性能高并发做事。
把大做事拆细, 然后做事化独立支配,更随意马虎简化支配,也随意马虎单点细节优化与升级。多数做事的能力是通用的,如平滑重启、多机房支配等。
关于在线做事,如果 1000 万用户在线,纵然每 30 秒一次在线 http 发送打点,那么也有每秒 30 万+的接口 qps。

Golang 供应的 http server 性能非常好,一个普通工程师如果做到单虚机支撑 1w - 2w 每秒的要求量,那么只须要 10 - 20 台后台做事器了。
用其他非高性能措辞,须要的机器能须要多翻好几倍; C++ 性能足够,但对工程师哀求很高。
房间做事是紧张做事, 须要核心保障,以是对房间做事里面的版块,进行了再细粒度的拆分。
对房间信息变更频繁的内容也采取独立存储,如人数计数等字段,这样的缺陷是每次去房间信息会多带来一次额外的访问人数做事的本钱。这也是架构设计须要权衡点之一。
礼物系统是多数视频直播平台的标配,海内有礼物消费习气的土豪不少,高峰期送礼物的并发量很大,尤其很多土豪对刷的时候。
礼物系统对同等性哀求略高,以是存一份数据建多条索引也是一种选择,也可以降落对事务的依赖。
弹幕交互办法是一个很不错的体验,更偏年轻化,大量用户喜好通过这种办法与主播互动。
海内网络状况比较繁芜,最好根据用户位置选择就近对应运营商的单线机房接入弹幕做事,让弹幕更及时。也可以用 BGP 机房,但网络带宽价格会比单线贵不少。
对付大房间,弹幕量特殊大,主播与用户都看不过来, 在产品策略层面可以做一些体验上的优化。
视频直播体验是整体平台最关键点,视频 CDN 是一种让用户就近获取所需流媒体的技能,且办理延时、卡顿等问题。 从技能角度不要只依赖某一 CDN 供应商或线路,业内很多视频直播平台都做了拉流线路互备,推流后视频(转码、转发)集群也是一个可优化的点,做互推是冗余了部分推流资源,但对优化直播流的体验与高可用性显而易见。
包含自由业务逻辑的接口代理做事, 是很多公司都有的一个公共做事,可以把公司内网做事低本钱的供应来外网来利用。不过须要考虑好外网安全策略,包括授权认证、做事关系映射、频率限定、业务资源隔离等。
能看到末了肯定是对我们技能及业务感兴趣的朋友,熊猫 TV 技能团队正在招聘 Golang 工程师,全部配备高配电脑与 DELL 双屏大屏幕显示器,并供应有寻衅性的技能环境。感兴趣朋友请扫码进入(同时也有大量PHP、前端、运维、DBA 等技能岗位)。
以上便是本次分享的紧张内容,点击阅读原文可以下载 PPT。