今天使用SpringBoot整合Elasticsearch時候,相關的配置完成後,啓動項目就報錯了。java
nested exception is java.lang.IllegalStateException: availableProcessors is already set to [4], rejecting [4]
我網上查詢了一下,有人是是由於整合了Redis的緣由。可是我把Redis相關的配置去掉後,問題仍是沒有解決,最後有人說是由於netty衝突的問題。
也有人給出瞭解決方式就是在項目初始化錢設置一下一個屬性。在初始化以前加上System.setProperty(「es.set.netty.runtime.available.processors」, 「false」);spring
@Configuration public class ElasticSearchConfig { @PostConstruct void init() { System.setProperty("es.set.netty.runtime.available.processors", "false"); } }
我按照這種方法仍是沒有解決我這邊項目的問題。
最後我直接把System.setProperty(「es.set.netty.runtime.available.processors」, 「false」);
發現這樣能夠解決我這邊的問題。springboot
@SpringBootApplication public class EurekaBussnissServiceUserApplication { public static void main(String[] args) { // System.out.println("==========================================="); /** * Springboot整合Elasticsearch 在項目啓動前設置一下的屬性,防止報錯 * 解決netty衝突後初始化client時還會拋出異常 * java.lang.IllegalStateException: availableProcessors is already set to [4], rejecting [4] */ System.setProperty("es.set.netty.runtime.available.processors", "false"); SpringApplication.run(EurekaBussnissServiceUserApplication.class, args); } }