Amazon ec2 Kafka:如何连接Kafka控制台消费者以获取远程代理主题内容?
我在ec2上的一台机器上安装了一个kafka zookeeper和3个代理,端口为9092..9094,我正在尝试从另一台机器上使用主题内容。端口2181(zk)、9092、9093和9094(服务器)对用户计算机开放。我甚至可以做一个Amazon ec2 Kafka:如何连接Kafka控制台消费者以获取远程代理主题内容?,amazon-ec2,apache-kafka,apache-zookeeper,kafka-consumer-api,kafka-producer-api,Amazon Ec2,Apache Kafka,Apache Zookeeper,Kafka Consumer Api,Kafka Producer Api,我在ec2上的一台机器上安装了一个kafka zookeeper和3个代理,端口为9092..9094,我正在尝试从另一台机器上使用主题内容。端口2181(zk)、9092、9093和9094(服务器)对用户计算机开放。我甚至可以做一个bin/kafka-topics.sh--description--zookeeper 172.X.X.X:2181--topic-remotetopic,这给了我 主题:remotetopic分区计数:1复制因子:3配置: 主题:remotetopic分区:0前
bin/kafka-topics.sh--description--zookeeper 172.X.X.X:2181--topic-remotetopic
,这给了我
主题:remotetopic分区计数:1复制因子:3配置:
主题:remotetopic分区:0前导:2个副本:2,0,1 Isr:2,0,1
大宗报价
然而,当我执行bin/kafka-console-consumer.sh--zookeeper 172.X.X.X:2181--从一开始--topic remotetopic
我得到
警告:从代理[id:0,主机:localhost,端口:9092]获取主题[Set(remotetopic)]的相关id为0的主题元数据失败(kafka.client.ClientUtils$)
java.nio.channels.ClosedChannel异常
消费者为什么试图从本地主机读取数据?是否有任何选项、命令行或默认文件可从中读取此信息;我能改变它吗
任何帮助都将不胜感激 我以类似(甚至更复杂)的方式设置了Kafka和Zookeeper,Kafka-console-consumer.sh确实像广告中所宣传的那样工作 这很可能是错误配置的Kafka实例(在服务器配置中指定其zookeeper节点)
检查卡夫卡配置默认情况下,如果未指定zookeeper实例,则假定为单个本地主机实例。否则“server.1”。。。必须使用2 etc约定来定义zookeeper实例(建议/要求至少三个以获得适当的法定人数)。也有同样的问题。通过按照kafka配置(config/server.properties)中的注释设置属性“adverted.host.name”并重新启动kafka服务器,修复了此问题。我创建了一个python脚本,允许您通过ssh隧道访问kafka/zookeeper,以使用和生成来自本地计算机的消息 与Linux和Mac兼容
Usage: kafkatunnel.py [OPTIONS] COMMAND [ARGS]...
Access kafka/zookeeper via ssh tunnel to consume and produce messages from
your local machine
Commands:
aws retrieve kafka/zookeeper ip's from AWS...
manual provide the IP's of your zookeeper/kafka
试试看:
我也遇到了同样的问题,我使用的是卡夫卡0.11,我在我的Ubuntu虚拟机中启动了producer和broker,并在Windows 10中启动了consumer 我已经改变(并且没有注释) 到
从服务器/代理端的文件config/server.properties(即,在我的例子中是Ubuntu VM)“advised.host.name=localhost”将“localhost”替换为我的ip地址。谢谢。然后我们可以远程访问日志并获取Java或Python客户端上的信息吗?更简单的方法是使用0.0.0.0,而不是像192.168.150.150这样的实际ip地址
advertised.listeners=PLAINTEXT://your.host.name:9092
advertised.listeners=PLAINTEXT://<myActual IP address>:9092
advertised.listeners=PLAINTEXT://192.168.150.150:9092