Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
存在大量节点或二进制数据时的Erlang消息_Erlang_Elixir_Otp - Fatal编程技术网

存在大量节点或二进制数据时的Erlang消息

存在大量节点或二进制数据时的Erlang消息,erlang,elixir,otp,Erlang,Elixir,Otp,当存在大量节点或二进制数据时,本机Erlang消息是否能提供合理的性能 案例1:有一个大约50-200台机器的动态池(erlang节点)。它不断变化,大约每10分钟添加或删除5-50台机器 案例2:假设我们正在使用这个集群构建youtube克隆,并计划通过消息流传输视频数据 所谓合理的性能,我的意思是-比复杂的Erlang代码可能达到的最高性能慢2-3倍是可以的,慢10倍是不可以的发送消息和二进制数据之间没有任何显著差异。消息只是使用术语\u to \u binary转换为二进制数据包,并通过T

当存在大量节点或二进制数据时,本机Erlang消息是否能提供合理的性能

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

案例2:假设我们正在使用这个集群构建youtube克隆,并计划通过消息流传输视频数据


所谓合理的性能,我的意思是-比复杂的Erlang代码可能达到的最高性能慢2-3倍是可以的,慢10倍是不可以的

发送消息和二进制数据之间没有任何显著差异。消息只是使用
术语\u to \u binary
转换为二进制数据包,并通过TCP发送,同样适用于二进制数据。(好吧,它比这稍微聪明一点,因为相同原子的文本形式不会像简单的
term_to_binary
那样一次又一次地发送。)因此差异可以忽略不计。

有一些重要的细节:

1) 在超过100个节点的集群中,全连接集群中的ping噪声将是网络流量的重要部分。更大的部署需要对Erlang虚拟机和操作系统进行深刻的更改

2) 若要流式传输视频或音频,需要规划单个节点的容量:每个节点的客户端、tcp/udp数据包速率、网络带宽

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