我一直在尝试使用Apache-Kafka在Arch生产者和在virtualbox上运行的Ubuntu VM使用者之间进行通信。通过遵循以下youtube教程,我已经能够在一台机器上建立生产者和消费者之间的通信。
https://www.youtube.com/watch?v=VbSRS7kG5Cw
基本上,我在4个单独的终端中使用这4个命令。
./bin/zookeeper-server-start.sh config/zookeeper.properties
./bin/kafka-server-start.sh config/server.properties
./bin/kafka-console-producer.sh --broker-list localhost:9092 --topic MyFirstTopic1
./bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic MyFirstTopic1
我已经尝试在VM和主机上同时设置zookeeper和kafka服务器,在一个服务器上同时设置生产者,在另一个上使用消费者,并且消费者命令中的ip地址从localhost更改为制片人。我尝试过在生产者端设置服务器,其余的保持不变。
任何帮助将不胜感激
目前尚不清楚哪台机器是哪台机器,但是您必须至少配置以下属性才能侦听非本地地址
listeners=PLAINTEXT://0.0.0.0:9092
advertised.listeners=PLAINTEXT://<external ip>:9092
从从本地主机生产和使用开始,然后在非本地主机上进行相同的操作,然后可以从不同的本地计算机上进行操作
注意:VM通常无法直接通过网络访问其主机,但是如果代理位于VM中,则还需要设置端口转发