快速尝试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进行测试,一定要试一试。