クイックスタート チュートリアルから Apache Kafka を学習しています: http://kafka.apache.org/documentation.html#quickstart。これまで、次のようにセットアップを行ってきました。Web サーバーがポート 8888 で実行されているプロデューサー ノード。 別のノード上の Kafka サーバー (ブローカー)、コンシューマーおよび Zookeeper インスタンス。また、デフォルトのコンソール/ファイル対応のプロデューサーとコンシューマーを 3 つのパーティションでテストしました。セットアップは完璧で、送信したメッセージを作成した順序で (各パーティションで) 見ることができます。
ここで、Web サーバーから生成されたログを Kafka Broker に送信したいと考えています。これらのメッセージは、後でコンシューマーによって処理されます。現在、syslog-ng を使用してサーバー ログをテキスト ファイルにキャプチャしています。ログ集計に kafka を使用するためにプロデューサーを実装する方法について、3 つの大まかなアイデアを思いつきました。
プロデューサーの実装
第 1 種:
syslog-ng の tcp ポートをリッスンします。各メッセージを取得し、kafka サーバーに送信します。ここには 2 つの中間プロセスがあります: Producer と syslog-ng
2 番目の種類: syslog-ng を Producer として使用します。ファイルに書き込む代わりに、メッセージを Kafka サーバーに送信する方法を見つける必要があります。Syslog-ng、プロデューサーは中間プロセスです。
3 番目の種類: Web サーバー自体をプロデューサーとして構成します。
私の考えは正しいですか。最後のケースでは、中間プロセスはありません。しかし、その実装がサーバーのパフォーマンスに影響を与えるとは思えません。Apache Kafka を使用する最善の方法 (上記の 3 つが適切でない場合) を教えてくれ、サーバーの適切な構成を案内してくれますか?..
PS: Web サーバーに node.js を使用しています
ありがとう、
サラス