我已经在两台不同的机器上成功设置了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文件中。 –