1

プロジェクト A で Zookeeper Java クライアントを使用する必要があります。

A には、Zookeeper 3.3.5 Java クライアントを使用して「エンタープライズ サービス ディレクトリ」Zookeeper クラスタに接続するライブラリである依存関係 B があります。このクラスターは私の管理下にありません。私のコードには使用できません。A と B は同じクラスローダーで実行され、A のコードは 3.3.5 クライアントを使用する必要があります。

別の JVM で実行される別の依存関係 C (Solr 4.2) があります。C は Zookeeper 3.4.5 Java クライアントを使用します。

問題は、A が 3.3.5 クライアントを使用し、C が 3.4.5 クライアントを使用していることですが、2 つの異なる Zookeeper クラスターを構築したくありません。同じ zk クラスターに接続できますか? 可能であれば、どのバージョンのサーバーを使用すればよいですか?

4

1 に答える 1

2

古いクライアントと新しいサーバーは、非常に一般的な使用例です。アップグレード時 - サーバーは次のバージョンに移行しますが、クライアントは一定期間古いバージョンにとどまり、ゆっくりと移行します (通常、サーバーよりも多くのクライアントがあります)。したがって、これは多くのことを練習します。

特に、3.3 クライアント/サーバーは、ZK コミュニティによって 3.4 クライアント/サーバーで動作することが検証されているため、問題なく動作するはずです。

心配する必要があることの 1 つは、3.3 にはない 3.4 クライアントの新機能を使用していて、サーバーが 3.3 である場合です。3.4 で追加された multi などを利用すると、問題が発生します。マルチは 3.3 サーバーではサポートされておらず、失敗します。両方のクラスターが 3.4 サーバー、または 3.3 サーバー クラスターであり、クライアントが 3.3 または 3.4 であり、3.3 以降に追加された機能を使用していない場合は、問題ありません。

于 2013-03-28T04:45:57.227 に答える