SpringBoot 集成redis和elasticsearch遇到的坑

SpringBoot 集成redis和elasticsearch遇到的坑


起因是因为我在一个已经集成了redis的spring boot项目上引入了spring-data-elasticsearch包,启动项目报如下的错误。

Failed to instantiate [org.elasticsearch.client.transport.TransportClient]: Factory method 'esTransportClientInit' threw exception; nested exception is java.lang.IllegalStateException: availableProcessors is already set to [8], rejecting [8]

解决办法:

@SpringBootApplication
public class ApplicationMain {
    public static void main(String[] args) {
        System.setProperty("es.set.netty.runtime.available.processors","false");
        SpringApplication.run(ApplicationMain.class, args);
    }
}

原因:(摘自其他小伙伴的博客)
程序的其他地方使用了Netty,这里指redis。这影响在实例化传输客户端之前初始化处理器的数量。 实例化传输客户端时,我们尝试初始化处理器的数量。 由于在其他地方使用Netty,因此已经初始化并且Netty会对此进行防范,因此首次实例化会因看到的非法状态异常而失败。

你可能感兴趣的:(SpringBoot,Redis,ElasticSearch)