каковы плюсы и минусы создания брокера kafka и zookeeper в двух docker conatiners на одной машине

Я создаю конвейер данных kafka с 3 брокерами kafka и 3 сотрудниками зоопарка, поэтому мне нужно использовать 6 машин для развертывания 3 брокеров и 3 сотрудников зоопарка. Есть два способа уменьшить количество используемых машин

1) Чтобы сохранить 1 брокер kafka и 1 zookeeper на одном физическом компьютере, который я искал в Интернете и обнаружил, что будут проблемы с задержкой, поскольку и брокер kafka, и zookeeper используют одну и ту же оперативную память

2) использование докера и создание двух континентов на машине, каждый для zookeeper и брокера, и ограничение ОЗУ контейнера zookeeper, чтобы больше ОЗУ было занято брокером kafka и для уменьшения задержки

Я хочу знать больше плюсов и минусов двух моих вариантов использования

Хорошая практика - держать zookeeper и брокера на одной машине с использованием контейнеров?

заранее спасибо


person Manoj Kalluri    schedule 20.04.2016    source источник


Ответы (2)


Отличительной особенностью kafka является то, что он использует последовательное чтение / запись на диск для достижения высокого уровня производительности. Если другое приложение активно использует тот же физический жесткий диск (например, zookeeper, поскольку он ведет журнал изменений), это снизит максимальную пропускную способность, которую вы можете получить от kafka.

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

Вы также можете подумать о том, что здесь вы будете взаимно объединять причины сбоев, что обычно не является оптимальным решением, если вы можете этого избежать. Это может быть приемлемым компромиссом, если у вас нет возможности использовать / арендовать 3 очень маленькие машины для ZK, но вы работаете на определенном количестве серверов.

person C4stor    schedule 22.04.2016

Если вы используете Zookeeper только для Kafka и никакие другие процессы / приложения не используют этот кластер Zookeeper, то Zookeeper будет использовать очень меньше памяти. Kafka также не хранит много данных в памяти. Таким образом, вы можете безопасно запустить один узел Kafka и один Zookeeper на одном компьютере. Вы можете ограничить Zookeeper использованием меньшего объема памяти, контролируя максимальное пространство кучи JVM. Если для кеш-памяти ОС используется меньше памяти, это может сказаться на производительности Kafka. Поскольку Zookeeper не будет использовать много памяти, вы можете игнорировать это.

person Nipun Talukdar    schedule 22.04.2016