Docker環境でKafkaに気軽に入門する

Kafkaを扱うことになり、なんとかして手軽に触ってみることはできないかと思っていたら、このDocker imageをおすすめされた。

https://hub.docker.com/r/landoop/fast-data-dev

KafkaのDocker imageはいろいろあるが、これは必要なサーバが自動で立ち上がるうえ、コンソール画面がついており、Kafkaの初心者でも触りやすい。

Docker環境のセットアップ

まずはdocker-compose.ymlを以下のように書く。

version: '3'
services:
  kafka:
    ports:
      - 2181:2181
      - 3030:3030
      - 8081:8081
      - 8082:8082
      - 8083:8083
      - 9092:9092
    image: landoop/fast-data-dev
    volumes:
      - ./data:/data

portsで指定しているのは、KafkaやZookeeperが使うport。また、Kafkaはデータを/dataに保存していくので、ここをホストと共有しておくと、一度dockerコンテナを落としてもデータが失われない。

ファイルを作ったらdocker-compose up -dで起動。ブラウザからlocalhost:3030にアクセスし、コンソールが表示されれば成功。

f:id:Udomomo:20190112115341p:plain

Kafkaを触ってみる

Kafkaが立ち上がったら、基本的には公式サイトのQuickstartに従ってコマンドを打ってみるのが一番わかりやすい。ただしこのチュートリアルはローカル環境にKafkaをダウンロードする想定なので、Step1と2は飛ばしてよい。
また、Step6で扱うserver.propertiesファイルは/opt/landoop/kafka/etc/kafka/にある。さらに、Step7ではKafka Connectプロセスを立ち上げることになっているが、今回のdocker imageでは既に8083番ポートで立ち上がっているので不要だった。とても便利。