Обработка org.elasticsearch.client.transport.NoNodeAvailableException - PullRequest
0 голосов
/ 07 мая 2019

Привет. В моем проекте SpringBoot я настроил упругий поиск, используя JPA. Я использую ElasticsearchRepository для этого. Теперь для конфигурации, когда я использую localhost, тогда все работает нормально, но когда я помещаю IP-адрес, тогда я сталкиваюсь с исключением-

org.elasticsearch.client.transport.NoNodeAvailableException: Ни один из настроенные узлы доступны: [{# Транспорт # -1} {lDnuVli1Rriy-9j1pdozZA} {} {27.101.12.99 27.101.12.99:9300}] в org.elasticsearch.client.transport.TransportClientNodesService.ensureNodesAreAvailable (TransportClientNodesService.java:347) ~ [asticsearch-5.6.11.jar: 5.6.11] в org.elasticsearch.client.transport.TransportClientNodesService.execute (TransportClientNodesService.java:245) ~ [asticsearch-5.6.11.jar: 5.6.11] в org.elasticsearch.client.transport.TransportProxyClient.execute (TransportProxyClient.java:59) ~ [asticsearch-5.6.11.jar: 5.6.11] в org.elasticsearch.client.transport.TransportClient.doExecute (TransportClient.java:366) ~ [asticsearch-5.6.11.jar: 5.6.11] в org.elasticsearch.client.support.AbstractClient.execute (AbstractClient.java:408) ~ [asticsearch-5.6.11.jar: 5.6.11] в org.elasticsearch.action.ActionRequestBuilder.execute (ActionRequestBuilder.java:80) ~ [asticsearch-5.6.11.jar: 5.6.11] в org.elasticsearch.action.ActionRequestBuilder.execute (ActionRequestBuilder.java:54) ~ [asticsearch-5.6.11.jar: 5.6.11] в org.springframework.data.elasticsearch.core.ElasticsearchTemplate.index (ElasticsearchTemplate.java:571) ~ [spring-data -asticsearch-3.0.10.RELEASE.jar: 3.0.10.RELEASE] в org.springframework.data.elasticsearch.repository.support.AbstractElasticsearchRepository.save (AbstractElasticsearchRepository.java:156) ~ [spring-data -asticsearch-3.0.10.RELEASE.jar: 3.0.10.RELEASE] в sun.reflect.NativeMethodAccessorImpl.invoke0 (собственный метод) ~ [na: 1.8.0_151] в sun.reflect.NativeMethodAccessorImpl.invoke (неизвестный источник) ~ [na: 1.8.0_151] в sun.reflect.DelegatingMethodAccessorImpl.invoke (неизвестный источник) ~ [na: 1.8.0_151] на java.lang.reflect.Method.invoke (неизвестный источник) ~ [На: 1.8.0_151]

Код для запуска Elastic Search -

@Bean
    public Client client() throws Exception {

        Settings  settings = Settings.builder()
                            .put("cluster.name",getElasticCluster())
                            .build();

        return new PreBuiltTransportClient(Settings.EMPTY)
                .addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName(getElasticHost()),getElasticPort()));
    }

    @Bean
    public ElasticsearchOperations elasticsearchTemplate() throws Exception {
        return new ElasticsearchTemplate(client());
    }

elasticsearch: шутка: прокси: хост: 27.101.12.99 порт: 9300

У меня было много поисков, но в моем случае ничего не помогло. Поэтому, пожалуйста, проверьте и помогите.

1 Ответ

0 голосов
/ 10 мая 2019

Клиент эластичного поиска в вашем приложении подключается к кластеру с помощью транспортного протокола. Этот подход устарел и уже удален в последних выпусках. Это говорит о том, что транспортный протокол не HTTP, и ваш Jest-прокси, вероятно, не сможет проанализировать / смоделировать отправку данных. Это причина, по которой localhost работает, но Jest-прокси не работает.

Для того чтобы ваше приложение было совместимо с будущими выпусками эластичного поиска, вы должны рассмотреть возможность использования клиента REST высокого уровня без потери какой-либо функциональности для весеннего приложения. И в качестве быстрого выигрыша вы сможете снова использовать jest, потому что REST-клиент использует HTTP для связи сasticsearch.

Пожалуйста, посмотрите на это для получения подробной информации о миграции клиента (я предположил, что версияasticsearch основана на трассировке стека, пожалуйста, дважды кликните по ней) https://www.elastic.co/guide/en/elasticsearch/client/java-rest/5.6/java-rest-high-level-migration.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...