2015-10-01 145 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