我在ec2上的一台机器上安装了一个kafka zookeeper和3个代理,端口为9092..9094,我正在尝试使用另一台机器上的主题内容。端口2181(zk)、9092、9093和9094(服务器)对用户计算机开放。我甚至可以做一个 bin/kafka-topics.sh --describe --zookeeper 172.X.X.X:2181 --topic remotetopic
这让我
topic:remotetopic partitioncount:1个副本ionfactor:3 configs:topic:remotetopic分区:0前导:2副本:2,0,1 isr:2,0,1 blockquote
但是当我这么做的时候 bin/kafka-console-consumer.sh --zookeeper 172.X.X.X:2181 --from-beginning --topic remotetopic
我明白了
从代理[id:0]获取主题[set(remotetopic)]的相关id为0的主题元数据时发出警告,host:localhost,port:9092]失败(kafka.client.clientutils$)java.nio.channels.closedchannelexception
为什么消费者试图从localhost读取数据?是否有任何选项、命令行或默认文件可以读取这些信息;我能改变它吗?
任何帮助都将不胜感激!
4条答案
按热度按时间ej83mcc01#
我已经设置了kafka和zookeeper在一个类似的(甚至更复杂的)安排和kafka-console-consumer.sh没有工作的广告。
这很可能是一个配置错误的kafka示例(它在服务器配置中指定了zookeeper节点)。
检查Kafka配置。默认情况下,如果未指定zookeeper示例,则假定为单个localhost示例。否则“server.1”。。。必须使用2 etc约定来定义zookeeper示例(建议/要求至少三个示例以获得适当的仲裁)。
ippsafx72#
我也遇到了同样的问题,我正在使用kafka 0.11,我在我的ubuntuvm中启动producer和broker,在windows10中启动consumer。
我变了(而且没有注解)
至
例子:
从服务器/代理端的config/server.properties文件(即,在我的例子中,它是ubuntuvm)
fzwojiic3#
我也有同样的问题。通过按照kafka配置(config/server.properties)中的注解设置属性“adverted.host.name”并重新启动kafka服务器,修复了此问题。
9bfwbjaz4#
我已经创建了一个python脚本,它允许您通过ssh隧道访问kafka/zookeeper,以使用和生成来自本地机器的消息。
兼容linux和mac
试试看:https://github.com/simple-machines/kafka-tunnel