问题是我无法通过生产者脚本向集群中的任何代理发送消息。
该设置是单个动物园管理员服务器,在具有默认设置的ip (192.168.10.2:2181)上运行。
此外,还有3个代理正在运行(192.168.1001:9092192.168.11.1002:909292.168.10103:9092)。
在旋转经纪人之后,我可以在动物园管理员外壳中看到3个经纪人是连接的。
vagrant ssh zookeeper-1
kafka/bin/zookeeper-shell.sh 192.168.10.2:2181
ls /brokers/ids
输出:
连接到192.168.10.2:2181欢迎来到ZooKeeper!JLine支持被禁用观看:: 观看事件状态:同步连接类型:无路径:空ls /brokers/ids[3,2,1]
现在我可以通过复制创建主题:
kafka/bin/kafka-topics.sh --create --zookeeper 192.168.10.2:2181 --replication-factor 3 --partitions 1 --topic my-replicated-topic
然后,我验证主题是否已创建:
kafka/bin/kafka-topics.sh --describe --zookeeper 192.168.10.2:2181 --topic my-replicated-topic
输出:
主题:我的已复制主题分区计数:1复制因子:3配置:主题:我的已复制主题分区:0领导者:3副本:3,1,2 Isr: 3,1,2
如果我现在尝试通过生产者发送消息:
kafka/bin/kafka-console-producer.sh --broker-list 192.168.10.101:9092,192.168.10.102:9092,192.168.10.103:9092 --topic my-replicated-topic
[2017-12-28 13:53:30,530]WARN [创建者客户端 Id= 控制台-创建者] 无法建立与节点 -3 的连接。经纪人可能不可用。[2017-12-28 13:53:30,536] 无法建立与节点 -2 的连接。经纪人可能不可用。[2017-12-28 13:53:30,539] 无法建立与节点 -1 的连接。经纪人可能不可用。(org.apache.kafka.clients.NetworkClient)
如果我试图从其中一个代理发送消息,也会发生同样的情况。
我在这里上传了流浪文件脚本,所以你可以重现我的问题:https://github.com/0xBADBAC0N/kafka-vagrant-games
我现在基本上谷歌了几个小时,希望这里的任何人可能现在如何解决这个问题。我想这只是一个我看不到的配置设置。
经纪人,即使他应该知道自己的地址,也需要在自己的设置中用“listeners=PLAINTEXT://”$broker_IP“:9092”定义。
br-ex 核心接口有两个。 一个是挂载的物理接口上,如 eth0,网包将从这个接口发送到外部网络上。 另外一个是 qg-xxx 这样的接口,是连接到 router 服务的网络名字空间中,里面绑定一个路由器的外部 IP,作为 nAT 时候的地址,另外,网络中的 floating IP 也放在这个网络名字空间中。 Bridge br-ex Port "eth0"
br-int 集成网桥 br-int 规则比较简单,作为一个正常的二层交换机使用。无论下面虚拟化层是哪种技术实现,集成网桥是看不到的,只知道根据 vlan 和 mac 进行转发。 所连接接口包括: tap-xxx,连接到网络 DHCP 服务的命名空间; qr-xxx,连接到路由服务的命名空间; 往外的 patch-tun 接口,连接到 br-tun 网桥。 其中网络服务接口上会绑定内部 vlan
br-tun 跟计算节点类似,br-tun 作为虚拟化层网桥。要将内部过来的网包进行合理甄别,内部带着正确 vlan tag 过来的,从正确的 tunnel 扔出去;外面带着正确 tunnel 号过来的,要改到对应的内部 vlan tag 扔到里面。 包括两个接口,跟其它接点形成 tunnel 的 vxlan-xxx 端口,以及跟 br-int 互连的 patch-int 端口。 Bridge b
br-tun br-tun 作为虚拟化层网桥,规则就要复杂一些。要将内部过来的网包进行合理甄别,内部带着正确 vlan tag 过来的,从正确的 tunnel 扔出去;外面带着正确 tunnel 号过来的,要改到对应的内部 vlan tag 扔到里面。 Bridge br-tun fail_mode: secure Port "vxlan-0a00644d"
br-int 集成网桥 br-int 规则比较简单,作为一个正常的二层交换机使用。无论下面虚拟化层是哪种技术实现,集成网桥是看不到的,只知道根据 vlan 和 mac 进行转发。 所连接接口除了从安全网桥过来的 qvo-xxx(每个虚拟机会有一个),就是一个往外的 patch-tun 接口,连接到 br-tun 网桥。 其中,qvo-xxx 接口上会为每个网络分配一个内部 vlan 号,比如这里是
描述 (Description) HTML 标记用于表示换行符。 例子 (Example) <!DOCTYPE html> <html> <head> <title>HTML br Tag</title> </head> <body> <p>This is before the line break<br /> and this after t