हाय मेरे स्प्रिंगबूट प्रोजेक्ट में मैंने जेपीए का उपयोग करके लोचदार खोज को कॉन्फ़िगर किया है। मैं इसके लिए ElasticsearchRepository का उपयोग कर रहा हूं। अब कॉन्फ़िगरेशन के लिए जब मैं लोकलहोस्ट का उपयोग कर रहा हूं तो सब कुछ ठीक काम करता है लेकिन जब मैं आईपी एड्रेस डाल रहा हूं तो मुझे अपवाद का सामना करना पड़ रहा है-

org.elasticsearch.client.transport.NoNodeAvailableException: कॉन्फ़िगर किया गया कोई भी नोड उपलब्ध नहीं है: [{#transport#-1}{lDnuVli1Rriy-9j1pdozZA}{27.101.12.99}{27.101.12.99:9300}] org.elasticsearch.client पर .transport.TransportClientNodesService.ensureNodesAreAvailable(TransportClientNodesService.java:347) ~[elasticsearch-5.6.11.jar:5.6.11] org.elasticsearch.client.transport.TransportClientNodesService.execute(TransportClientNodesService.java:245) पर ~[elasticsearch- 5.6.11.jar:5.6.11] org.elasticsearch.client.transport.TransportProxyClient.execute(TransportProxyClient.java:59) ~[elasticsearch-5.6.11.jar:5.6.11] org.elasticsearch.client पर। Transport.TransportClient.doExecute(TransportClient.java:366) ~[elasticsearch-5.6.11.jar:5.6.11] org.elasticsearch.client.support.AbstractClient.execute(AbstractClient.java:408) ~[elasticsearch-5.6 पर .11.jar:5.6.11] org.elasticsearch.action.ActionRequestBuilder.execute (ActionRequestBuilder.java:80) पर ~[elasticsearch-5.6.11.jar:5.6.11] org.elasticsearch.action.ActionRequestBuilder.execute(ActionRequestBuilder.java:54) पर ~[elasticsearch-5.6.11.jar:5.6.11] org.springframework पर। data.elasticsearch.core.ElasticsearchTemplate.index(ElasticsearchTemplate.java:571) ~[spring-data-elasticsearch-3.0.10.RELEASE.jar:3.0.10.RELEASE] org.springframework.data.elasticsearch.repository.support पर .AbstractElasticsearchRepository.save(AbstractElasticsearchRepository.java:156) ~[spring-data-elasticsearch-3.0.10.RELEASE.jar:3.0.10.RELEASE] at sun.reflect.NativeMethodAccessorImpl.invoke0(मूल विधि) ~[ना:१.८] .0_151] पर sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[na:1.8.0_151] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[na:1.8.0_151] java.lang.reflect पर। Method.invoke (अज्ञात स्रोत) ~ [na: 1.8.0_151]

लोचदार खोज को निष्क्रिय करने के लिए कोड -

@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());
    }

इलास्टिक्स खोज: जेस्ट: प्रॉक्सी: होस्ट: २७.१०१.१२.९९ पोर्ट: ९३००

मैंने बहुत खोज की थी लेकिन मेरे मामले में कुछ भी मददगार नहीं था। तो कृपया जांचें और मदद करें।

0
nitin tyagi 7 मई 2019, 15:33

1 उत्तर

सबसे बढ़िया उत्तर

आपके एप्लिकेशन में इलास्टिक्स खोज क्लाइंट ट्रांसपोर्ट प्रोटोकॉल का उपयोग करके क्लस्टर से जुड़ रहा है। इस दृष्टिकोण को बहिष्कृत कर दिया गया है और हाल के रिलीज में पहले ही हटा दिया गया है। यह कहा गया है कि ट्रांसपोर्ट प्रोटोकॉल HTTP नहीं है और आपका जेस्ट प्रॉक्सी शायद डेटा भेजने का विश्लेषण/नकली करने में विफल रहता है। यही कारण है कि लोकलहोस्ट काम करता है लेकिन जेस्ट प्रॉक्सी विफल हो जाता है।

अपने एप्लिकेशन को इलास्टिक्स खोज के भविष्य के रिलीज के साथ संगत करने के लिए आपको स्प्रिंग ऐप के लिए किसी भी कार्यक्षमता को खोए बिना उच्च स्तरीय आरईएसटी क्लाइंट का उपयोग करने पर विचार करना चाहिए। और एक त्वरित जीत के रूप में आप फिर से जेस्ट का उपयोग करने में सक्षम होंगे क्योंकि REST क्लाइंट इलास्टिक्स खोज के साथ संचार करने के लिए HTTP का उपयोग कर रहा है।

क्लाइंट माइग्रेशन के बारे में विवरण के लिए कृपया इस पर एक नज़र डालें (मैंने स्टैकट्रेस के आधार पर इलास्टिक्स खोज संस्करण मान लिया है, कृपया इसे डबल चेक करें) https://www.elastic.co/guide/en/elasticsearch/client/java-rest/5.6/ java-rest-high-level-migration.html

0
ibexit 9 मई 2019, 22:33