В кластере PoC cloudera, поставляемом с kafka (1 брокер), я пытаюсь отправлять сообщения в кластер с внешним производителем через публичный IP.Узлы моего кластера размещены в Azure, и все они доступны с моей локальной машины, на которой работает внешний производитель.
После этой замечательной статьи https://rmoff.net/2018/08/02/kafka-listeners-explained/ Я выяснил конфигурацию слушателей kafka, которая мне нужна, так как этот публичный IP-адрес брокера доступен только с моей локальной машины, и внутри кластера они могут общаться только через свои внутренние имена хостов:
listeners=INTERNAL://0.0.0.0:19092,EXTERNAL://0.0.0.0:9092
listener.security.protocol.map=INTERNAL:PLAINTEXT,EXTERNAL:PLAINTEXT
advertised.listeners=INTERNAL://internal-broker-node-hostname:19092,EXTERNAL://public-broker-ip:9092
inter.broker.listener.name=INTERNAL
При такой конфигурации, когда я пытаюсь запустить брокер, я получаю эту ошибку:
org.apache.kafka.common.config.ConfigException: Only one of inter.broker.listener.name and security.inter.broker.protocol should be set.
Что имеет смысл, как в документе Kafka для этого свойства inter.broker.listener.name
они говорят:
Имя слушателя, используемого для связи между брокерами.Если это не установлено, имя слушателя определяется security.inter.broker.protocol.Ошибкой является одновременная установка свойств и security.inter.broker.protocol.
Проблема, с которой я сталкиваюсь, заключается в том, что я не могу сбросить security.inter.broker.protocol
с помощью диспетчера cloudera, поскольку у меня есть только опция переключения параметров в переключателе.
Как мне отменить это свойство?