我已經在兩臺不同的機器上成功設置了BigCouch。他們都在當地運行得很好。當我使用以下命令之一或兩者將它們加入羣集中時:curl -X PUT machine1:5986/nodes/bigcouch @ machine2 -d {} curl -X PUT machine2:5986/nodes/bigcouch @ machine1 -d {}BigCouch集羣連接問題
我總是收到積極的結果。數據庫節點包含兩個文件bigcouch @ machine2,bigcouch @ machine1。但事實上,它總是很詭異。我在BigCouch的命令行中看到此錯誤消息
= *錯誤報告==== 2011年12月9日:: 20:01:40 ===節點'bigcouch上的進程< 0.3117.0>中的錯誤返回值爲{{rexi_DOWN,noconnect},[{mem3_rep,rexi_call,2},{mem3_rep,replicate_batch,1},{mem3_rep,go,3},{mem3_rep,go,2}]}}的'machine1.fr' < 148> 1 2011-12-09T19:01:40.559992Z machine1 twig < 0.159.0> -------- - mem3_sync nodes - >'bigcouch @ machine2'{{rexi_DOWN,noconnect},[{mem3_rep, replay_call,2},{mem3_rep,replicate_batch,1},{mem3_rep,go,3},{mem3_rep,go,2}]} < 148> 1 2011-12-09T19:01:40.560106Z machine1 twig < 0.159.0 > -------- - mem3_sync dbs - >'bigcouch @ machine2'{{rexi_DOWN,noconnect},[{mem3_rep,rexi_call,2},{mem3_rep,replicate_batch,1},{mem3_rep,go,3} ,{mem3_rep,go,2}]} < 148> 1 2011-12-09T19:01:40.560205Z machine1 twig < 0.159.0> -------- - mem3_sync _users - >'bigcouch @ machine2'{{rexi_DOWN,noconnect},[{mem3_rep, rewrite_call,2},{mem3_rep,replicate_batch,1},{mem3_rep,go,3},{mem3_rep,go,2}]} [error] [emulator] [--------]錯誤處理<在退出值爲{{rexi_DOWN,noconnect},[{mem3_rep,rexi_call,2},{mem3_rep,replicate_batch,1},{mem3_rep,go,3},{mem3_rep, machine1 twig emulator msg - 進程< 0.3198.0>出錯,節點'bigcouch @ machine1',退出值:{{rexi_DOWN,noconnect} ,[{mem3_rep,rexi_call,2},{mem3_rep,replicate_batch,1},{mem3_rep,go,3},{mem3_rep,go,2}]} *
也許這是防火牆?如果是,請告訴我範圍端口讓節點互相連接。如果沒有,請向我解釋,以及如何解決它以連接它們。
在文檔中,他們要求節點可以相互ping通,節點設置相同的魔術cookie。我的機器可以互相ping通,但什麼是魔術餅乾?
此外,如果您有防火牆,則應閱讀以下內容:http://www.erlang.org/faq/how_do_i.html#id55164。您需要打開EPMD端口4369以及一系列端口(例如9100-9105),並最終說服erlang vm僅使用該範圍。鏈接的頁面包含一種方法,但我認爲您還可以將'-kernel inet_dist_listen_min 9001'添加到vm.args文件中。 –