Подключитесь к Kafka, установленному в HDInsight (Azure)
Мне нужно подключиться из внешнего Java-приложения к кластеру Kafka, который был запущен как часть HDinsight на Azure. У меня есть кластер с 3 экземплярами брокеров, 3 ZooKeepers и один клиент ZooKeeper.
Теперь мой вопрос: как указать строку подключения брокера. На панели администратора я вижу 3 брокеров, таких как: xxx-1.yyy.zzz.internal.cloudapp.net
, xxx-2.yyy.zzz.internal.cloudapp.net
- но эти адреса не доступны из внешних. Если я попробую это, то увижу исключение:
KafkaException: не удалось построить потребитель kafka
...
ConfigException: неверный URL в bootstrap.servers: xxx-1.yyy.zzz.internal.cloudapp.net
3 ответа
Проблема заключается в том, что вы пытаетесь разрешить внутренние имена хостов Azure, которые невозможно разрешить из Интернета. Также вы должны знать, что невозможно напрямую подключиться к экземпляру Kafka из Интернета.
Вам нужен еще один слой / шлюз между ними, как вы можете видеть здесь на этой диаграмме.
Насколько я знаю, вы можете выбирать между прямым соединением или использовать другой промежуточный уровень, например концентратор IoT Azure и соединитель.
Вы можете выбрать, в зависимости от вашего варианта использования, какой вы хотите, но имейте в виду, что эти услуги не являются бесплатными и в зависимости от размера ваших данных это может добавить существенную позицию к вашей квитанции.
Если вы подключаетесь из локальной сети, вам необходимо настроить VPN-шлюз типа " сеть-сеть". Дополнительные сведения см. В разделе Подключение к Apache Kafka из локальной сети.
Если вы подключаетесь с отдельного компьютера, вам необходимо настроить VPN-шлюз точка-сеть, подробности см. В разделе Подключение к Apache Kafka с помощью VPN-клиента.
Проверьте свою конфигурацию Kafka и установите свойство auto.create.topics.enable
в true
, Перезапустите Kafka и попробуйте снова.
[root@domain bin]# ./kafka-console-producer.sh --broker-list host.domain.net:6667 --topic topic1 --security-protocol SASL_PLAINTEXT
Test
[2017-04-11 09:07:43,821] WARN Error while fetching metadata with correlation id 0 : {topic1=UNKNOWN_TOPIC_OR_PARTITION} (org.apache.kafka.clients.NetworkClient)
[2017-04-11 09:07:44,022] WARN Error while fetching metadata with correlation id 1 : {topic1=UNKNOWN_TOPIC_OR_PARTITION} (org.apache.kafka.clients.NetworkClient)
[2017-04-11 09:07:44,122] WARN Error while fetching metadata with correlation id 2 : {topic1=UNKNOWN_TOPIC_OR_PARTITION} (org.apache.kafka.clients.NetworkClient)
[2017-04-11 09:07:44,223] WARN Error while fetching metadata with correlation id 3 : {topic1=UNKNOWN_TOPIC_OR_PARTITION} (org.apache.kafka.clients.NetworkClient)
[2017-04-11 09:07:44,323] WARN Error while fetching metadata with correlation id 4 : {topic1=UNKNOWN_TOPIC_OR_PARTITION} (org.apache.kafka.clients.NetworkClient)
[2017-04-11 09:07:44,423] WARN Error while fetching metadata with correlation id 5 : {topic1=UNKNOWN_TOPIC_OR_PARTITION} (org.apache.kafka.clients.NetworkClient)
[2017-04-11 09:07:44,523] WARN Error while fetching metadata with correlation id 6 : {topic1=UNKNOWN_TOPIC_OR_PARTITION} (org.apache.kafka.clients.NetworkClient)
[2017-04-11 09:07:44,624] WARN Error while fetching metadata with correlation id 7 : {topic1=UNKNOWN_TOPIC_OR_PARTITION} (org.apache.kafka.clients.NetworkClient)
[2017-04-11 09:07:43,821] WARN Error while fetching metadata with correlation id 0 : {topic1=UNKNOWN_TOPIC_OR_PARTITION} (org.apache.kafka.clients.NetworkClient)
[2017-04-11 09:07:44,022] WARN Error while fetching metadata with correlation id 1 : {topic1=UNKNOWN_TOPIC_OR_PARTITION} (org.apache.kafka.clients.NetworkClient)
[2017-04-11 09:07:44,122] WARN Error while fetching metadata with correlation id 2 : {topic1=UNKNOWN_TOPIC_OR_PARTI
Выдает эту ошибку, если у вас есть 3 брокера кафки кластера. Поэтому, когда вы работаете с производителем и потребителем кафки, создайте тему с одинаковым коэффициентом репликации с количеством брокеров.
команда
bin/kafka-topics.sh --create --topic test --zookeeper node1:2181,node2:2181,node3:2181 --partitions 1 --replication-factor 3
Эта команда для кластера 3 брокера hdinsigt