Я настраиваю кластер узлов elasticsearch на AWS. Кластер содержит 3 узла. Узлы находятся за ELB (балансировщик эластичной нагрузки). У ELB есть DNS-имя: «a.b.c.com».Эластичные поисковые узлы за балансировщиком нагрузки
Я могу успешно работать такие вещи, как:
curl -XGET 'http://a.b.c.com:9200/_cat/nodes'
Это доказывает, что права доступа и маршруты работают должным образом.
Когда я пытаюсь подключить мой сервер приложений Java, чтобы он не Elasticsearch со следующей ошибкой:
org.elasticsearch.transport.ReceiveTimeoutTransportException: [][inet[a.b.c.com/172.31.27.110:9300]][cluster:monitor/nodes/info] request_id [57] timed out after [10000ms]
at org.elasticsearch.transport.TransportService$TimeoutHandler.run(TransportService.java:366)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Это происходит независимо от увеличения ли я client.transport.ping_timeout.
Java-код, который я использую для подключения выглядит следующим образом:
Settings settings = ImmutableSettings.settingsBuilder().put("cluster.name", clusterName).put("client.transport.ping_timeout", 10000).build();
client = new TransportClient(settings);
TransportClient transportClient = (TransportClient)client;
transportClient.addTransportAddress(new InetSocketTransportAddress(instance, esPort));
экземпляр = "a.b.c.com" Esport = 9300 (я пытался 9200, а)
Thx заранее за помощь.
Я столкнулся с той же проблемой. любые решения? –
Я не помню, как я это решил, но теперь он работает :-(У вас есть одно и то же исключение? –
Теперь, когда я думаю об этом, код, который я использую, точно такой же, как и выше. это, убедившись, что у меня есть правила для порта 9300. Поскольку завиток выше просто доказывает, что 9200 работает, а не 9300. –