我使用羣二ES節點(ES版本1.0.1),我需要作以下澄清:elasticsearch聚類問題
當我啓動應用程序並將其連接到兩個節點,我可以看到雙方服務的請求節點,但是當我停止其中一臺服務器時,它會拋出異常並且其他節點仍然工作,但是50%的請求仍然會得到異常,並且整個流量不會轉移到正在運行的節點上。集羣
我有以下配置: 1節點:
discovery.zen.minimum_master_nodes: 1
node.data: true
discovery.zen.ping.unicast.hosts: ["product-elasticsearch-1","product-elasticsearch-2"]
node.master: true
couchbase.maxConcurrentRequests: 1024
2nd Node
discovery.zen.minimum_master_nodes: 1
node.data: true
discovery.zen.ping.unicast.hosts: ["product-elasticsearch","product-elasticsearch-2"]
node.master: false
couchbase.maxConcurrentRequests: 1024
以下是用於運輸的客戶端代碼:
settings = ImmutableSettings.settingsBuilder().put("cluster.name", clusterName)
.put("es.http.timeout",timeout)
.put("client.transport.ping_timeout",pingTimeout)
.put("es.http.retries",retries)
.build();
for (String host : hostList) {
transportAddressList.add(new InetSocketTransportAddress(host,port));
}
Collections.shuffle(transportAddressList);
// Using Transport Client
trasportClient = new TransportClient(settings).addTransportAddresses(transportAddressList.toArray(addressArray));
可能有人請讓我知道,當我停止一個ES過程中,爲什麼所有請求不是由運行節點提供的?
感謝您的回覆。所以另一個觀察是,如果我們以master-master模式運行,其中node.master:對於兩個ES節點都是true,它表示如果其中一個節點發生故障,則其他節點將工作。但是,如果我們在主 - 從模式下運行兩個ES節點,其中slave node.master爲false且master爲down,則它將不起作用。主控制器關閉時,我們可以使主從模式工作嗎? – user3684987
我認爲沒有辦法做到這一點。 elasticsearch中沒有明確的主從模式。存在子節點,數據節點和主節點角色,其中子節點表示它既沒有主數據角色,也沒有數據角色。 –