融云 2021 X-Meetup 启航 探索高并发下的高质量实时通信架构设计
2021 年 3 月 20 日,融云 X-Meetup 技术沙龙首站在重庆启航。本次沙龙,融云 WebRTC 开发工程师苏道、壳壳互联软件工程师张熙文、融云 IM 高级研发工程师齐新兵、探探科技国际化技术负责人王伟四位技术大咖,围绕如何实现“高质量高并发的实时通信架构的设计”这一主题,向开发者们分享了宝贵的实践经验。
X-Meetup 技术沙龙:重庆站
融云《大规模音视频会议实践》和《大规模即时通讯客户端日志系统实践》的演讲,分别从 RTC 和 IM 通信云全线产品,向开发者介绍了超大规模会议场景优化策略、如何做好日志系统及效果评估,解答了开发者关于底层通信架构设计的困惑;壳壳互联和探探科技也各自分享了在实践中的系统优化策略。
大规模音视频会议的通信架构优化设计策略
疫情打破了空间的局限,音视频会议越来越普遍,大家接纳并更习惯了线上会议的便捷性。进入 2021 年,随之而来的一个变化就是,大规模以及超大规模(500 人)的音视频会议需求悄然在增长。
在超过 20 人会议场景下,现有的多对多网络架构 SFU 与 WebRTC 的兼容场景就无法很好地解决。如果 500 人的会议,直接选择参会人之间进行音视频互动,音视频数据的完全转发对服务器资源的需求是巨大的,再加上会议中有大量人员同时接入,服务端上行流量和下行流量陡增,更加剧了服务器资源的压力。
融云 WebRTC 开发工程师 苏道 现场答疑
在不稳定的网络环境中,要解决上述问题,同时还要保障通信质量的稳定性,最根本的方案是设计合理的通信架构。融云苏道分享道,可以通过按需订阅与转发、优化音频流量两种策略优化通信架构,在保证效果的前提下,将极大缓解服务器的压力。
具体来说,按需订阅与转发策略应做到以下几点:第一、支持单独订阅某个人的某路视频或某路音频;第二、接收端仅订阅正在说话的人的视频,音频全部订阅;第三、按需订阅视频大小流。目前,融云 SDK 支持发送端视频编码,支持大小流、接收端按需订阅大流或小流。大流的清晰度高,码率高;小流的清晰度低,码率低。这样当接收端想观看清晰视频的时候订阅大流;对清晰度要求不高的时候订阅小流。另外,弱网下融云支持自动切换大小流,以保证视频的流畅性。
优化音频流量策略,降低音频流量则主要应做到:第一、发送端静音时不发送数据;第二、调整音频码率;第三、服务器下发音量 Top N 路。一般情况下,客户端收到音频流,在音频解码后,默认仅混流播放音量最大的 3 路声音。因此一定要避免不必要的音频包的转发,以减少服务流量,只有有效音频包,才会进入到下行分发队列。
除此之外,为了优化音频体验,还需注意级联情况的处理、大会议室房间和普通房间之间的切换等多个方面。最后,苏道鼓励开发者道,“架构从没有失败和成功之说,都是先做得出来且能够用,然后再进一步优化迭代,满足更多人、更多场景的需要。”
大规模即时通讯的客户端日志系统实践
日志是记录系统中各种问题信息的关键,大规模即时通讯的客户端日志系统包含了海量数据。随着业务的发展与增长,日志平台也要经历迭代升级。绝大部分开发者对日志系统的要求是:完整性、及时性、上传成功率、以及可视性。
针对以上诉求,融云 IM 高级研发工程师齐新兵分享了日志系统如何升级的实践。他认为,日志系统首先要做到灵活控制日志上传。根据每家客户应用下发日志配置,日志上传时间最好间隔在 10 秒左右,并允许上传失败重试 5 次,以确保日志上传的及时性和上传的成功率;同时还要有被动上传和主动上传机制,以方便针对性的排查问题。
其次,保证移动端日志统一。这需要统一编写日志模块,保证逻辑统一;梳理标签,保证日志标签内容一致;统一编写底层数据库模块,数据格式要两端一致,从而有效保证日志的可视性和完整性。除此之外,还要有日志标签黑名单功能,黑名单内的日志不再入库,不再上传,一定程度上减少日志量,减轻服务器的成本压力。
日志最重要的意义在于先于客户发现问题,同时也能够及时发现自身问题,确保以高质量的 SDK 服务客户。因此,齐新兵认为,大规模即时通讯的客户端日志系统在研发过程中,需要多测试,不怕暴露其中的问题,才能提升开发者体验。
直播社交及社交的系统架构实践
在直播社交领域,壳壳互联软件工程师张熙文分享了《直播社交系统架构升级》的最佳实践,他认为,影响直播社交日活的重要指标是用户感知和视觉体验。简单说,用户感知就是如何减少延迟,理论上直播延迟超过 150-200ms 便可以被人脑感知。实践中,壳壳互联在服务端和客户端分别进行技术协议和技术方案的优选,最终达到接口请求速度增加 20-40%、单位时间内服务器请求承载量增加 30%左右,用户在直播社交中的感知速度提升。
直播社交受众对视觉体验的要求更高,这主要指主题皮肤的框架设计,包括合理修改 UI 元素的属性、重新布局特定 UI 元素、可运营主题皮肤、可出售主题皮肤等,因此,张熙文特别分享了主题皮肤的设计框架技术图,启发开发者从中获得新的思考。
壳壳互联张熙文分享主题皮肤的设计框架技术图
此外,探探科技国际化技术负责人王伟也带来了《基于探探 IM 系统的优化分享》。从探探 IM 架构、接入层、转发层和服务层、通信协议、通知机制等不同方面介绍了探探对高并发下的高质量实时通信架构设计的探索。
X-Meetup 技术沙龙下一站:南京
X-Meetup 技术沙龙是融云 2020 年组织发起的,围绕"全球通信云技术的发展与探索" 为主题,每期邀请特定行业的技术大咖作为神秘“X”人,与融云一起分享开发者最为关心的前沿技术和最佳实践。今年首站重庆启航后,下一站 3 月 27 日南京站正在火热报名中,融云期待与开发者们共叙音视频实战的困境和解决之道,报名到会的开发者,还将享有专属惊喜礼品,以及与“X”技术大咖单独交流的机会。
评论