1. Qiita
  2. Items
  3. Kafka

高速にApache Kafkaを試す

  • 48
    Like
  • 0
    Comment
More than 1 year has passed since last update.

Apache kafkaに入門した

最近Apache kafkaを探求している.触ることも多くなったのでローカルで簡単に試せる環境をちゃんと整えた.JVMだし動かすの大変そうと思われがちだがDockerを使えばコマンド1発で起動できる.以下では実際にBrokerを立ててsyslogの配信/購読をやってみる.

バージョンは 0.8.2 を対象に書いている.

まずKafka(Broker)を動かす.Dockerイメージtcnksm/single-kafkaを準備した.以下のように起動する.オプションはすべてDockerホスト外からBrokerにアクセスするための設定.

 $ docker run --rm -it \
     --name kafka \
     --publish 9092:9092 \
     --env ADVERTISED_HOST=${DOCKER_HOST} \
     --env ADVERTISED_PORT=9092 \
     tcnksm/single-kafka

実際にsyslogの配信(Produce)と購読(Consume)をしてみる.logstashやfluentdを使っても良いがkafkacatを使うのがお手軽.バイナリで配布されているのでOSXだとHomeBrewでインストールできる.

$ brew install kafkacat

まず配信は以下.パイプでtailの出力を受け取る.トピック名はsyslogとしKafka(Broker)はDocker上で動いているので${DOCKER_HOST}:9092を指定する.

$ tail -f /var/log/system.log | kafkacat -P -t syslog -b ${DOCKER_HOST}:9092

次に購読は以下のようにする.トピック名syslogを指定するだけ.

$ kafkacat -C -t syslog -b ${DOCKER_HOST}:9092

まとめ

サードパーティのConsumer/Producerを試す,もしくは自分で書いたConsumerやProducerのテストにも使えるのでぜひ使ってください.