#apache-kafka
#apache-kafka
Вопрос:
В /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 (выше) содержит:
listeners=PLAINTEXT://<MY_HOST_NAME>:9092,SASL_SSL://<MY_HOST_NAME>:9093
разве брокер не должен быть доступен?
Насколько я понимаю, это listeners=PLAINTEXT://<MY_HOST_NAME>:9092,SASL_SSL://<MY_HOST_NAME>:9093
конфигурация, которая позволяет брокерам быть доступными?
Ответ №1:
Я предполагаю, что соединение находится внутри одного и того же хоста (здесь не задействованы ни рекламируемые слушатели, ни внешние клиенты). Измените свойство listeners, чтобы брокер прослушивал все интерфейсы:
listeners=PLAINTEXT://0.0.0.0:9092,SASL_SSL://0.0.0.0:9093
Если вы установите свой <hostname>
в качестве слушателя, localhost
он не будет распознан как допустимая точка привязки: нет зарегистрированного « localhost
» слушателя, только тот, который указан в вашей конфигурации <hostname>
.
Установив 0.0.0.0
в качестве прослушивателя, брокер будет привязываться ко всем интерфейсам, следовательно, принимая localhost
их в качестве допустимой конечной точки. Вы можете найти более подробную информацию об этом здесь.