0

我已经在两台不同的机器上成功设置了 BigCouch。它们都在本地运行得很好。当我使用以下命令之一或同时将它们加入集群时: curl -X PUT machine1:5986/nodes/bigcouch@machine2 -d {} curl -X PUT machine2:5986/nodes/bigcouch@machine1 -d {}

我总是收到积极的结果。数据库节点包含两个文档 bigcouch@machine2、bigcouch@machine1。但实际上,它总是错误的。我在 BigCouch 的命令行中看到了这个错误信息

=*错误报告==== 2011 年 12 月 9 日::20:01:40 === 节点“bigcouch@machine1.fr”上的进程 <0.3117.0> 出错,退出值:{{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.559992Z machine1树枝 <0.159.0> -------- - mem3_sync 节点 -> '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.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,rexi_call,2}, {mem3_rep,replicate_batch,1}, {mem3_rep,go,3}, {mem3_rep,go,2}]} [错误] [模拟器] [--------] 节点“bigcouch@machine2”上的进程 <0.3198.0> 出错,退出值:{{rexi_DOWN,noconnect},[{mem3_rep,rexi_call,2},{mem3_rep,replicate_batch ,1},{mem3_rep,go,3},{mem3_rep,go,2}]} <147>1 2011-12-09T19:01:45.560979Z 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}]} *退出值:{{rexi_DOWN,noconnect},[{mem3_rep,rexi_call,2},{mem3_rep,replicate_batch,1},{mem3_rep,go,3},{mem3_rep,go,2}]} <147>1 2011 -12-09T19:01:45.560979Z machine1 twig emulator msg - 节点 'bigcouch@machine1' 上的进程 <0.3198.0> 出错,退出值:{{rexi_DOWN,noconnect},[{mem3_rep,rexi_call,2},{ mem3_rep,replicate_batch,1},{mem3_rep,go,3},{mem3_rep,go,2}]}*退出值:{{rexi_DOWN,noconnect},[{mem3_rep,rexi_call,2},{mem3_rep,replicate_batch,1},{mem3_rep,go,3},{mem3_rep,go,2}]} <147>1 2011 -12-09T19:01:45.560979Z machine1 twig emulator msg - 节点 'bigcouch@machine1' 上的进程 <0.3198.0> 出错,退出值:{{rexi_DOWN,noconnect},[{mem3_rep,rexi_call,2},{ mem3_rep,replicate_batch,1},{mem3_rep,go,3},{mem3_rep,go,2}]}*

也许是防火墙?如果是,请告诉我让节点相互连接的范围端口。如果没有,请向我解释一下以及如何解决连接它们。

在文档中,他们要求节点可以相互 ping 通,并且节点设置相同的魔法 cookie。我的机器可以互相ping通,但是什么是magic cookie?

4

1 回答 1

0

有时您会在第一次连接节点时看到此错误,因为有各种进程接收更新消息并监视其他节点以及内部复制器。这些消息是无害的,但如果您持续看到“noconnect”,则说明有问题。

在每个实例上都有一个文件 /etc/vm.args,您将在其中看到两个感兴趣的值,-name 和 -setcookie 第一个 -name 对应于您在连接节点时必须使用的 doc id,第二个是所有 erlang 节点上的魔法 cookie 必须相同,它们才能相互交谈。如果未设置此 cookie,则默认为 ~/.erlang-cookie 中的值

当您执行“make dev”时,它将构建一个 3 节点集群,您可以检查该集群以查看应如何设置这些位。

此外,您只需要在一侧运行连接,例如。node2 到 node1 作为内部复制器将跨集群同步节点数据库

于 2011-12-11T12:06:40.280 回答