Как проксировать запросы производителя Apache Kafka в брокере Kafka и перенаправлять в отдельный кластер Kafka?

#apache-kafka #kafka-producer-api

#apache-kafka #kafka-producer-api

Вопрос:

Как проксировать запросы производителя Apache Kafka в брокере Kafka и перенаправлять в отдельный кластер Kafka?

В моем конкретном случае невозможно обновить клиентов, которые записывают в этот кластер. Это означает, что невозможно выполнить следующее:

  1. Обновление конфигурации загрузочного брокера в клиенте
  2. Перепишите клиентский код для поддержки Confluent REST Proxy

Поэтому я ищу прокси, который будет работать по протоколу Kafka

Вот несколько потенциальных вариантов, которые я обнаружил до сих пор:

  1. Kafka-proxy
  2. EnvoyProxy

Есть ли у кого-нибудь опыт работы с вышеуказанными инструментами (или альтернативными инструментами), которые позволили бы мне перенаправить двоичный запрос TCP Kafka на отдельный кластер Kafka?

Комментарии:

1. Почему не MirrorMaker? Проблема с прокси заключается в том, что в целевом кластере могут быть разные темы или разделы для совпадающих тем

2. Вариант использования заключается в том, что нам нужно выполнить обслуживание кластера Kafka (например, расширить емкость), и если кластер уже находится под большой нагрузкой, обслуживание может фактически вызвать сам сбой (т. Е. перебалансировку данных). Итак, если бы можно было перенаправить производителей клиентов в отдельный кластер Kafka, это уменьшило бы нагрузку до расширения емкости. К сожалению, MirrorMaker не помогает этой проблеме.

3. Итак, как вы будете объединять данные после расширения емкости?

4. Если вы используете архитектуру концентратора и спиц, вы можете зеркально отразить трафик из временного кластера Kafka «spoke / source» обратно в кластер Kafka «hub / aggregate». В приведенном выше примере использования обслуживания он будет работать только с кластерами Kafka «spoke / source».

Ответ №1:

С конца 2021 года прокси-сервер Envoy выполняет это для запросов на производство (с помощью kafka-mesh-filter), однако работа все еще продолжается.

В общем, ваш прокси-сервер должен понимать протокол Kafka и поддерживать необходимые соединения с вышестоящими кластерами Kafka.