错误 Apache Kafka ubuntu vagrant - advertised.listeners and listeners
Error Apache Kafka ubuntu vagrant - advertised.listeners and listeners
我是 运行 一台流浪主机 Ubuntu 20.04 on 192.168.50.4:
config.vm.box = "bento/ubuntu-20.04"
...
config.vm.network "private_network", ip: "192.168.50.4"
除了 LAN 默认设置之外,网络方面没有什么太复杂的。
然后我按照 this steps 安装了 Kafka(我知道有一个 Vagrant Box,我只是想自己安装)。
现在的问题:
a) - 如果我在 server.properties
中保留默认值:
#listeners=PLAINTEXT://:9092
...
#advertised.listeners=PLAINTEXT://your.host.name:9092
(均有评论)
来宾机器的生产者和消费者sh文件都可以正常工作。
但是我在主机上的 python 脚本没有:
...
settings = {
'bootstrap.servers': '192.168.50.4:9092',
'group.id': 'mygroup',
'client.id': 'client-1',
'enable.auto.commit': True,
'session.timeout.ms': 6000,
'default.topic.config': {'auto.offset.reset': 'smallest'}
}
...
(完整示例 here)
报错:
...
%3|1612854723.928|FAIL|client-1#consumer-1| [thrd:GroupCoordinator]: GroupCoordinator: vagrant.vm:9092: Failed to resolve 'vagrant.vm:9092': Name or service not known (after 29ms in state CONNECT)
...
我已经试过了:
listeners=PLAINTEXT://localhost:9092
...
advertised.listeners=PLAINTEXT://192.168.50.4:9092
这样问题仍然存在:
%3|1612855333.958|FAIL|client-1#consumer-1| [thrd:192.168.50.4:9092/bootstrap]: 192.168.50.4:9092/bootstrap: Connect to ipv4#192.168.50.4:9092 failed: Connection refused (after 0ms in state CONNECT, 1 identical error(s) suppressed)
b) - 如果我只是将 server.properties
中的 listeners
更改为:
...
listeners=PLAINTEXT://192.168.50.4:9092
...
python 脚本在主机上工作,但来宾的生产者和消费者 sh 文件不工作:
[2021-02-09 07:20:36,958] WARN [Producer clientId=console-producer] Bootstrap broker localhost:9092 (id: -1 rack: null) disconnected (org.apache.kafka.clients.NetworkClient)
不知道有什么方法可以同时保持来自来宾和主机的工作连接。并不是因为缺乏搜索和分析。
Listeners 是一个绑定地址。需要为 0.0.0.0:(port) 才能向所有客户端打开服务器。设置为 localhost 限制到那台机器,设置到 ip 限制到那台 interface/route
这里最简单的解决方案是通告本地主机:(端口),然后在 Vagrant 中设置端口转发,从通告的端口到侦听器配置中指定的端口(这些可以是不同的端口)
您的第一个错误是因为您的主机不知道 VM 主机名,除非您安装了一些 Vagrant 插件。
更合适的解决方案是公布 VM host-only IP 地址
我是 运行 一台流浪主机 Ubuntu 20.04 on 192.168.50.4:
config.vm.box = "bento/ubuntu-20.04"
...
config.vm.network "private_network", ip: "192.168.50.4"
除了 LAN 默认设置之外,网络方面没有什么太复杂的。
然后我按照 this steps 安装了 Kafka(我知道有一个 Vagrant Box,我只是想自己安装)。
现在的问题:
a) - 如果我在 server.properties
中保留默认值:
#listeners=PLAINTEXT://:9092
...
#advertised.listeners=PLAINTEXT://your.host.name:9092
(均有评论)
来宾机器的生产者和消费者sh文件都可以正常工作。 但是我在主机上的 python 脚本没有:
...
settings = {
'bootstrap.servers': '192.168.50.4:9092',
'group.id': 'mygroup',
'client.id': 'client-1',
'enable.auto.commit': True,
'session.timeout.ms': 6000,
'default.topic.config': {'auto.offset.reset': 'smallest'}
}
...
(完整示例 here)
报错:
...
%3|1612854723.928|FAIL|client-1#consumer-1| [thrd:GroupCoordinator]: GroupCoordinator: vagrant.vm:9092: Failed to resolve 'vagrant.vm:9092': Name or service not known (after 29ms in state CONNECT)
...
我已经试过了:
listeners=PLAINTEXT://localhost:9092
...
advertised.listeners=PLAINTEXT://192.168.50.4:9092
这样问题仍然存在:
%3|1612855333.958|FAIL|client-1#consumer-1| [thrd:192.168.50.4:9092/bootstrap]: 192.168.50.4:9092/bootstrap: Connect to ipv4#192.168.50.4:9092 failed: Connection refused (after 0ms in state CONNECT, 1 identical error(s) suppressed)
b) - 如果我只是将 server.properties
中的 listeners
更改为:
...
listeners=PLAINTEXT://192.168.50.4:9092
...
python 脚本在主机上工作,但来宾的生产者和消费者 sh 文件不工作:
[2021-02-09 07:20:36,958] WARN [Producer clientId=console-producer] Bootstrap broker localhost:9092 (id: -1 rack: null) disconnected (org.apache.kafka.clients.NetworkClient)
不知道有什么方法可以同时保持来自来宾和主机的工作连接。并不是因为缺乏搜索和分析。
Listeners 是一个绑定地址。需要为 0.0.0.0:(port) 才能向所有客户端打开服务器。设置为 localhost 限制到那台机器,设置到 ip 限制到那台 interface/route
这里最简单的解决方案是通告本地主机:(端口),然后在 Vagrant 中设置端口转发,从通告的端口到侦听器配置中指定的端口(这些可以是不同的端口)
您的第一个错误是因为您的主机不知道 VM 主机名,除非您安装了一些 Vagrant 插件。
更合适的解决方案是公布 VM host-only IP 地址