2020 年 10 月 31 日,由融云主办的全球互联网通信云大会(以下简称“WICC 2020”)在深圳召开。本次大会所设立的三个技术分论坛:“新趋势:5G 下的新通信技术突破”、“新体验:实时音视频新应用场景”和“新架构:通信技术在业务架构中的演进”,吸引了来自阿里云、AWS、爱奇艺、小鹏汽车、统信软件、好未来、顺丰科技、虎牙直播等众多领先企业的技术领袖走上讲坛,同时也吸引了上千名开发者前来学习和交流。
在这三场技术分论坛中,融云分享了《5G 时代的通信云 IoT 新应用》、《超大规模音视频会议实践》和《亿级终端数据体量下的高并发架构解析》三大议题。融云作为互联网通信云赛道的头部企业,目前已累计支持超过 30 万款APP,50 多亿 SDK 触达数,日均消息 150 亿,单日消息量峰值超过 2218 亿。对开发者而言,融云所分享的应对超大规模用户的实战经验,以及高并发架构的设计方案,都弥足珍贵。
5G 时代,IoT 新应用落地至关重要
在新基建和 5G 背景下,物联网的实现将为整个社会带来巨变。融云研发总监李会朝认为:在物联网场景下,通过集成麦克风和摄像头,并保持实时在线,这样便赋予了硬件以大脑识别和音视频的通信能力,这个硬件就是智能硬件。智能儿童手表、AR 眼镜、智能门禁、智能机器人、智能音箱、车载导航仪、执法记录仪、矿帽、停车场收费器等均属于智能硬件,而作为底层的通信能力,在赋能智能硬件的同时,需要根据使用场景特点提供解决方案。例如,停车收费器和远程门禁,因户外的场景空旷嘈杂,解决方案就要做到把人声收进去,把噪音滤出去,优化通信效果。
融云研发总监李会朝演讲
分享中,李会朝着重阐述了智能硬件音视频能力的适配技术。由于不同的芯片厂商硬件表现差异,尤其是在视频编解码芯片、硬件采集、降噪模块上的差异,会导致花屏/黑屏、无声/噪音等问题。所以在视频适配方面,可通过分辨率 16 位对齐、动态切换编解码等解决方案;在音频适配方面,可通过声音的采集源、采样率、声道数、传输码率的选择,以及采用硬件处理和软件算法结合的方式来消除无声、回声、噪声问题。
除了适配技术外,李会朝还强调了融云 SDK 的功能特点,“融云 SDK 具有接口易理解、功能易扩展和架构分层等特点。”在 SDK 的提供方式上,包括可提供基础音视频通话能力的RTCLib SDK 底层能力库,基于 RTCLib 封装的呼叫能力库 CallLib,以及基于 CallLib 呼叫能力的 UI 组件 CallKit 等,可随时为客户提供调用。在对未来技术展望时,李会朝特别分享了 H265 / H266(VVC),以及 RTOS 的优势,他认为在物联网行业,RTOS 系统才是真正的王者。
超大量级的在线应用是对实时音视频通信能力的终级大考
随着在线应用的大面积普及,在线人数的量级也不断攀升,这给音视频的通信架构设计带来极大考验。例如当下已经触达千行百业的远程会议场景,同样的音视频架构,在十几人的会议中,体验或许十分流畅,但如果是 200 人,甚至 2000 人的超大规模音视频会议时,就可能全面瘫痪。那么融云又是如何做到应对自如的呢?融云音视频首席架构师岑裕在分析了 P2P、MCU、SFU 三个音视频典型架构,以及各自利弊后指出:尽管随着客户端硬件性能不断提升,SFU 越来越受到大家的青睐,但是在超过 20 人会议场景下,SFU 及 WebRTC 兼容场景仍然无法很好的解决。
融云音视频首席架构师岑裕演讲
在超大规模会议场景音视频能力输出的应对策略上,融云分别从视频和音频两方面着手,采取按需订阅与按需转发的模式。例如在视频上,发送端视频编码支持大小流或 SVC,接收端按需订阅大流或小流,弱网下自动切换大小流,从而大幅降了整体流量,特别是服务器端可直接下降 85%,获得了性价比的超高提升。在音频上,当发送端静音时不发送数据,在降低上行流量情况下,自然降低下行流量;音频解码后,默认混流播放音量最大 3-5 路声音,来兼顾流量和体验;在服务端通过计算 Buffer 和弹出 Timer 进行音频按需分发,在不损害音质的前提下,使流量下降 43%。从服务端的下行流量来看,对于一个 200 人的会议而言,已经降到 800 多兆,对客户端而言,已经降到了 4 兆,对流量控制基本做到了最佳状态。
此外,融云对客户端性能还有更多的优化。如增加 WebRTC 对多 SSRC 模式的 Audio Level 的支持;订阅视频数量较多时,将硬解和软解结合等进行优化。
综上,按需转发和按需订阅对于服务器端和客户端而言已经没有太大压力,而在超大会议室场景下,已经可以跟小会议室一样,所有人能正常收听,正常的交流,基本达到了预期的效果。
应对亿级终端数据 高并发架构需精心设计与持续优化
融云高级架构师李宏博演讲
即使在 5G 时代,在线应用仍然绕不开高并发的系统设计,这也是架构师们公认的难点。融云高级架构师李宏博在分享高并发系统设计心得时指出:首先,不管是结构还是各种各样的业务代码,都需要精心设计,并不断提升代码质量,这是一个持续优化的过程。其次是要不断完善系统体系,包括监控体系、运维系统、开发以及测试过程的工具链等,离开这些工具的助力,提升性能的效率就会被牵制。
在高并发整体的设计中,需要考虑 CPU、内存、网络和存储。因为 CPU 优化了数据结构与算法,选择序列化、并发模型,和使用资源定位,就是为了高效利用 CPU;考虑内存是为了控制体积,选择 LRU、LIRS,用一致性哈希资源定位,也是为了减少内存;在网络方面,融云架构使用了 Actor 模型,是要减少一次网络交互;而做数据包合并和序列化协议,也都是为了能够高效地利用 CPU 内存。而存储方面,分库分表、NewSQL 以及多种存储介质应按需选择,因为只有适合的才是最好的。
监控体系在高并发架构中举足轻重,总体来说,与性能相关的就是 APM,监控的维度是你能想到的所有指标和能用上的所有手段。一旦有所缺失,可能永远不知道系统里发生了什么,错误出在哪里。
在性能优化方面,李宏博强调:持续优化和改进是永恒的主题,如果多花一些心思在编码阶段,比如异步处理需求、落点相对固定、提升缓存命中率、合并请求减少网络交互等,将来在性能上产生的问题就会越少。
结语
WICC 2020 是融云构建的一个产业同仁共同探讨和分享前沿技术的平台,并且已经发展成为帮助开发者成长和交流的技术盛宴。三场技术论坛所有讲师的演讲都是干货满满,令开发者受益颇丰。在问答环节,场上场下互动热烈,开发者们问得稳、准、狠,讲师们答得精、专、透。此次融云将自身多年来在即时通讯和实时音视频领域的实践经验与开发者分享,既体现了融云作为行业领导者的格局和担当,也势必引领行业技术的发展热潮,为全球开发者们带来更多的技术创新思维和启迪。