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