2016-01-14 27 views
2

我正面临aerospike的问题。aerospike客户端和服务器

我必须有IP 192.168.1.2192.168.1.3

我塞的NodeJS客户端配置了192.168.1.2两个节点群集,但是当我重新启动此节点。那么我的客户端无法与群集连接。

问题1:我应该在客户端添加多个IP吗?

问题2:如果我需要添加多个IP当我将另一个节点添加到群集时会发生什么?我必须编辑我的客户端配置?

问题3:假设我添加第三个节点,其中ip是:192.168.1.4。什么是步骤或将此节点添加到此群集中?我需要编辑每个现有的节点配置文件并添加mesh-seed-address-port 192.168.1.4 3002

注:我的aerospike配置为默认配置。我在每个节点上只添加了mesh-seed-address-port 192.168.1.3 3002,其中mesh-seed-address-port为192.168.1.2 3002 &。

回答

3

您可以提供两个IP地址。当一个节点关闭时,客户端在连接到它时会超时,并尝试另一个IP地址。它只需要一个成功的连接来'聚合'群集(意味着它在这一点上学习其他节点和分区表),所以它在第一个工作后停止。

var config = { 
    hosts: [ 
    { addr: '192.168.1.2', port: 3000 }, 
    { addr: '192.168.1.3', port: 3000 } 
    ] 
} 

对于更大的集群通常人们建立一个域名服务器(如BIND)和服务于使用循环的IP地址之一。这使您可以将主机名称作为地址,这是一种更简洁的方法。名称服务器允许您延迟添加和删除节点IP,而不用担心。 (3)您可以提供几行mesh-seed-address-port行,这样如果某个行不可用,您仍然可以将节点添加到集群中。查看Mesh (Unicast) Heartbeat了解更多信息。新节点需要位于mode mesh,并且有明确的IP address。如果您没有使用网格,最好使用multicast用于心跳。

+0

我将使用aws,使多播不可能。 –

+0

我明白了。通常我的意思是,你可以使用网格或多播。 –

+0

另一个问题是,如果1节点启动并运行100 GB的数据,然后向集群添加另一个1节点。那么需要多少时间重新平衡所有的东西(复制因子2)呢? (大约),并且在那个时候发生重新平衡时,群集将服务于任何客户端请求? –