dshimizu/blog/alpha

とりとめのないITブログ

macOS で Kafka を動かしてみた

はじめに

Kafka を手軽に試せないかな、と思ったら macOS だと Homebrew でインストールできるようだったので試してみた。

インストール&起動

以下のコマンドでインストールできる。 依存関係で JDK 18 や、openssl関連、Zookeeper がインストールされる。

% brew install kafka

Zookeeper, Kafka を起動する。

% brew services start zookeeper
==> Successfully started `zookeeper` (label: homebrew.mxcl.zookeeper)
% brew services start kafka
==> Successfully started `kafka` (label: homebrew.mxcl.kafka)

以下のコマンドで起動しているか確認できる。

% brew services list
Name       Status     User           File
kafka      started    daisukeshimizu ~/Library/LaunchAgents/homebrew.mxcl.kafka.plist
zookeeper  started    daisukeshimizu ~/Library/LaunchAgents/homebrew.mxcl.zookeeper.plist

Kakfa の操作

チュートリアルの内容をさらっとやってみる。

kafka.apache.org

トピック作成

トピックは、Kafka のブローカーにメッセージ(データ)を保存するための単位、メッセージの種類ごとに分けて保存するためのカテゴリー・分類として指定するもの、というイメージ。

kafka-topics コマンドの --create オプションを使ってトピックを作成する。 v2.6 とかだと --zookeeper オプションが利用可能だったけど、--zookeeper オプションは無くなっていたようで指定できなかった。もともと非推奨とされていたけど *1、どのバージョンで使えなくなっていたのかはわかってない。

% kafka-topics --create --topic quickstart-events --bootstrap-server localhost:9092
Created topic quickstart-events.

作成したトピックの詳細を表示してみる。 --replication-factor--partitions は指定していないので 0 となっている。

 % kafka-topics --describe --topic quickstart-events --bootstrap-server localhost:9092
Topic: quickstart-events    TopicId: vstR8s5VTDSYYwGSzEfeLQ PartitionCount: 1   ReplicationFactor: 1    Configs: segment.bytes=1073741824
    Topic: quickstart-events    Partition: 0    Leader: 0   Replicas: 0 Isr: 0

トピックへのデータ登録

kafka-console-producer コマンドを使って、先ほど作成したトピックへデータを登録してみる。

% kafka-console-producer --topic quickstart-events --bootstrap-server localhost:9092

コンソール上 > で待ち状態となるので、以下のように入力し、Ctrl + C でキャンセルする。

>This is my first event
>This is my second event

トピックのデータ取得

kafka-console-consumer コマンドを使って、先ほどトピックへ登録したデータを取得してみる。--from-beginning オプションを使えば、残っているうちの一番最初のデータから取得できる。

% kafka-console-consumer --topic quickstart-events --from-beginning --bootstrap-server localhost:9092

以下のような出力が得られる。

This is my first event
This is my second event

まとめ

macOS に Kafka をインストールして、すごく基本的な操作をやってみた。