記錄一下使用 SpringBoot 集成及本地遠程連接Elasticsearch 服務的過程及一些出現的問題。
一 Elasticsearch
安裝好Elasticsearch ,中文分詞器IKAnalyze,以及Kibana。
Kibana 是一個針對Elasticsearch的開源分析及可視化平臺,用來搜索、查看交互存儲在Elasticsearch索引中的數據。使用Kibana,可以通過各種圖表進行高級數據分析及展示。
springboot 配置Elasticsearch
spring:
data:
elasticsearch:
repositories:
enabled: true
cluster-nodes: ip地址:9300 # es的連接地址及端口號
cluster-name: elasticsearch # es集羣的名稱
這樣配置若是服務都在本地自然沒啥問題,若是需要遠程連接(服務器)。此處以阿里雲服務器CES爲例子:
本地啓動自然如下:
java.net.ConnectException: Timeout connecting to [localhost/127.0.0.1:9200]
at org.elasticsearch.client.RestClient$SyncResponseListener.get(RestClient.java:943)
at org.elasticsearch.client.RestClient.performRequest(RestClient.java:227)
at org.springframework.boot.actuate.elasticsearch.ElasticsearchRestHealthIndicator.doHealthCheck(ElasticsearchRestHealthIndicator.java:61)
at org.springframework.boot.actuate.health.AbstractHealthIndicator.health(AbstractHealthIndicator.java:84)
at org.springframework.boot.actuate.health.CompositeHealthIndicator.health(CompositeHealthIndicator.java:98)
at org.springframework.boot.actuate.health.HealthEndpoint.health(HealthEndpoint.java:50)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
哈 >> Timeout connecting to [localhost/127.0.0.1:9200] 王德發??配置了服務器Ip哪來的 localhost,首次猜想是默認配置,
根據報錯找一下源碼纔是王道:
讓我看看你葫蘆買的啥藥:
買的localhost: 本地若是需要連接的話,加上個配置修改一下連接地址就好:
在.yml中,與data同級。
spring:
elasticsearch: #springboot 默認配置 localhost:9200
rest:
uris: ["ip地址:9200"]
data:
elasticsearch:
repositories:
enabled: true
cluster-nodes: ip地址:9300 # es的連接地址及端口號
cluster-name: elasticsearch # es集羣的名稱
問題ko.