同じ JVM 内で、2つの Kerberos 認証された Solr クラスターを指す CloudSolrClient のインスタンスを2つ稼働させる

(The bot translated the original post https://lists.apache.org/thread/462md25wm4yhyk63qnj8ksrf580mot5n into Japanese and reposted it under Apache License 2.0. The copyright of posted content is held by the original poster.)
皆さんこんにちは。
私のチームでは、Cloudera がホストする Solr をバージョン 7.4.0 から 8.11.2 へ移行中です。
移行の過渡期として、アプリ内で 2 つの CloudSolrClient インスタンスを持ちたいと考えています。1 つは v7.4.0 クラスターを指し、もう 1 つは 8.11.2 を指す形です。
私たちのアプリは SpringBoot アプリで、SolrJ クライアントを利用しています。
現在、CloudSolrClient を 1 つだけ生成する設定は以下のようになっています:
@Bean
public SolrClient getCloudSolrClient() {
System.setProperty("zookeeper.sasl.client", "false");
SolrHttpClientBuilder solrClientBuilder = new
Krb5HttpClientBuilder().getBuilder();
HttpClientUtil.setHttpClientBuilder(solrClientBuilder);
CloudSolrClient client = new
CloudSolrClient.Builder(asList(properties.getZkHosts().split(",")),
Optional.empty())
.withConnectionTimeout((int)properties.getConnectionTimeout().toMillis())
.withSocketTimeout((int) properties.getTimeout().toMillis())
.build();
return client;
}
Kerberos を用いてクラスターメンバーと認証するクライアントを 2 つ作るには、当然 jaas.conf に 2 つのレルムなどを定義する必要があると考えています。
ただ、SolrJ クライアントのコードを少し調べたところ、JaasConfig が static であるため、マルチスレッド関連の問題(レースコンディションなど)に直面するのではないかと懸念しています。
同じような要件に直面し、受け入れ可能かつ実用的な解決策にたどり着いた方はいらっしゃいますか?
ヒントやアドバイスをいただけると大変ありがたいです!
Chris
トピックへ返信するには、ログインが必要です。