首页 > 解决方案 > 经纪人不可用

问题描述

到 /etc/kafka/server.properties 使用以下方式配置代理:

############################# Server Basics #############################
# The id of the broker. This must be set to a unique integer for each broker.
broker.id=0
############################# Socket Server Settings #############################
# The address the socket server listens on. It will get the value returned from
# java.net.InetAddress.getCanonicalHostName() if not configured.
#   FORMAT:
#     listeners = listener_name://host_name:port
#   EXAMPLE:
#     listeners = PLAINTEXT://your.host.name:9092
listeners=PLAINTEXT://<MY_HOST_NAME>:9092,SASL_SSL://<MY_HOST_NAME>:9093

要检查我运行的经纪人:

/opt/confluent-kafka/v5.5.0/bin/zookeeper-shell localhost:2181 ls /brokers/ids

返回:

Connecting to localhost:2181

WATCHER::

WatchedEvent state:SyncConnected type:None path:null
[]

因此,经纪人似乎没有运行。由于 kafka server.properties(above) 包含:

listeners=PLAINTEXT://<MY_HOST_NAME>:9092,SASL_SSL://<MY_HOST_NAME>:9093

经纪人不应该有空吗?

我的理解是listeners=PLAINTEXT://<MY_HOST_NAME>:9092,SASL_SSL://<MY_HOST_NAME>:9093允许经纪人访问的配置?

标签: apache-kafka

解决方案


我假设连接在同一主机内(此处不涉及广告侦听器或外部客户端)。更改 listeners 属性以使代理侦听所有接口:

listeners=PLAINTEXT://0.0.0.0:9092,SASL_SSL://0.0.0.0:9093

如果您将您设置<hostname>为侦听器,localhost则不会被识别为有效的绑定点:没有注册的“ localhost”侦听器,只有您的配置中指定的侦听器,<hostname>.

通过设置0.0.0.0为侦听器,代理将绑定到所有接口,因此接受localhost为有效端点。您可以在此处找到有关此的更多信息。


推荐阅读