關於elasticsearch生成索引時報transport client is closed,的解決方案。
首先,代碼開始寫的時候並沒有報這個錯,運行一段時間後,就報這個錯了。所以問題很難定位,因爲如果是代碼本身就有錯誤,開始的時候就應該出現問題。
開始,提出兩點問題原因:
1)服務器的配置
2)索引的分詞器和解析器是否有問題。
後來經過多方 面的排查,排除了上面的原因,後來,一步一步的調試,打斷點,最後發現了原因,先說下我這邊的邏輯實現。
因爲我這邊的業務分爲幾類,每一類的數據都要做索引,所以我這邊用到了線程池,所以問題就出現在這。主線程執行完後,dubbo容器就關閉了,這導致我們的elasticsearch的client也關閉了,所以就沒辦法連接,按理說不應該關閉的,最後用
CountDownLatch解決了這個問題。
具體爲什麼當前方法執行完畢,elasticsearch 就執行的destory(),暫時未查出原因。