Назад | Перейти на главную страницу

Реплицирует ли Kafka одни и те же данные для всех брокеров?

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

Мне нужно реализовать масштабирование кластера Kafka, а это значит, что я хочу, чтобы инфраструктура kafka была достаточно способной для добавления / удаления / замены брокеров. При добавлении / удалении экземпляра необходимо синхронизировать все данные других брокеров, чтобы быть ISR (синхронизированные реплики). Мы хотели, чтобы для этого использовалось автоматическое масштабирование AWS, и на самом деле нам не нужны 100 ГБ данных в зоне доступности, если в конечном итоге Kafka перебалансирует лидера некоторого раздела и назначит этого нового брокера. Следовательно, мы хотели использовать тот же старый том одного из брокеров.

Вопросы следующие:

  1. Какого брокера мне выбрать, если я хочу сделать снимок его
    ephermal storage -> создайте из него том и подключите его к другому (новому) брокеру.
  2. Реплицирует ли Kafka одни и те же данные для всех брокеров, независимо от лидеров определенного раздела?
  3. Каким будет лучший способ добиться этого, если мы хотим сэкономить на стоимости передачи данных, которая возникает при синхронизации данных от других брокеров с новым брокером, а также хотим масштабировать кластер.
  1. Я сомневаюсь, что вы могли бы просто сделать копию существующего брокера для увеличения масштаба .... поскольку брокеры тоже не такие, поскольку узел-1 может быть лидером для темы-1> раздела-1, а узел-2 может быть лидер по теме-1> раздел-2.

Однако я буду рад узнать, есть ли такое решение.

  1. Kafka реплицирует его на фактор репликации, поскольку ваш фактор репликации равен 3, поэтому он будет реплицирован на 3 машины. Однако репликация будет происходить по разделам. Итак, продолжая приведенный выше пример ... тема-1> лидером раздела-1 является узел-1, но копия может храниться на узле-2 и узле-3.

  2. В идеале следует очистить темы и не хранить данные слишком долго ... так вам не придется реплицировать много данных на новые узлы. Но если ваш вариант использования требует этого, я не уверен, есть ли эффективное решение.