快速尝试Apache Kafka

我开始学习Apache Kafka.

最近,我在研究Apache Kafka。由于需要经常接触,我在本地配置了一个方便进行简单试验的环境。虽然大家可能认为作为JVM的应用程序很难运行,但使用Docker可以一条命令轻松启动。接下来,我将实际搭建一个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的生成和消费。可以使用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进行测试,一定要试一试。