2015-10-01 94 views
2

在Erlang中,连接的机器集群对于可以拥有多少台机器有一些软限制,而不会因为闲聊协议正常工作而发送太多消息。Erlang内部群集通信

This question也有类似的说法。我也看到Riak的一些基准测试可以运行200个节点(找不到链接,但我认为它是一个Basho测试)。

据我所知,一个200 Erlang节点集群有能力真的是重负载。我只是想知道如果这个限制成为瓶颈的话。

看起来比这更大的(这将是巨大的)的答案是隔离您的系统在更小的孤立群集,很像微服务方法。

我的问题是:这是推荐这种沟通的方式吗?

由于marshling/unmarshiling JSON,HTTPS握手和其他协议绑定操作(负载均衡器等)的不必要的权重,我不想提出REST服务。

BERT-RPC看起来是最合适的,但它的发展似乎陈旧。 NkCluster似乎已经实现了类似的东西,但是有没有Erlang/Elixir/Joxa/LFE的方式?

+5

这是一个有趣的问题,但我怀疑没有“标准实践”,因为在这个尺度下运行的任何问题都会如此独特以至于需要它自己的特殊工程。 –

回答

0

如果您尝试拥有大量可通过显式连接相互通信但不希望看到它们的连接节点,则可能需要将节点设置为hiddenhttp://www.erlang.org/doc/reference_manual/distributed.html#id87289)否则由于传播。

这允许节点连接,但不能通过八卦协议传播,所以节点A知道所连接的隐藏节点nodeB,但是当节点A交换有关网络拓扑的信息时,它不告知节点C关于节点B.

+0

那样你建议拥有一个大集群吗?内部群集不会帮助隐藏节点,或者我看不到如何以高度可用且可扩展的方式将它们组合在一起。 – Olinasc