融云X-Meetup南京站 探讨实时通信架构的高质量设计

2021年3月27日,融云X-Meetup技术沙龙第二站落地南京。这场以“高质量高并发的实时通信架构设计与探索”为主题的开发者活动,邀请到融云音视频工具研发工程师王炜、IM 高级研发工程师齐新兵、壳壳互联软件工程师张熙文、虎克CEO过巍四位大咖,向现场的开发者们分享了各自领域的干货。

融云X-Meetup技术沙龙 南京站现场

音视频SDK架构设计,重在稳定可靠

沙龙上,融云音视频工具研发工程师王炜首先发表了《融云音视频 SDK 架构分享与应用》的演讲。他认为,谈到 SDK 架构设计,融云音视频 SDK 因简洁易用、通俗易懂、可分层架构、可替换可复用、易于维护等诸多优点,为广大开发者所熟知。这既是融云音视频SDK架构设计的经验总结,也是融云音视频SDK架构设计的原则

目前,融云音视频SDK架构主要由API接口层、数据模型层、会话管理层、基础组件层和信令层组成。在数据模型层,设计应面向业务逻辑、面向用户,要关注数据模型不同的生命周期,兼顾读开放、写限制。尤其不可忽视的是要做好保护性拷贝,以便后续的运营维护。

融云音视频SDK架构

在分享会话管理层的设计要点时,王炜直接以框架设计图来阐释音视频采集、前处理、编码、传输、解码、后处理、渲染各状态相互之间的逻辑关系。简捷而直观的表达,帮助开发者更好地理解其设计的精髓。

会话管理层合理设计架构

基础组件层王炜指出,因其面向底层设备硬件资源,是一个独立的任务管理系统,因此要更注重模块功能的内聚,具备非直接耦合和接口隔离;而信令层的设计,则要求能够封装IM信令通道和进行Http请求,使之具有独立于业务功能的逻辑,不仅要有基本的通信能力,还可拆包、封包,并且不允许跨层调用。

大规模即时通讯客户端日志系统,重在发现问题

目前,融云 SDK 服务 30 万款 App, 总触达数超过 50 亿,日均消息量突破 150 亿,日均活跃用户 7000 万,日消息峰值高达 2218 亿条,秒峰值消息 2000 万条。这些数据实实在在地见证了融云大规模通信架构的高光时刻。

在高光时刻的背后融云IM 高级研发工程师齐新兵坦言,“当一秒钟要完成 2000 万条消息的分发时,不只是我们自己的研发、运维团队,甚至是我们运营商、机房的人都时刻在担心各种意想不到的故障。”因此,能够先于客户发现问题,并及时发现自身问题,确保以高质量的 SDK 服务客户,融云大规模即时通讯客户端日志系统就显得极为重要。

能否完整、及时地把系统中出现的问题反应出来,并在成功率可视化方面拥有出众表现,是大规模即时通讯客户端日志系统设计的主要诉求。灵活控制日志上传、保证移动端日志统一、保证上传成功率,以及标签日志黑名单功能,这些都是日志系统设计和升级要点。

例如,要做到灵活控制日志上传,应根据每家客户应用下发日志配置,满足不同的平台和版本,要设置好上传时间间隔和失败重试次数,确保日志上传的成功率和及时性。同时,还要做到灵活控制被动上传和主动上传,以便有针对性地排查问题:被动上传含日志开关与上传级别,方便关闭与控制;主动上传则可拉取指定用户特定时间段内的所有日志。

在设计中,保证移动端日志统一,则能有效保证日志可视性和完整性。此外,合理利用日志标签黑名单功能,使黑名单内的日志不再入库上传,在实践中可极大减少日志量,从而减轻服务器的成本压力。

直播社交依靠融云高质量通信架构的设计

作为X-Meetup技术沙龙活动的“X”嘉宾,虎克CEO过巍分享了公司的发展历程及直播行业对PaaS通信云能力的需求。虎克自2012年开始进入商业直播领域,其形式主要是会议直播,这与现在经常看到的娱乐直播和秀场直播都不同,差异在于视频格式、物理环境不同,线上会议直播与线下内容的交互更强关联,因此对实时性的要求也比较高。随后,虎克进入了秀场直播领域,比如线上抓娃娃,直播社交等多种应用场景。

在公司发展过程中,虎克看到了越来越多有商业价值的应用场景都需要底层通信技术赋能,而想要拥有稳定可靠的通信云能力,不是一家初创公司花半年甚至一年时间,找十几个、二十几个工程师能够做得出来的。

为了快速发展,虎克最终选择与融云牵手合作。合作后,虎克负责应用场景和商业价值的实现,而所有与底层通信云相关的技术与服务都交给融云。目前,虎克已推出60多款应用产品,覆盖超过90%的典型场景,单一应用产品用户量已经突破百万。最为难得的是,所有应用产品用户体验是零投诉,这完全依赖于融云稳定、可靠的高质量高并发的实时通讯架构。

此外,直播社交领域的壳壳互联软件工程师张熙文也分享了《直播社交系统架构升级》的最佳实践,认为用户感知和视觉体验应成为架构升级过程中,重点被解决的问题,并以视觉体验中的主题皮肤设计为例,详细向开发者介绍了该设计的框架技术图。

结语

娱乐社交、电商直播等应用场景,都需要音视频和IM核心功能来支撑,而行业红利的爆发,用户规模的指数级增长,又需要不断升级迭代的架构来保障用户体验。因此,掌握高质量高并发的实时通信的架构设计越来越成为开发者的必备技能。融云X-Meetup南京站技术沙龙,为开发者提供了交流的平台与机会,期待2021年下一站再相遇。