Nginx-rtmp-module边缘节点如何从多个主节点抽取stream

我有一个主摄取服务器和多个边缘节点,每个从摄取服务器拉。 但现在我有10000个摄像头推送stream来掌握摄取服务器,我怕它无法处理它。 所以我打算添加更多的主摄取服务器(与LoadBalancer LVS来处理哪些主摄取服务器,这些摄像机将推送stream)。 但是,如果有多个主服务器接收服务器的边缘节点如何将所有这些数据stream拉出来。 我也像这样在边缘节点testing拉选项

application live { notify_method get; idle_streams off; pull rtmp://master_server_1/live live=1; pull rtmp://master_server_2/live live=1; } 

但是它只从master_server_1中提取stream。 有什么build议? 谢谢

顺便说一句,我想我不需要更多的主服务器,只是升级带宽。 这样对吗 ? 谢谢

您可以将DNSloggingparsing为多个原始服务器 – 您不仅可以将其用于简单的DNS循环负载平衡,也可以将nginx-rtmp从多个来源中拉出来。

在某个点之后,有多个摄取服务器是有意义的。 除了其他的实际考虑,它给你更多的可靠性。 只有一台服务器,就有一个单点故障。

来源: https : //groups.google.com/forum/#!topic/nginx- rtmp/ B2QqkwXxASk

注1:NGINXcachingDNSparsing,直到重新启动。 如果您希望更改IP(我正在使用AWS ELB,因此它们会发生更改),您可能需要在NGINX中混淆DNSparsing器,或者将exec_pull指令与ffmpeg结合使用。

注2:从所有被拉的节点必须有相同的stream。 没有办法知道一个stream是否存在于原点。 它将使用第一个可用的(连接明智的)来源。

如果你想拥有独立的数据stream集合(对缩放有意义),你将不得不在pipe理上进行pipe理。 我已经使用一致的哈希algorithm解决了这个问题,将stream映射到不同的video集群,从而扩展负载。 例如:发布到原点“1”的stream只能在从原点“1”拉出的边缘上播放。 这样一个系统的实现应该在你的应用层。