那里。
當我的 java 應用程式在我的本地計算機上運行并使用 elasticsearch docker 時,我的 java 應用程式可以連接到 elasticsearche,但是我的 java 應用程式和 elasticsearch 運行到同一個 docker 網路并且當我的 java 應用程式嘗試連接到 elasticsearch 然后啟動錯誤“連接拒絕”,你能幫幫我嗎?
我制作了一個小型 Java 應用程式來解釋我的問題。 https://github.com/semihshn/elastic-search-example
uj5u.com熱心網友回復:
編輯:我們與帖子的創建者通了電話,發現問題出在 elasticsearch 的組態檔上。
應用程式使用默認的 RestHighLevelClient 而不是我們創建的物件。我們創建的物件不是 bean。修復此問題后,應用程式按預期作業。
配置代碼從此消失;
@Data
@Component
@Slf4j
public class ElasticClient {
private final RestHighLevelClient elasticSearchClient;
public ElasticClient(@Value("${elastic.search.domain}") String elasticSearchDomain) {
log.info(String.format("elastichsearch host: %s", elasticSearchDomain));
this.elasticSearchClient = new RestHighLevelClient(
RestClient.builder(
new HttpHost(elasticSearchDomain, 9200, "http"),
new HttpHost(elasticSearchDomain, 9201, "http")
));
}
}
對此;
@Getter
@Setter
@Configuration
@ConfigurationProperties("elastic.search")
public class ElasticClient {
private String domain;
@Bean
public RestHighLevelClient restHighLevelClient() {
return new RestHighLevelClient(
RestClient.builder(
new HttpHost(domain, 9200, "http")
));
}
}
還要特別感謝@David Maze提供有關主機名使用的資訊。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/519772.html
標籤:爪哇码头工人弹性搜索
上一篇:使用DDEV創建Drupal專案時出錯:“現有的settings.php檔案包括settings.ddev.php確保檔案夾的寫入權限”
