如何使用RTCPilot配置一个集群RTC服务
大家好今天介绍如何配置和使用RTC集群RTC Pilot是一个基于C17开发的WebRTC SFU开源支持跨平台支持windowslinuxmacos二次开发效率高并且是开源中唯一全面支持WebRTC级联的开源服务。上一期我们介绍RTC pilot如何搭建一个简单视频会议今天我们介绍如何搭建一个RTC集群提供分布式的视频会议系统。支持WebRTC级联其实是硬需求。主要原因有1.单个RTC服务进程性能有一定的限制一旦接入用户们的RTC推流个数和拉流个数大于阈值系统无法扩展。2.RTC就近接入的需求如果需要在全国部署需要在就近的城市部署在接入的时候根据用户的IP地址就近接入。比如在北京上海广州建立服务节点就需要这几个城市的RTC服务进行级联。3.跨国RTC通信的需要跨国的RTC因为延时大的特点需要建立一些节点和专线提供低延时的转发所以就有了级联的需求。支持WebRTC级联的RTC Pilot结构图有这几部分1.Pilot Center: 接受来自RTC pilot SFU的web socket注册后同步房间和用户信息且同步RTC流信息2.RTC Pilot SFU上个视频介绍过如何配置和使用接受客户端的接入并转发房间用户和流信息给Pilot Center并且转发音频和视频流在不同的SFU之间。3.Web client前端用vue3开发信令通过web socket接入RTC pilot SFUWebRTC媒体接入SFU。如图client 1和client 2接入SFU 1client 3接入SFU 2房间和用户加上RTC流的信息通过Pilot center在SFU之间传递共享流信息后视频和音频通过RTP直接在RTC Pilot SFU之间传递。RTC Pilot级联代码1.Pilot Center(Python): 在RTCPilot代码中pilot_center目录下Github:https://github.com/runner365/RTCPilot/tree/master/pilot_center国内:https://gitee.com/xiaoq_bj/rtcpilot/tree/master/pilot_center2.RTC Pilot SFU(C17):Github:https://github.com/runner365/RTCPilot国内:https://gitee.com/xiaoq_bj/rtcpilot3.Web client(VUE3):Github:https://github.com/runner365/webrtc_js_client国内:https://gitee.com/xiaoq_bj/webrtc_js_client这次级联配置例子我们启动两个SFU进程在同一台设备上也就是本机。SFU 1的WebSocket信令接入端口为7443而SFU 2的端口号为7543两者区分开SFU 1的WebRTC的candidate端口号为5000和6000而SFU 2的WebRTC candidate端口号是5001和6001两者通过端口号区分开。级联的媒体RTP传输的端口号范围SFU 1为10000到19999SFU 2为20000到29999在同一台设备UDP范围区分开。具体如何配置请观看音视频小话的视频号内容如何配置RTC集群