Правильный способ настроить свойство слушателей в брокерах kafka

У нас есть кластер из 5 брокеров, и мы настроили server.properties, как показано ниже.

listeners=PLAINTEXT://kafka1:9092
advertised.listeners=PLAINTEXT://kafka1:9092

Я добавил записи, как показано ниже, в файл /etc/hosts обо всех брокерах, производителях и потребителях.

"Private:IP:kafka:broker1" kafka1

Это работает для нас по большей части, и нам не нужно запоминать частные IP-адреса загрузочных серверов при настройке новых потребителей.

Я хотел бы знать, является ли это нормальным способом общения между брокерами и клиентами kafka?

Поскольку я не специалист по DevOps, я не уверен, что это может привести к скрытым проблемам. Пожалуйста, прокомментируйте это.

Другое дело, что я наблюдаю случайные разрывы соединения между брокером и клиентами Kafka, что приводит к различным проблемам. Я просто хочу исключить возможность того, что это каким-то образом вызывает проблемы.

Построение конвейеров данных в реальном времени с Apache Kafka: Руководство по Python
Построение конвейеров данных в реальном времени с Apache Kafka: Руководство по Python
Apache Kafka - популярная платформа распределенной потоковой передачи данных, которую можно использовать для построения конвейеров данных в реальном...
0
0
1 387
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

I have added entries like below in /etc/hosts file of all the brokers, producers and consumers

Это НЕТ в порядке. Пожалуйста не делай этого

Если вы не можете разрешить хосты только с помощью вашего свойства bootstrap.servers, то слушатели неверны.

Пожалуйста, прочтите это объяснение Kafka Listeners для получения подробной информации.

we don't have to remember private IPs of the bootstrap servers when configuring new consumers

Вы можете использовать инструмент обнаружение службы для решения этой проблемы. Consul является популярным, тогда вы просто указываете на kafka.service.consul:9092, и он «просто работает» с помощью магии DNS.

Или вы должны стандартизировать клиентскую библиотеку Kafka, которая уже предварительно настроена, по крайней мере, с настройкой загрузочных серверов, а затем вы выпускаете эту «библиотеку» для своих разработчиков для внутреннего использования.

Ладно. Согласно статье, кажется, что единственная проблема с жестким кодированием IP-адресов в локальном файле /etc/hosts заключается в том, что это хрупкий подход и своего рода взлом. Я изменю рекламируемых слушателей всех брокеров на их частные IP-адреса, поскольку все наши клиенты Kafka находятся в одном и том же VPC. Что касается случайных отключений, я не думаю, что этот взлом когда-либо вызовет проблему как таковую. или может?

Ankur rana 18.02.2019 07:26

Случайные отключения могут быть исключениями тайм-аута с клиентами или задержкой Zookeeper (как я упоминал ранее), или аппаратным обеспечением вашего VPC, не способным справиться с репликацией, а также запросами клиентов, например. iowait, и загрузка процессора и т.д. Но нет, /etc/hosts "хак" плохой только когда пытаешься расширить кластер, или перезагружаешь сервер в облаке, а IP меняется

OneCricketeer 20.02.2019 23:53

Спасибо чувак. Я решил, что проблема с отключением возникла из-за существующей проблемы в самой Кафке. Что касается настройки свойства слушателей Kafka, ваши идеи выглядят идеально.

Ankur rana 21.02.2019 06:38

Если вы считаете, что проблема связана с самой Kafka, вы можете открыть JIRA или отправить электронное письмо в список рассылки Kafka для дальнейшего изучения основными разработчиками.

OneCricketeer 21.02.2019 06:46

Другие вопросы по теме