仕事でKafkaを使うことになったので、自分のパソコンにもKafkaの環境を入れてみようと思いました。
ひとまずはKafkaでCLIによる送信・受信ができるまでを目標に行います。
インストール
Kafka自体は圧縮ファイルで一式ダウンロードして試すこともできるが、Dockerを使うという前提条件があった。
そのため、Dockerを使って環境構築をする。
Windowsの場合は下記のインストールが必要になる。
- WSL2
- Docker Desktop
WSL2
PowerShellを管理者として実行し、以下のコマンドを行う。
wsl --install
レスポンスにある通り、これをインストールしたら再起動をする必要がある。
Docker DeskTop
下記からインストールを行う。
https://docs.docker.com/desktop/install/windows-install/
基本的にデフォルトの設定から変更する必要なく、そのまま進んでいけばよい。
再起動後
再起動後Docker Desktopが立ち上がる。
正常に起動できれば以下のような画面になる。
Docker Imageを利用してKafkaの環境を作成する。
ymlファイルを利用して、docker-composeコマンドを使い環境を作成する。
Docker、Docker composeがインストールされていることを確認
それぞれのバージョンを確認して、レスポンスが返ってくることを確認すればよい。
ymlファイル
version: "3"
services:
kafka:
image: confluentinc/cp-kafka
environment:
KAFKA_ZOOKEEPER_CONNECT: zookeeper:32181
KAFKA_LISTENERS: EXTERNAL_SAME_HOST://:29092,INTERNAL://:9092
KAFKA_ADVERTISED_LISTENERS: INTERNAL://kafka:9092,EXTERNAL_SAME_HOST://localhost:29092
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: INTERNAL:PLAINTEXT,EXTERNAL_SAME_HOST:PLAINTEXT
KAFKA_INTER_BROKER_LISTENER_NAME: INTERNAL
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
ports:
- 29092:29092
depends_on:
- zookeeper
zookeeper:
image: confluentinc/cp-zookeeper
environment:
ZOOKEEPER_CLIENT_PORT: 32181
起動コマンド
docker-compose -p test -f "ymlファイルのパス" -d
コンテナが作れたら、kafkaのコンテナに入り一応下記のコマンドを執行してkafkaのCLIが実行できることを確認しよう
kafka-topics --version
トピックを作って送受信できることを確認する
トピックを作成する
sh-4.4$ kafka-topics --bootstrap-server localhost:9092 --create --replication-factor 1 --partitions 1 --topic sample1
Created topic sample1.
トピックにメッセージを送信させる
sh-4.4$ kafka-console-producer --bootstrap-server=localhost:9092 --topic sample1
>testmessage
>
>;
>^C
トピックにメッセージが送られたかを確認する
sh-4.4$ kafka-consoconsumer --bootstrap-server localhost:9092 -topic sample1 --from-beginning
testmessage
;
これでKafkaを利用できる環境は整った。
次はdebeziumとKafkaを連携できるようにしたいと思う。