如何使用kafka在VM和主机之间进行通信?

时间:2019-09-29 22:29:29

标签: apache-kafka virtualbox

我一直在尝试使用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更改为的IP地址。生产者。我尝试过在生产者端设置服务器,其余的保持不变。

任何帮助将不胜感激

1 个答案:

答案 0 :(得分:0)

目前尚不清楚哪台机器是哪台机器,但是您必须至少配置以下属性才能侦听非本地地址

listeners=PLAINTEXT://0.0.0.0:9092 
advertised.listeners=PLAINTEXT://<external ip>:9092

首先从localhost进行生产和使用,然后在非localhost机器上进行相同的操作,然后可以从不同的机器上进行

注意:VM通常无法直接通过网络访问其主机,但是如果代理位于VM中,则还需要设置端口转发