Como garantir o controlo da completude na entrega de mensagens entre dois clusters Kafka através de um gateway de segurança (sem possibilidade de modificar o gateway)?
sobes.tech IA
Resposta da IA
Для контроля полноты доставки сообщений между двумя кластерами Kafka через шлюз безопасности, который нельзя модифицировать, можно использовать следующие подходы:
-
Идентификация сообщений и подтверждения: Включить уникальные идентификаторы сообщений и использовать механизм подтверждений на уровне приложений. Например, отправитель может сохранять ID отправленных сообщений, а получатель — подтверждать получение.
-
Использование Kafka Connect с Source и Sink коннекторами: Если шлюз пропускает трафик, можно настроить коннекторы для репликации данных с проверкой оффсетов.
-
Мониторинг оффсетов и метрик: Отслеживать оффсеты в обоих кластерах, чтобы убедиться, что сообщения не теряются.
-
Реализация логики повторной отправки на уровне клиента: При отсутствии подтверждения о доставке — повторять отправку.
-
Использование внешнего хранилища для контроля состояния: Например, хранить статус доставки сообщений в базе данных или распределённом кеше.
Поскольку шлюз нельзя менять, все механизмы контроля должны быть реализованы на уровне приложений и Kafka-клиентов, обеспечивая идемпотентность и возможность повторной отправки сообщений.