我在同一台物理计算机上安装了两个Erlang节点,我希望能够在节点之间发送大文件。
从我看到的症状看起来节点之间只有一个Tcp连接,并且发送大二进制文件阻止所有其他流量,是这种情况吗?
更有意思的是有一种方法可以让vm在节点之间使用多个连接吗?
答案 0 :(得分:3)
是的,根据the manual
,您只能获得1个连接握手将继续,但A被告知B有另一个 正在进行的连接尝试将被关闭(同时进行) 连接A的名字大于B的名字,按字面比较。
不确定问题中“大”意味着什么,但一般来说(和imho),设置一个单独的tcp端口来处理有效负载可能是好的,并且只使用标准的erlang消息作为信令方法(到协商端口,设置监听器等),比如建议有新的有效载荷并协商所需的任何东西。
顺便说一句,the same subject上有一个有趣的帖子,您可以尝试调整the net_*变量,看看它们是否有助于解决这些问题。
希望它有所帮助!答案 1 :(得分:3)
不建议在erlang节点之间发送大消息, http://learnyousomeerlang.com/distribunomicon 请参阅“带宽是无限的”部分,我建议使用其他类似GFS的东西,这样就不会失去erlang的分发功能。