vm 作り直すのも面倒。docker でなんとかしたい。http://wurstmeister.github.io/kafka-docker/ でやるのが有名のようだ。が実際やってみるとメンドクサイ。 こっちが楽じゃないか。
気軽に試す
kafka と zookeeper 起動
$ curl -sSL https://raw.githubusercontent.com/bitnami/bitnami-docker-kafka/master/docker-compose.yml > docker-compose.yml $ docker-compose up
確認
$ docker-compose ps
Name Command State Ports
-----------------------------------------------------------------------------------------------------------------
bitnami_kafka_1_b4e7444b5ac1 /entrypoint.sh /run.sh Up 0.0.0.0:9092->9092/tcp
bitnami_zookeeper_1_44054781d94b /entrypoint.sh /run.sh Up 0.0.0.0:2181->2181/tcp, 2888/tcp, 3888/tcp,
$ docker network ls
NETWORK ID NAME DRIVER SCOPE
fa44c4fa3457 bitnami_default bridge local
5ee57849102a bridge bridge local
123b1da9fc93 host host local
55a73359e1e6 none null local
トピック確認。いちいちコメントがうるさいwww
$ docker run -it --rm \
--network bitnami_default \
-e KAFKA_CFG_ZOOKEEPER_CONNECT=zookeeper:2181 \
bitnami/kafka:latest kafka-topics.sh --list --zookeeper=zookeeper:2181
11:13:26.34
11:13:26.34 Welcome to the Bitnami kafka container
11:13:26.34 Subscribe to project updates by watching https://github.com/bitnami/bitnami-docker-
11:13:26.34 Submit issues and feature requests at https://github.com/bitnami/bitnami-docker-kaf
11:13:26.35 Send us your feedback at containers@bitnami.com
11:13:26.35
トピック作成
$ docker run -it --rm \
--network bitnami_default \
-e KAFKA_CFG_ZOOKEEPER_CONNECT=zookeeper:2181 \
bitnami/kafka:latest \
kafka-topics.sh --create --topic test --partitions 1 --zookeeper zookeeper:2181 --replication-factor 1
トピック確認
$ docker run -it --rm \
--network bitnami_default \
-e KAFKA_CFG_ZOOKEEPER_CONNECT=zookeeper:2181 \
bitnami/kafka:latest \
kafka-topics.sh --list --zookeeper zookeeper:2181
test
コンソールプロデューサー
$ docker run -it --rm \
--network bitnami_default \
-e KAFKA_CFG_ZOOKEEPER_CONNECT=zookeeper:2181 \
bitnami/kafka:latest \
kafka-console-producer.sh --topic=test --broker-list=kafka:9092
>asdf
>qwer
>zxcv
>tyui
>f
>h
>j
>k
>l
>ggggggg
>^C
コンソールコンシューマー。プロデューサーを起動したままにしておくと、コンシューマにメッセージが渡るのが確認できる。
$ docker run -it --rm \
--network bitnami_default \
-e KAFKA_CFG_ZOOKEEPER_CONNECT=zookeeper:2181 \
bitnami/kafka:latest \
kafka-console-consumer.sh --bootstrap-server=kafka:9092 --topic test --from-beginning
asdf
qwer
zxcv
tyui
f
h
j
k
l
ggggggg
^CProcessed a total of 10 messages
おわり
wurstmeister/kafka-docker はソケットを使ったりして面白い。が ip/port しらべたりする手間があって面倒だ。
bitnami でなくても、kafka zookeeper が入ってる docker-compose.yml はそこら中にあるからテキトーに...信用にできるイメージを使えばいいと思う。 kafka 操作するたびに docker run するのはカッコ悪いかもしれないが、要は kafka-***.sh の行だけ変えればいい。