Spring4 整合ElasticSearch6.x:availableProcessors is already set to [4], rejecting [4]

Spring4.x 整合ElasticSearch6.x 提示如下错误信息:

java.lang.IllegalStateException: availableProcessors is already set to [4], rejecting [4]

解决方式就是在项目初始化钱设置一下一个属性。在初始化之前加上

System.setProperty(“es.set.netty.runtime.available.processors”, “false”);

Spring4.x 集成ElasticSearch6.x 配置对象:

import java.net.InetAddress;
import java.net.UnknownHostException;

import javax.annotation.PostConstruct;

import org.elasticsearch.client.transport.TransportClient;
import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.common.transport.TransportAddress;
import org.elasticsearch.transport.client.PreBuiltTransportClient;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import com.zzg.elasticsearch.util.ElasticSearchUtil;
/**
 * elasticsearch 检索配置对象
 * @author zzg
 *
 */
@Configuration
public class ElasticsearchConfig {
	// 日志记录
	public static final Logger logger = LoggerFactory.getLogger(ElasticsearchConfig.class);
	
	@PostConstruct
	public void init() {
        System.setProperty("es.set.netty.runtime.available.processors", "false");
    }
	
	@Bean
	public TransportClient getTransportClient(){
		TransportClient transportClient = null;
		 try {
	            Settings settings = Settings.builder()
	                    .put("cluster.name", "my-application").build();

	            transportClient = new PreBuiltTransportClient(settings)
	                    .addTransportAddress(new TransportAddress(InetAddress.getByName("192.168.1.73"), 9300));
	        } catch (UnknownHostException e) {
	           logger.error(e.getMessage());
	        }
	    return transportClient;
	}
	
	@Bean
	public ElasticSearchUtil getElasticSearchUtil(){
		return new ElasticSearchUtil(getTransportClient());
	}

}

或者在SpringBoot 项目程序启动入口添加:

@SpringBootApplication
public class Application {

    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);
    }
}

 

你可能感兴趣的:(elasticsearch,学习笔记)