Порты Kafka: ZooKeeper (2181) и Broker (9092)

При установке Kafka создаётся набор файлов, преимущественно исполняемых скриптов с расширением .sh (Linux/Unix) или .bat (Windows), а также конфигурационные файлы ZooKeeper и Kafka Broker.

Порты по умолчанию

Диаграмма ниже демонстрирует порты по умолчанию, используемые в этих конфигурационных файлах:

  • ZooKeeper: Порт 2181
  • Kafka Broker: Порт 9092

Запуск нескольких экземпляров

При запуске нескольких экземпляров ZooKeeper или Kafka Broker на одном компьютере необходимо использовать разные порты, поскольку каждый порт может быть занят только одним процессом. Например, для трёх серверов ZooKeeper потребуются отдельные конфигурационные файлы с различными портами (например, 2181, 2182, 2183). Рекомендуется также создавать отдельные папки для логов каждого экземпляра (например, port2181, port2182, port2183). Аналогично, для нескольких брокеров Kafka нужно создать отдельные конфигурационные файлы с разными портами (например, 9092, 9093, 9094) и настроить папки для хранения сообщений и логов каждого брокера.

Запуск на разных компьютерах

При запуске экземпляров ZooKeeper или Kafka Broker на разных компьютерах (физических или виртуальных) изменение портов не требуется. Все экземпляры могут использовать один и тот же порт.

Настройка advertised.listeners для облачных кластеров

В кластерах Kafka Broker с брокерами на разных компьютерах (включая разные дата-центры), взаимодействующими через публичные IP-адреса или доменные имена, необходимо настроить параметр advertised.listeners в конфигурационных файлах каждого брокера. advertised.listeners — это имя хоста и порт, которые брокер сообщает ZooKeeper. При подключении продюсера или консумера к кластеру, ZooKeeper предоставляет эти данные, полученные от Kafka Broker.

Если брокер указывает advertised.hostname как localhost и порт 9092, внешний продюсер не сможет подключиться, поскольку localhost — локальный адрес. Поэтому при публичной доступности брокеров следует правильно настроить advertised.listeners и порт каждого брокера.

Что будем искать? Например,программа