最近项目中有整合了ES 跟Redis,在写测试用例的时候会报如上错误
Caused by: java.lang.IllegalStateException: availableProcessors is already set to [8], rejecting [8]
但是用IDEA启动整个项目不会有这个问题
搜索Netty4Utils.java 定位setAvailableProcessors方法,有提示
设置 es.set.netty.runtime.available.processors 为false 加在springboot main方法中 或者使用-D配置
启动类中添加如下配置
经过一顿DEBUG, ES跟Redis后面都会使用Netty来进行网络通信
ElasticsearchAutoConfiguration类elasticsearchClient会在IDEA环境先初始化Bean,如果是这样不会产生问题
LettuceConnectionConfiguration类redisConnectionFactory在测试环境的时候会先初始化,导致了availableProcessors重复赋值