#apache-kafka #kafka-producer-api
#apache-kafka #kafka-producer-api
Вопрос:
Как проксировать запросы производителя Apache Kafka в брокере Kafka и перенаправлять в отдельный кластер Kafka?
В моем конкретном случае невозможно обновить клиентов, которые записывают в этот кластер. Это означает, что невозможно выполнить следующее:
- Обновление конфигурации загрузочного брокера в клиенте
- Перепишите клиентский код для поддержки Confluent REST Proxy
Поэтому я ищу прокси, который будет работать по протоколу Kafka
Вот несколько потенциальных вариантов, которые я обнаружил до сих пор:
Есть ли у кого-нибудь опыт работы с вышеуказанными инструментами (или альтернативными инструментами), которые позволили бы мне перенаправить двоичный запрос 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.