Собираюсь внедрить Kafka в инфраструктуру. У меня есть пример использования, когда у нас есть компоненты ниже в архитектуре Kafka.
Мне нужно реализовать масштабирование кластера Kafka, а это значит, что я хочу, чтобы инфраструктура kafka была достаточно способной для добавления / удаления / замены брокеров. При добавлении / удалении экземпляра необходимо синхронизировать все данные других брокеров, чтобы быть ISR (синхронизированные реплики). Мы хотели, чтобы для этого использовалось автоматическое масштабирование AWS, и на самом деле нам не нужны 100 ГБ данных в зоне доступности, если в конечном итоге Kafka перебалансирует лидера некоторого раздела и назначит этого нового брокера. Следовательно, мы хотели использовать тот же старый том одного из брокеров.
Вопросы следующие:
Однако я буду рад узнать, есть ли такое решение.
Kafka реплицирует его на фактор репликации, поскольку ваш фактор репликации равен 3, поэтому он будет реплицирован на 3 машины. Однако репликация будет происходить по разделам. Итак, продолжая приведенный выше пример ... тема-1> лидером раздела-1 является узел-1, но копия может храниться на узле-2 и узле-3.
В идеале следует очистить темы и не хранить данные слишком долго ... так вам не придется реплицировать много данных на новые узлы. Но если ваш вариант использования требует этого, я не уверен, есть ли эффективное решение.