web-dev-qa-db-ja.com

Kafka Mavenの依存関係

以下の2つの依存関係の違いは何ですか?コンシューマーアプリまたはプロデューサーアプリを作成するには、本当に最初のアプリが必要ですか?

<dependencies>
    <dependency>
        <groupId>org.Apache.kafka</groupId>
        <artifactId>kafka_2.9.2</artifactId>
        <version>0.8.2.1</version>
    </dependency>
    <dependency>
        <groupId>org.Apache.kafka</groupId>
        <artifactId>kafka-clients</artifactId>
        <version>0.8.2.1</version>
    </dependency>
</dependencies>

私のプロデューサーは最初のものだけで問題なく動作しますが、コンシューマーは2番目のものを必要としています。

「kafka-clients」アーティファクトは、プロデューサーとコンシューマーの両方で機能すると思っていました。しかし、「kafka.consumer.Consumer」は他の依存関係から来ているように見えます。なぜ違いがあるのですか?

また、最初のアーティファクトがkafka_2.9.2という名前になっているのはなぜですか?つまり、名前にバージョン識別子が含まれているのはなぜですか?

8
nikel

最新のプロデューサーおよびコンシューマーAPIを使用する場合、正しいMaven座標は次のとおりです。

<dependency>
    <groupId>org.Apache.kafka</groupId>
    <artifactId>kafka-clients</artifactId>
    <version>0.9.0.0</version>
</dependency>

詳細については、 APIドキュメント を参照してください。

8
Martin