#elasticsearch #netty
#elasticsearch #netty
Вопрос:
Я хочу остановить межузловую связь в elasticsearch, в основном, чтобы прекратить прослушивание порта 9300. Вышесказанное должно быть достигнуто без использования брандмауэра для блокировки каких-либо портов.
Я попытался закрыть канал netty в начальной загрузке сервера, если я это сделаю, elasticsearch не запустится.
Когда я запускаю экземпляр elasticsearch, он не должен прослушивать 9300,
Но я получаю следующие ошибки: [2019-03-25T10:46: 16,344] [ПРЕДУПРЕЖДЕНИЕ] [o.e.b.ElasticsearchUncaughtExceptionHandler] [узел-0] неперехваченное исключение в потоке [main] [elasticsearch] org.elasticsearch.bootstrap.StartupException: java.lang.Исключение IllegalStateException: обработчик не установлен [elasticsearch] в org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:163) ~ [elasticsearch-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT] [elasticsearch] в org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:150) ~[elasticsearch-7.0.0-SNAPSHOT.jar:7.0.0-МОМЕНТАЛЬНЫЙ СНИМОК] [elasticsearch] в org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java: 86) ~[elasticsearch-7.0.0-SNAPSHOT.jar:7.0.0-МОМЕНТАЛЬНЫЙ СНИМОК] [elasticsearch] в org.elasticsearch.cli.Command.mainWithoutErrorHandling (Command.java:124) ~[elasticsearch-cli- 7.0.0-SNAPSHOT.jar:7.0.0-СНИМОК] [elasticsearch] в org.elasticsearch.cli.Command.main(Command.java:90) ~[elasticsearch-cli-7.0.0-СНИМОК.jar:7.0.0-СНИМОК] [elasticsearch] в org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java: 115) ~ [elasticsearch-7.0.0-СНИМОК.jar: 7.0.0-СНИМОК] [elasticsearch ] в организации.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:92) ~[elasticsearch-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT] [elasticsearch] Вызвано: java.lang.Исключение IllegalStateException: обработчик не установлен [elasticsearch] в io.netty.bootstrap.Bootstrap.validate (Bootstrap.java:284) ~[?:?] [ elasticsearch] в io.netty.bootstrap.Bootstrap.connect (Bootstrap.java:113) ~[?:?] [ elasticsearch] в org.elasticsearch.transport.netty4.Netty4Transport.createClientBootstrap(Netty4Transport.java:189) ~[?:?] [ elasticsearch] в org.elasticsearch.transport.netty4.Netty4Transport.doStart(Netty4Transport.java:149) ~[?:?] [ elasticsearch] в org.elasticsearch.common.component.Абстрактный lifecyclecomponent.start(абстрактный lifecyclecomponent.java:61) ~[elasticsearch-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT] [эластичный поиск] в org.elasticsearch.transport.Транспортный сервис.Запустите (TransportService.java: 228) ~[elasticsearch-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT] [elasticsearch] в org.elasticsearch.common.component.Абстрактный lifecyclecomponent.start(абстрактный lifecyclecomponent.java:61) ~[elasticsearch-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT] [эластичный поиск] в организации.elasticsearch.node.Node.start (Node.java: 661) ~[elasticsearch-7.0.0-SNAPSHOT.jar:7.0.0-МОМЕНТАЛЬНЫЙ СНИМОК] [elasticsearch] в org.elasticsearch.bootstrap.Bootstrap.start(Bootstrap.java: 263) ~ [elasticsearch-7.0.0-SNAPSHOT.jar: 7.0.0-МОМЕНТАЛЬНЫЙ СНИМОК] [elasticsearch] в org .elasticsearch.bootstrap.Bootstrap.init (Bootstrap.java: 334) ~[elasticsearch-7.0.0-SNAPSHOT.jar:7.0.0-МОМЕНТАЛЬНЫЙ СНИМОК] [elasticsearch] в org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java: 159) ~ [elasticsearch-7.0.0-SNAPSHOT.jar: 7.0.0-МОМЕНТАЛЬНЫЙ СНИМОК]
Ответ №1:
Почему бы не попробовать обнаружение одного узла? одноузловой (настройте его, установив discovery.type
значение single-node
); в этой ситуации узел выберет себя главным и не будет присоединяться к кластеру с каким-либо другим узлом. Это более чистый способ сделать это
Кроме того, можно избежать проверок начальной загрузки (либо не привязывая транспорт к внешнему интерфейсу, либо привязывая транспорт к внешнему интерфейсу и устанавливая тип обнаружения на одноузловой)
Комментарии:
1. Можете ли вы сказать, в каком файле мне следует установить значение single node.
2. Это Netty4transport.java кстати, я запускаю эластичный поиск в eclipse.
3. Должно быть в elasticsearch.yaml, подробнее на elastic.co/guide/en/elasticsearch/reference/current /…
4. Я не использую обычный установщик, как установить discovery.введите этот файл напрямую github.com/elastic/elasticsearch/tree/master/server/src/main /…
5. В нем говорилось, что либо не привязывая транспорт к внешнему интерфейсу, либо привязывая транспорт к внешнему интерфейсу, означает ли это, что он автоматически выбирает один, или мы получаем возможность установить его.
Ответ №2:
Установить node.name для чего-то другого, кроме 0.0.0.0 /0
Комментарии:
1. как это соответствует моим требованиям