私は通常scalaを使用します2.10.x
。私が制御できないコンポーネントのいくつかの制限のため、kafka
クライアントバージョン0.7.2を使用する必要があります。ただし、このバージョンはkakfa
scala ver 2.9.2でのみコンパイルでき、scala2.10では動作しません。注:新しいバージョンのkafkaは使用できません。機能していません。実際のkafka
バージョンを制御できないため、このクライアントバージョンを使用する必要があります。だから私はkafkaクライアント0.7.2を使用する必要があります
だから私は複数のオプションがありました:
0.7.2
kafkaクライアントのソースをダウンロードし、scalaでコンパイルすると、2.10
残念ながらソースの変更が多すぎて実行できません。jarajar
して更新scala-library.jar
し、のようなパッケージにプレフィックスを付けscala.* -> scala.29.*
ます。次に、kafkaクライアント0.7.2を更新して、クラスをインポートします。scala.29.*
これを試してみましたが、ここでも問題が発生しました。.war
Tomcatが異なるクラスローダと異なる戦争をロードするように、私は私の元からではなく、私のカフカ要求を送信することができ、私のTomcatのWebサーバにwar
私からにwar1
するwar2
とwar2
、単純なWebになりますシンプルなアプリを保持しkafka client 0.7.2
ます。私の質問:オプション3は賢明に聞こえますか?複数のクラスローダーの問題を解決するために複数あるという理由だけでGET
リクエストを送信した場合、そのオーバーヘッドについていくつかの考えがあります。localhost
wars
最終的にkafkaクライアント0.7.2をscala2.10でコンパイルしましたが、難しくはありませんでした。すべてが機能します。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加