最近项目中有整合了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配置
那为什么测试环境会有这个问题,IDEA跑就没事?经过一顿DEBUG, ES跟Redis后面都会使用Netty来进行网络通信
ElasticsearchAutoConfiguration类elasticsearchClient会在IDEA环境先初始化Bean,如果是这样不会产生问题
LettuceConnectionConfiguration类redisConnectionFactory在测试环境的时候会先初始化,导致了availableProcessors重复赋值
为什么会有这种情况,希望有知道的能留言告知一下。