2016-08-28 2 views
2

Я настроил 2 Kafka с базовыми настройками на двух разных серверах по сети в Великобритании, а другой в Индии, и мой сценарий очень прост, Великобритания является издателем, а Индия - потребителем, но никто из них не может получить никаких данных.Как настроить Apache Kafka для получения данных через Интернет?

Я проверил свои брандмауэры, нет блокировки портов и вообще. Также я тестировал свой сценарий с redis pubsub, и это сработало, но я не был успешным с Kafka.

Как мне настроить мои Kafkas для этого? или вообще возможно сделать это с Кафкой?

+0

У вас есть 2 Кафку кластеры или один кластер с одним производителем и одним потребителем? Когда я сомневаюсь, я всегда пытаюсь подключиться к Kafka с помощью инструментов командной строки, таких как kafka-console-consumer. – leshkin

+0

У меня есть один производитель и потребитель, и я использую kafka-console-производитель/kafka-console-consumer с той же темой –

ответ

1

Найдено решение:

В конфигурации Apache Кафки, добавьте следующую строку:

advertised.listeners=PLAINTEXT://xxx.xxx.xxx.xxx:pppp 
# x = your IP 
# p = your port 
2

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

Почему?

После того, как у вас есть потребители в другом центре обработки данных, возникает латентность, влияющая на всю координацию, которую Kafka делает с потребителями (групповое перебалансирование/смещение совершает/сердцебиение), а производители, находящиеся в другом центре обработки данных, задержка для получения баллов для каждого отправка сообщения будет значительной, замедляя скорость, с которой вы можете создавать сообщения.

Итак, теоретически вы можете очень хорошо настроить, если ваша сеть надежна.

Теперь Если вы думаете, что брокеров Kafka распределены между центрами обработки данных, это будет более дорогостоящим. Вся межброкерская связь будет задерживаться эффективно, создавая отставание в репликах, множество сетевых звонков (через Интернет), тайм-ауты брокера и т. Д., Снова теоретически выполнимые.

На практике для этих сценариев лучше иметь локальный кластер Kafka для каждого постоянного тока, где они производят/потребляют сообщения с локально размещенными приложениями и имеют Mirrormaker для агрегирования сообщений между центрами обработки данных.

+1

У меня есть брокеры с перекрестным центром обработки данных случайно (тот же город, недалеко от центра обработки данных), увеличение стоимости репликации между брокерами 16%. –

+0

любое предложение для распределенной очереди pub/sub? –

+0

Можете ли вы объяснить немного больше о вашем случае использования? Если вы не хотите, чтобы все сообщения в другом постоянном токе были в абсолютном реальном времени, вы можете пойти на Kafka + Mirrormaker. –

 Смежные вопросы

  • Нет связанных вопросов^_^