kafka:如何连接kafka控制台消费者来获取远程代理主题内容?

voase2hg  于 2021-06-08  发布在  Kafka
关注(0)|答案(4)|浏览(369)

我在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读取数据?是否有任何选项、命令行或默认文件可以读取这些信息;我能改变它吗?
任何帮助都将不胜感激!

ej83mcc0

ej83mcc01#

我已经设置了kafka和zookeeper在一个类似的(甚至更复杂的)安排和kafka-console-consumer.sh没有工作的广告。
这很可能是一个配置错误的kafka示例(它在服务器配置中指定了zookeeper节点)。
检查Kafka配置。默认情况下,如果未指定zookeeper示例,则假定为单个localhost示例。否则“server.1”。。。必须使用2 etc约定来定义zookeeper示例(建议/要求至少三个示例以获得适当的仲裁)。

ippsafx7

ippsafx72#

我也遇到了同样的问题,我正在使用kafka 0.11,我在我的ubuntuvm中启动producer和broker,在windows10中启动consumer。
我变了(而且没有注解)

advertised.listeners=PLAINTEXT://your.host.name:9092

advertised.listeners=PLAINTEXT://<myActual IP address>:9092

例子:

advertised.listeners=PLAINTEXT://192.168.150.150:9092

从服务器/代理端的config/server.properties文件(即,在我的例子中,它是ubuntuvm)

fzwojiic

fzwojiic3#

我也有同样的问题。通过按照kafka配置(config/server.properties)中的注解设置属性“adverted.host.name”并重新启动kafka服务器,修复了此问题。

9bfwbjaz

9bfwbjaz4#

我已经创建了一个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

试试看:https://github.com/simple-machines/kafka-tunnel

相关问题