4.2. 节点管理

4.2.1. 添加节点

http://server1:5984/_membership 以查看节点的名称及其连接到的所有节点以及知道的节点。

curl -X GET "http://xxx.xxx.xxx.xxx:5984/_membership" --user admin-user
{
    "all_nodes":[
        "node1@xxx.xxx.xxx.xxx"],
    "cluster_nodes":[
        "node1@xxx.xxx.xxx.xxx"]
}
  • all_nodes 是这个节点知道的所有节点。
  • cluster_nodes 是连接到此节点的节点。

要添加节点,只需执行以下操作:

curl -X PUT "http://xxx.xxx.xxx.xxx/_node/_local/_nodes/node2@yyy.yyy.yyy.yyy" -d {}

现在看看 http://server1:5984/_membership 再一次。

{
    "all_nodes":[
        "node1@xxx.xxx.xxx.xxx",
        "node2@yyy.yyy.yyy.yyy"
    ],
    "cluster_nodes":[
        "node1@xxx.xxx.xxx.xxx",
        "node2@yyy.yyy.yyy.yyy"
    ]
}

您有一个2节点集群:)

http://yyy.yyy.yyy.yyy:5984/_membership 将显示相同的内容,因此只需添加一次节点。

4.2.2. 删除节点

在删除节点之前,请确保已移动所有节点 shards 远离那个节点。

删除 node2 从服务器 yyy.yyy.yyy.yyy ,首先需要知道表示该节点存在的文档的修订:

curl "http://xxx.xxx.xxx.xxx/_node/_local/_nodes/node2@yyy.yyy.yyy.yyy"
{"_id":"node2@yyy.yyy.yyy.yyy","_rev":"1-967a00dff5e02add41820138abb3284d"}

用那个 _rev ,现在可以继续删除节点文档:

curl -X DELETE "http://xxx.xxx.xxx.xxx/_node/_local/_nodes/node2@yyy.yyy.yyy.yyy?rev=1-967a00dff5e02add41820138abb3284d"