win10 は docker を通じてローカルで Kafka サービスを提供します

質問

  • プロジェクトの新しい関数は Kafka を使用する必要があります。同様の関数に従ってコードを記述した後、デバッグのために開発環境に送信します (ローカルに Kafka サービスがありません)。ただし、メッセージは監視できません (ログはあります)。メッセージを送信しています)、エラー ログはありません

  • 長い間コードを比較した結果、問題が見つからなかったので、docker を介してローカルの Kafka サービスを提供することにしました

インストール手順

  • docker がローカルにインストールされていること、および docker コマンドがそれを認識できることを確認してください
    ここに画像の説明を挿入

  • PowerShell を開きます (win10 には PowerShell があります。左下隅で直接検索します)。
    ここに画像の説明を挿入

  • Zookeeper (Kafka と一致するサービス) をインストールする

docker pull wurstmeister/動物園飼育員

docker run -d --name Zookeeper -p 2181:2181 wurstmeister/zookeeper

  • Kafka をインストールする

docker pull wurstmeister/kafka

docker run -d --name kafka --publish 9092:9092 --linkzookeeper --env KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181 --env KAFKA_ADVERTISED_HOST_NAME=localhost --env KAFKA_ADVERTISED_PORT=9092 wurstmeister/kafka

  • サービスが開始されているか確認する

ドッカーps

注: kafka docker が起動しない場合 (docker ps で再び消滅したことが判明した場合)、コマンドでログを確認できます。

docker ログ -f kafka

Docker サービスを削除して最初からやり直す

  • その理由は、kafka メッセージが保存されるためです。消費が成功しなかった場合、アプリケーションの起動後に消費が再ロードされます。
  • 消費時に逆シリアル化されますが、生成したメッセージの逆シリアル化が失敗し、再起動するたびにエラーが報告されます。
  • kafka のデータを削除する方法がわからないので、サービスを直接再インストールします。

docker rm -fzookeeper
docker rm -f kafka
docker run -d --namezookeeper -p 2181:2181 wurstmeister/zookeeper
docker run -d --name kafka --publish 9092:9092 --linkzookeeper --env KAFKA_ZOOKEEPER_CONNECT=zookeeper :2181 --env KAFKA_ADVERTISED_HOST_NAME=localhost --env KAFKA_ADVERTISED_PORT=9092 wurstmeister/kafka

データはクリーンです

要約する

  • Kafkaをローカルに提供した後、メッセージがシリアル化可能なインターフェイスを継承せず、逆シリアル化に失敗したため、ローカルでログを確認したところ、最終的に原因がわかりました。
  • メッセージをクリアするには、kafka docker のコマンドを見つける必要があります。rm docker にはまだ時間がかかります。
  • メッセージを表示するための UI ツールである国産ソフトウェア Kafka Eagle があり、時間をかけて再インストールすることもできます。これにより、メッセージのリアルタイムのダイナミクスを確認できます (以前は実行されていませんでした)。

おすすめ

転載: blog.csdn.net/lanxing_huangyao/article/details/126374825