当有大量节点或二进制数据时,Erlang消息

时间:2016-10-13 02:42:56

标签: erlang elixir otp

大量节点或二进制数据时,原生Erlang消息会提供合理的性能吗?

案例1:动态池约有50-200台机器(erlang节点)。它不断变化,每10分钟增加或删除约5-50台机器。

案例2:我们假设我们正在使用此群集构建youtube-clone并计划通过消息流式传输视频数据

合理的性能我的意思是 - 可以比复杂的Erlang代码实现的最高性能慢2-3倍慢10倍不行

2 个答案:

答案 0 :(得分:2)

发送消息和二进制数据之间没有任何显着差异。消息刚刚使用term_to_binary转换为二进制数据包,并通过TCP发送,同样适用于二进制数据。 (嗯,它比那更聪明一点,因为相同原子的文本形式不会像简单的term_to_binary那样一次又一次地发送。)所以差异可以忽略不计。

答案 1 :(得分:1)

有重要的细节:

1)在超过100个节点的群集中,完全连接群集中的ping噪声将是网络流量的重要部分。更大的部署需要在Erlang VM和OS中进行深度更改。

2)如果要传输视频或音频,则需要计划单节点容量:每个节点的客户端数,tcp / udp数据包速率,网络带宽。

3)不同节点上的2个进程之间存在性能限制~150-200K / s的消息。