このエントリーをはてなブックマークに追加

kafka メモ

環境構築

windows環境で簡易に試験環境を構築することができます。

前提条件

javaがインストールされていること。

実施手順

  1. 以下のサイトよりダウンロードします。

    https://kafka.apache.org/downloads

    ../../_images/2021-04-14-22-46-22.png

  2. ダウンロードしたファイルを解凍し、配置します。

    「.tgz」は7-Zip等で解凍することができます。

    今回は解凍したファイルを「c:\dev\kafka」に配置しています。

    ../../_images/2021-04-14-23-07-20.png

  3. 以上準備としては完了です。

起動方法

kafkaはzookeeperを起動し、その後kafka本体を起動します。
コマンドプロントより以下の方法にて起動します。コマンドプロンプトの起点ディレクトリはkafkaをインストールしたディレクトリとします。

  1. コマンドプロントにて以下のコマンドを実行しzookeeperを起動します。

    起動するとコンソールは起動したままになります。

    bin\windows\zookeeper-server-start.bat config\zookeeper.properties
    
  2. 次に別のコンソールを開き以下のコマンドを実行します。

    bin\windows\kafka-server-start.bat config\server.properties
    
  3. 以上でkafkaの起動が完了です。

停止方法

以下のいずれも [ctrl]+ [c] を押下することで終了できます。
※ kafkaとzookeeperの順番を逆にすると正しく停止されないため注意してください。

  1. producer および consumer を終了します。
  2. kafkaを終了します。
  3. zookeeperを終了します。

メッセージの確認

  • topicの作成方法

    kafkaで入れ物となるtopicを作成する場合には「kafka-topics.bat」コマンドを実行します。

    コマンド例

    bin\windows\kafka-topics.bat --create --topic {作成topic名}--bootstrap-server {broker-server-url:port}
    

    実行例

    bin\windows\kafka-topics.bat --create --topic quickstart-events --bootstrap-server localhost:9092
    
  • kafkaへメッセージを登録する場合(Producer)

    「kafka-console-producer.bat」を利用します。

    コマンド例

    bin\windows\kafka-console-producer.bat --topic {作成topic名}--bootstrap-server {broker-server-url:port}
    

    実行例

    bin\windows\kafka-console-producer.bat --topic quickstart-events --bootstrap-server localhost:9092
    

    上記のコマンドを実行すると入力待ち状態となるためメッセージを入力していきます。

    > test-message-1
    > test-message-2
    

    入力を中止する場合には [ctrl]+ [c] を押下することで解除できます。

  • kafkaへ登録されたメッセージを確認する場合(Consumer)

    「kafka-console-consumer.bat」を利用します。

    コマンド例

    bin\windows\kafka-console-producer.bat --topic {作成topic名}--bootstrap-server {broker-server-url:port}
    

    実行例

    bin\windows\kafka-console-consumer.bat --topic quickstart-events --from-beginning --bootstrap-server localhost:9092
    

    [--from-beginning]をつけることで先頭からメッセージを読み込みます。

  • topicのgroupidを確認する場合

    記載方法

    ./bin/windows/kafka-consumer-groups.bat --bootstrap-server {kafkaサーバのIP:port} --list
    

    記載例

    ./bin/windows/kafka-consumer-groups.bat --bootstrap-server localhost:9092 --list
    
  • topicのgroupIdでのoffsetを確認する場合

    記載方法

    ./bin/windows/kafka-consumer-groups.bat  --bootstrap-server {kafkaサーバのIP:port} --describe --group {kafka-consumer-group}
    

    記載例

    ./bin/windows/kafka-consumer-groups.bat  --bootstrap-server localhost:9092 --describe --group testConsumerGroupId
    
  • topicのgroupIdでのoffsetを移動する場合

    記載方法

    ./bin/windows/kafka-consumer-groups.bat --bootstrap-server {kafkaサーバのIP:port} --group {kafka-consumer-group} --to-offset {変更先のoffset} --reset-offsets --topic {topic名} --execute
    

    記載例

    offsetの位置を3に変更する場合

    ./bin/windows/kafka-consumer-groups.bat --bootstrap-server localhost:9092 --group testConsumerGroupId --to-offset 3 --reset-offsets --topic quickstart-events --execute
    

参考サイト

  • Apache Kafkaの概要とアーキテクチャ

    https://qiita.com/sigmalist/items/5a26ab519cbdf1e07af3

  • kafka qick start

    https://kafka.apache.org/quickstart