SpringBoot 集成redis和elasticsearch遇到的坑

SpringBoot 集成redis和elasticsearch遇到的坑


起因是因爲我在一個已經集成了redis的spring boot項目上引入了spring-data-elasticsearch包,啓動項目報如下的錯誤。

Failed to instantiate [org.elasticsearch.client.transport.TransportClient]: Factory method 'esTransportClientInit' threw exception; nested exception is java.lang.IllegalStateException: availableProcessors is already set to [8], rejecting [8]

解決辦法:

@SpringBootApplication
public class ApplicationMain {
    public static void main(String[] args) {
        System.setProperty("es.set.netty.runtime.available.processors","false");
        SpringApplication.run(ApplicationMain.class, args);
    }
}

原因:(摘自其他小夥伴的博客)
程序的其他地方使用了Netty,這裏指redis。這影響在實例化傳輸客戶端之前初始化處理器的數量。 實例化傳輸客戶端時,我們嘗試初始化處理器的數量。 由於在其他地方使用Netty,因此已經初始化並且Netty會對此進行防範,因此首次實例化會因看到的非法狀態異常而失敗。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章