0

私はカフカにかなり慣れていません。私は次のアーキテクチャを持っています:

1) 2 servers runing application logics and database, can I write kafka producer on these servers wrapped with docker container ?

2) 1 server reserved for kafka broker and zookeeper

3) 1 sever reserved for kafka comsumer

私は混乱しています

1) whether I can run kafka producer, broker and consumer on separate machines ? 

2) How can they communicate ? 

3)Then do I have to install kafka tarball everywhere producer/consumer/broker are running ?
4

1 に答える 1

1
  1. はい、プロデューサー、ブローカー、およびコンシューマーを別々のマシンで実行できます。
  2. プロデューサーはブローカーとのみ通信し、コンシューマーはブローカーとのみ通信します。つまり、ブローカーはプロデューサーとコンシューマーの間の仲介者です (そのため、「ブローカー」という名前が付けられています)。プロデューサー、コンシューマー、およびブローカー間の通信は、通常、Kafka Java または Scala API を介して行われます。ただし、C/C++ ( librdkafka ) や HTTP/REST API ( Confluent kafka-rest 、 docsを参照)など、他の言語のネイティブ クライアントもあります。
  3. Kafka tarball がブローカーにインストールされている必要があります。プロデューサーやコンシューマーにも Kafka tarball が必要かどうかは、Kafka のコンソール コンシューマーなど、含まれているプロデューサー/コンシューマー アプリケーションを使用するかどうかによって異なります。私の経験によると、大多数のユーザーは、Kafka の Java/Scala API を使用して独自のプロデューサーおよび/またはコンシューマー アプリケーションを作成し、カスタム アプリケーションを目的のマシンにデプロイします。この後者のシナリオでは、これらのマシン (つまり、プロデューサー/コンシューマー アプリケーションを実行するマシン) にも Kafka tarball をインストールする必要はありません。
于 2015-11-02T22:05:59.140 に答える