一、级联概念
服务器级联通常指两个服务或者多个服务之间互相通信。比如视频会议或者在线教育中的小班课, 由于参会人员或者上课的学生分布在全国各地,如果是外教英语课还要跨国。这两种情况下用户会连接到不同的媒体服务,比如学生A连接华南节点、学生B连接华东节点、老师连北京某个节点。他们会进入同一个房间进行上课,此时就需要媒体服务之间进行夸地区、跨服通信。
而级联就是用来解决这个问题的。
二、mediasoup的级联方案PipeTransport
mediasoup通过PipeTransport实现两台worker之间的级联通信。
注意:虽然mediasoup提供了PipeTransport这种级联方案。但是,实现方式偏简单。比如。没有考虑节点负载、两个节点之间网络状态、路由线路的选择问题。所以,实际线上应用时,如果并发量较高需要做定制化修改。
PipeTransport的创建过程
node.js层和前面介绍的PlainTraport创建类似,不再单独介绍。下面只讲c++层。
代码见:PipeTransport.cpp
PipeTransport::PipeTransport(const std::string& id, RTC::Transport::Listener* listener, json& data)
: RTC::Transport::Tra