elasticsearch5.6.1.統合springbootで遭遇したピット
1474 ワード
Spring boot集積redisとelasticsearchが遭遇したピット
なぜなら、redisを統合したspring bootプロジェクトにspring-data-elasticsearchパッケージを導入し、環境を整えてから次のエラーを報告し始めたからです.
Failed to instantiate [org.elasticsearch.client.transport.TransportClient]: Factory method 'elasticsearchClient' threw exception; nested exception is java.lang.IllegalStateException: availableProcessors is already set to [4], rejecting [4]
解決策:
@SpringBootApplication
public class SpringBootExampleApplication {
public static void main(String[] args) {
System.setProperty("es.set.netty.runtime.available.processors","false");
SpringApplication.run(SpringbootexampleApplication.class, args);
}
}
理由:プログラムの他の場所でNettyが使用されています.ここではredisを指します.これは、クライアントをインスタンス化する前にプロセッサを初期化する数に影響します.転送クライアントをインスタンス化すると、プロセッサの数を初期化しようとします.Nettyは他の場所で使用されているため、初期化されており、Nettyはこれを防ぐため、不正な状態異常が表示されたため、最初のインスタンス化に失敗します.