2017-10-20 5 views
1

これは疑問な質問かもしれませんが、私は答えを見つけることができませんでした。 クラスタに3つのノードがある場合、各ノードと通信できるように、トランスポートクライアントを作成する際に各ノードのIPとポートを指定する必要がありますか?弾性探索クラスタ接続

new PreBuiltTransportClient(settings, AuthenticationPlugin.class).addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("localhost"), 
         Integer.parseInt("9300"))) 
         .addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("localhost"), 
         Integer.parseInt("9301"))) 
InetSocketTransportAddress(InetAddress.getByName("localhost"), 
         Integer.parseInt("9302")));; 

各ノードのIPとポートを提供する必要はありませんか? 助けてください

答えて

0

3つのノードがすべて1つのクラスタにある場合、そのうちの1つとしか通信できません。彼らは場面の背後で必要なコミュニケーションをすべて行います。

また、データがないロードバランサノードを持つようにクラスタを設定し、常にこのノードに接続することもできます。詳細here

更新:

レッツは、あなたが同じサーバー上に同じクラスタの3つのノードを実行したいと言う: node1.local node2.local node3.local

コンフィグファイルは次のようになります。

node1.local

cluster.name: BillyMiligan 
node.name: "node1.local" 
network.host: "localhost" 
transport.tcp.port: 9301 
http.port: 9201 
discovery.zen.ping.unicast.hosts: ["node1.local:9301", "node2.local:9302", "node3.local:9303"] 
discovery.zen.minimum_master_nodes: 2 

node2.local

cluster.name: BillyMiligan 
node.name: "node2.local" 
network.host: "localhost" 
transport.tcp.port: 9302 
http.port: 9202 
discovery.zen.ping.unicast.hosts: ["node1.local:9301", "node2.local:9302", "node3.local:9303"] 
discovery.zen.minimum_master_nodes: 2 

node3.local

cluster.name: BillyMiligan 
node.name: "node3.local" 
network.host: "localhost" 
transport.tcp.port: 9303 
http.port: 9203 
discovery.zen.ping.unicast.hosts: ["node1.local:9301", "node2.local:9302", "node3.local:9303"] 
discovery.zen.minimum_master_nodes: 2 
+0

私は(ローカルホスト、9300)が、これは、ノードがダウンし、まだポート上で実行されているが2つのノード[(ローカルホスト、9301)ESどのようにいくつかの-1をノードAに接続していた場合と(localhost、9302)。すべてのノードが単一のクラスタにあると、私のトランスポートクライアントは自動的に(9301 OR 9302)で動作しているノードの1つに接続されますか? – Wolverine

+0

各elasticsearchノードは少なくとも2つのポートを使用します(transport.tcp.port:9300 デフォルトではhttp:9200) 同じサーバー上に複数のノードを開始する場合は、両方をオーバーライドするようにしてください – pkhlop

+0

elasticsearchは、 1つはtcp、1つはhttpですが、まだ私の質問についてはっきりしません \t **私はnode-1(localhost、9300)に接続していますが、このESノードがどのようにダウンし、ポート[(localhost、9301)と(localhost、9302)。すべてのノードが1つのクラスタにある場合、私のトランスポートクライアントは自動的に(9301 OR 9302)で動作しているノードの1つに接続しますか?** – Wolverine