2015-08-09 30 views
1

我正在使用Java傳輸客戶端連接到Elasticsearch羣集。羣集和客戶端都在版本1.3.2。我間歇性地得到以下NoNodeAvailableException。Elasticsearch 1.3.2間歇性地給出NoNodeException

NoNodeAvailableException:所配置的節點中沒有一個是可利用的:... {數據=假,主控=假}])

這是我怎樣經由傳輸客戶端連接。我故意增加Ping Timeout時間間隔來避免這個問題,但沒有多少運氣。任何想法還有什麼可以做,以防止這種異常?

Settings settings = ImmutableSettings.settingsBuilder() 
        .put("cluster.name", cluster) 
        .put("client.transport.ping_timeout", "20s") 
        .build(); 
this.client = 
     new TransportClient(settings).addTransportAddress(new InetSocketTransportAddress(host, port)); 

回答

2

有2個改變

  1. 網絡片狀 - 該網絡將是片狀並且沒有允許 間歇連接。
  2. GC - 當垃圾回收被觸發時,會有一段時間「停止世界」的時間。在這個範圍內,java進程會凍結,並且節點會給出相同的「無節點異常」。觀察節點的GC 活動,看看是否是原因。
  3. 客戶端和服務器版本Elasticsearch - 看看他們兩人都是 相同