具体问题是java.lang.IllegalStateException: availableProcessors is already set to [8], rejecting [8]
注:项目是springcloud-alibaba,es版本是6.6
springboot整合elasticsearch中使用到了spring-data-elasticsearch,之前自己写demo的时候没有问题,但加到项目中时出现以上问题,归根结底是跟项目本身引入的netty有版本冲突问题
解决方案一
最简单直接且行之有效的方法是在application中添加一行代码
public class XXXApplication {
public static void main(String[] args) {
//初始化启动,解决 java.lang.IllegalArgumentException:availableProcessors is already set to [8], rejecting [8]
System.setProperty("es.set.netty.runtime.available.processors", "false");
SpringApplication.run(XXXApplication .class, args);
}
}
这个方法可行,但是怎么看都不大优雅,于是当时继续找解决方案,既然是System.setProperty
,那么至少还有两种解决方案,第一个是写配置类即@Configuration
的方式,但是几乎全网找遍也没一个可用的配置类。。。也怪自己对框架的认知不深,那么还有一个方案,就是在yml或者prop