3

在 Ubuntu 上使用 Kafka: Zookeeper 启动 Kafka 启动 主题创建 生产者启动 消费者启动 消息从生产者到消费者传递良好

我创建了 2 个新的 server.properties 文件为: server-1.properties 为:

broker.id=1
listeners=PLAINTEXT://:9093
log.dir=C:\kafka\kafka-logs-1

server-2.properties 为:

broker.id=2
listeners=PLAINTEXT://:9094
log.dir=C:\kafka\kafka-logs-2

当我启动新经纪人时:

bin\windows\kafka-server-start.sh config\server-1.properties &

得到错误为:

kafka.common.KafkaException: Socket server failed to bind to 0.0.0.0:9092: Address already in use: bind
4

3 回答 3

3

发生这种情况是因为您添加的代理都在侦听9092第一个代理当前正在使用的端口。

server-1.properties文件中,您需要添加

port=9093

并且在server-2.properties

port=9094

保留这些行listeners=PLAINTEXT://:9093listeners=PLAINTEXT://:9094注释掉。

还要确保broker.id为每个实例使用不同的。

如果您尝试使用单个 Zookeeper 节点设置多代理 Kafka 集群,您可能会发现此视频很有用。

于 2018-04-26T13:55:29.483 回答
2

如果您使用多个代理,则使用以下类型的代理声明

服务器属性

broker.id=0
listeners=PLAINTEXT://:9092
log.dirs=/tmp/kafka-logs

server.1.properties

broker.id=1
listeners=PLAINTEXT://:9093
log.dirs=/tmp/kafka-logs1

server.2.properties

broker.id=2
listeners=PLAINTEXT://:9094
log.dirs=/tmp/kafka-logs2

server.3.properties

broker.id=3
listeners=PLAINTEXT://:9095
log.dirs=/tmp/kafka-logs3
于 2020-02-19T04:55:34.947 回答
0

我在本地设置中遇到了同样的问题,3 个不同的 vm 运行 kafka 和 1 个 zookeeper,除了一个之外,2 个开始正常。在修复我的 3 个代理启动时没有任何问题后,我被要求检查 /etc/hosts 的名称设置错误

于 2020-05-08T19:21:18.653 回答