Подключение клиента ElasticSearch невозможно - PullRequest
0 голосов
/ 02 октября 2018

У меня проблемы с ElasticSearch Client.

Я разработал Java-приложение (для завершения обучения разработчиков), которое управляет различными базами данных MySQL, mongoDb и ElasticSearch.Я был в состоянии читать, создавать и обновлять данные из базы данных в другую.Все было разработано и закодировано с локальными базами данных, и все работает очень хорошо.Все тесты были проверены, поэтому мы решили заставить его работать на удаленных серверах в реальных базах данных.

А потом начали возникать проблемы, особенно те, с которыми я застрял в течение двух долгих дней, и яЯ становлюсь действительно отчаявшимся.

  • С TransportClient он работал на локальном, а на реальном сервере - NoNodeAvailableException, говоря, что ни один из настроенных узлов не доступен.Попробуйте много вещей, чтобы заставить его работать, но это не так.

  • Поэтому я решил попробовать подключиться и запросить с REST.Вот мой код, и ошибка, которую я получил, не очень подробная: это ConnectException.

Код:

    // Get the connection client from ES database
    public static RestHighLevelClient getConnection()
    {
        // Singleton
        if(client == null)
        {
            try             
            {       
                // Set Credz
                final CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
                credentialsProvider.setCredentials(AuthScope.ANY, new UsernamePasswordCredentials("Login", "pwd"));             

                // Builder
                RestClientBuilder builder = RestClient.builder(new HttpHost("ServerIP", 9200, "http")).setHttpClientConfigCallback(new HttpClientConfigCallback() 
                {
                    @Override
                    public HttpAsyncClientBuilder customizeHttpClient(HttpAsyncClientBuilder httpClientBuilder) 
                    {   
                        System.out.println("Setting taken !");
                        return httpClientBuilder.setDefaultCredentialsProvider(credentialsProvider);
                    }
                });                 

                // Create client
                client = new RestHighLevelClient (builder);

                ClusterHealthRequest healthReq = new ClusterHealthRequest("looppy-cluster");
                ClusterHealthResponse response = client.cluster().health(healthReq, RequestOptions.DEFAULT);
    int numberOfNodes = response.getNumberOfNodes(); 
            System.out.println("Nodes Nb : " + numberOfNodes);

            } 
            catch(Exception ex)
            {   
System.out.println("Client connection problem");
                ex.printStackTrace();
            }
        }       

        return client;
    }   

И вот исключение, которое я получил:

    java.net.ConnectException
    at org.elasticsearch.client.RestClient$SyncResponseListener.get(RestClient.java:943)
    at org.elasticsearch.client.RestClient.performRequest(RestClient.java:227)
    at org.elasticsearch.client.RestHighLevelClient.performRequest(RestHighLevelClient.java:1256)
    at org.elasticsearch.client.RestHighLevelClient.performRequestAndParseEntity(RestHighLevelClient.java:1231)
    at org.elasticsearch.client.ClusterClient.health(ClusterClient.java:146)
    at utils.ElasticSearchMng.getConnection(ElasticSearchMng.java:86)
    at utils.ElasticSearchMng.getLoopiesFromES(ElasticSearchMng.java:133)
    at program.Program$1.run(Program.java:96)
    at java.awt.event.InvocationEvent.dispatch(Unknown Source)
    at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
    at java.awt.EventQueue.access$500(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)
Caused by: java.net.ConnectException
    at org.apache.http.nio.pool.RouteSpecificPool.timeout(RouteSpecificPool.java:168)
    at org.apache.http.nio.pool.AbstractNIOConnPool.requestTimeout(AbstractNIOConnPool.java:561)
    at org.apache.http.nio.pool.AbstractNIOConnPool$InternalSessionRequestCallback.timeout(AbstractNIOConnPool.java:822)
    at org.apache.http.impl.nio.reactor.SessionRequestImpl.timeout(SessionRequestImpl.java:183)
    at org.apache.http.impl.nio.reactor.DefaultConnectingIOReactor.processTimeouts(DefaultConnectingIOReactor.java:210)
    at org.apache.http.impl.nio.reactor.DefaultConnectingIOReactor.processEvents(DefaultConnectingIOReactor.java:155)
    at org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor.execute(AbstractMultiworkerIOReactor.java:348)
    at org.apache.http.impl.nio.conn.PoolingNHttpClientConnectionManager.execute(PoolingNHttpClientConnectionManager.java:192)
    at org.apache.http.impl.nio.client.CloseableHttpAsyncClientBase$1.run(CloseableHttpAsyncClientBase.java:64)
    at java.lang.Thread.run(Unknown Source)

Я чувствую отчаяние и, на самом деле, не понимаю, что происходит, буду очень признателен, если кто-то сможет помочь!

Спасибо большое, парень

1 Ответ

0 голосов
/ 02 октября 2018

Проблема наконец-то решена, порт был не очень хорошим, люди, которые работают с серверами, сказали мне порт, потому что они изменили его, и он работал напрямую;)

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