Производители / потребители Kafka в глобальной сети?

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

Я прочитал из документации Кафки:

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

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

Насколько я понимаю, здесь и здесь:

  • Производство через WAN не требует ZK и это нормально, просто помните о настройках TCP для соединений с высокой задержкой. Большой! Проверять.
  • Для потребительских API высокого уровня требуются соединения ZK.

Разве клиенты, читающие / записывающие в Kafka через глобальную сеть, не подчиняются тем же ограничениям для кластеров, которые выделены полужирным шрифтом выше?


person alph486    schedule 26.01.2015    source источник


Ответы (1)


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

Производители изолированы, и если есть проблемы с сетью, они должны иметь возможность буферизовать / повторять попытки в соответствии с вашими настройками.

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

Имейте в виду, что производитель должен иметь доступ к каждому брокеру Kafka, а потребитель должен иметь доступ ко всем узлам zookeeper и брокерам Kafka, балансировщик нагрузки не будет работать.

person ppearcy    schedule 27.01.2015