2017-03-07 4 views
2

私は、開発者&統合テスト環境でApache Kafkaを設定して実行する方法に関するアドバイスと指針を探しています。開発者/統合テスト環境向けにApache Kafkaを設定する

開発者のマシンごとにパッケージ全体を手動でダウンロードしてセットアップする必要はなく、統合テストのためにノードを自動的に起動する簡単な方法を見つけることができます。

dev/integrationテスト用に埋め込まれたKafkaがありますか(本格的なRDBMSを避けたいJava開発者にとってはH2並列を考えてください)?

バグ対策の解決策に頼らなければなりませんか?ちなみに、私は次の興味深いGistを見つけました:https://gist.github.com/svanellewee/8d978db827a860186569しかし、それはバガン+ VirtualBoxを設定する必要があります...

答えて

1

DEV /統合テストの目的のために埋め込まれたカフカのいくつかの並べ替え

はありカフカは実際にあなたが埋め込まれたカフカクラスタを実行することができます試験設備を含んでいます。

アップデート2017年3月13日:あなたが経由して、ビルドに関連するMavenの成果物を追加することができます。

<dependency> 
    <groupId>org.apache.kafka</groupId> 
    <artifactId>kafka-streams</artifactId> 
    <!-- Replace with desired Kafka version. --> 
    <version>0.10.2.0</version> 
    <classifier>test</classifier> 
    <scope>test</scope> 
</dependency> 

それは、2017年3月の時点で、カフカプロジェクトがまだ定義されていませんが注意してください上記の試験施設の "契約"。たとえば、将来のバージョンのテスト機能が古いバージョンと下位互換性を持つことは保証されていません。

次のポインタは筆記テストのための参考になります。

例を含まれており、開発者のマシンのそれぞれに全体のパッケージを設定し、また、統合テストのためにノードを自動的に起動する簡単な方法もあります。

これは、maven、gradle、またはsbtなどのツールを使用して既存の開発/テストプロセスとよく似ているため、ニーズが満たされている場合に最も簡単です。

: - など意図的にあなたのアプリケーションには、例えば、部分的な停止を存続することを検証するカフカブローカーの途中でダウン取るように - あなたは、より高度なテストを実行する必要がある場合に

しかし、あなたはを見てみたいことがあります

1

私はKafkaUnitがここでH2に最も近いものだと思います。ここで見つけることができます(https://github.com/chbatey/kafka-unit)。 それともキュレーターTestingserverに似たすべてのJVMにおける単位/統合テストのための

<dependency> <groupId>info.batey.kafka</groupId> <artifactId>kafka-unit</artifactId> <version>0.6</version> </dependency>

作品を経由して使用します。

+1

だけalternativに投げますe(しかし、私はKafkaUnitを使うのがより快適だと思うが、SchemaRegistryコードには[classes](https://github.com/confluentinc/schema-registry/blob/master/core/src/test)が含まれている。 /java/io/confluent/kafka/schemaregistry/ClusterTestHarness.java)を使用すると、埋め込まれたKafkaインスタンスをスピンアップできます。 「問題」は、テストソースに存在し、コンフルエントにはテスト用のjarファイルを公開しないため、自分でビルドするか、手動で関連ファイルをプロジェクトに手動でインポートする必要があります。 –

+0

テストに関するこのアドバイスをお寄せいただきありがとうございます。今では、ローカルの開発者ワークステーションの設定を簡素化すること、つまり、開発者のワークステーションごとにKafkaを手動で設定することを避けるという考えはありますか? dev/localの設定を考えてください... – balteo

+1

@balteo私は自分自身でしか話すことができませんが、私が単純に統合テストで使用するのは、Kafka + Zkを起動し、両方を殺す関数をトラップするbashスクリプトです。 wget kafka(〜/ .kafkaが好きで、そのフォルダがない場合にのみダウンロードを実行するようにしてください) start zookeeper start kafka –

関連する問題