3.1.5 通用直播场景
3.1.5.1 通用直播架构浅析
面对多直播平台,每日志上亿次的请求量,如果对标打造一个高可用高性能架构 尤为重要。设计直播架构支持要考虑平台的日常流量以及激增流量的弹性资源扩容, 这些都是在运营期间的不断数据摸索反馈得到,一台平台的横向快速库容要求可能是 分钟级,甚至是秒级,如果做不到对弹性的实时要求,很可能会出现平台崩溃的严重 情况;
首先我们会考虑将直播进行问题,如视频直播、语音直播。视频直播里面又划分 了赛事类直播、秀场才艺类,前者需要高清的直播动作画面, 对机器的计算要求较 高,如阿里云弹性计算提供的高主频HFC系列对视频的支持的高清视频编解码的浮点 运算;但语音类的直播没有画面参与,对视图计算的要求不高,音频报文的传递实时性要求没有视频高,故而可以单独分离设计;
传统的服务端架构采用的 LVS 、Nginx、PHP、MySQL ,数据库和PHP程序之 前还会加一层Memcache,除了视频直播服务端外,直播间的在线用户、礼物、评 论、点赞、排行榜等数据信息时效性高,互动性强,对系统时延有着非常高的要求, 也经常用到Redis缓存服务来处理。
下面是根据很多我们服务的客户,综合彼此的经验沉淀的一套直播平台通用的分 布式开发的架构, 从底层的数据库, 缓存Redismemcache, 中间的服务实际服务 层。纵向上是烟囱模式,但横向的每个模块是独立解耦,多个服务平行设置后成为一 个集群。这里的服务指,从用户侧推流的管理,到直播流服务,以及礼物支付、游戏 充值等等,每个都是相对独立的。
这样设计的好处:图中每个服务都可以由不同的Teams完成独立的迭代开发, 对组件的升级互不影响在数据安全性上,部署时不会相互影响;不同功能机器隔离开 后防宕机, 避免多个服务部署到同台机器上雪崩,服务在运行过程中可能会出现异 常,Java1JVM错误或者运行时宕机,网络异常,经常会遇到的这种情况,一个服务 出现了故障不要影响其他的服务。
《泛娱乐行业技术服务白皮书》——三、泛娱乐典型业务架构与场景——3.1直播类泛娱乐——3.1.6 出海业务直播场景(2) https://developer.aliyun.com/article/1231101?groupCode=supportservice