我目前正在尝试将我的Kafka应用程序移动到Docker群集。我在CentOS 7上。我的docker撰写文件如下:
version: '2'
services:
zookeeper:
image: wurstmeister/zookeeper
ports:
- "21700:2181"
kafka:
image: wurstmeister/kafka
ports:
- "21600:9092"
environment:
KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9092
KAFKA_ADVERTISED_HOST_NAME: kafka
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
KAFKA_CREATE_TOPICS: "syslog-input:1:1,rt1:1:1,output:1:1"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
syslog_server_tcp:
build: .
ports:
- "21500:21500"
command: SyslogServerTCP -p 21500 -b kafka:9092 -t testowy
generic:
build: .
command: KafkaEnrichmentApp a cos rt1 syslog-input output kafka:9092
SyslogServerTCP服务是一个小型应用程序,它侦听传入的TCP消息并将其传递到Kafka群集上,该主题由-t定义的主题。所以在这种情况下 - testowy。但是这种设置存在两个问题:
当消息通过syslog_server_tcp服务进入群集时,它似乎已传递到群集中 - 创建了新主题(已启用自动主题创建),但消息未传递到主题中。可能是什么原因?我可以看到新创建的主题,但它是空的。
有时整个群集会随机停止响应。我可以进入zookeeper shell,查看创建的代理,但是没有来自群集的新日志消息,并且不会处理我发送给服务器服务的消息。我的配置是否正确?