Sobes.tech
Middle
26

Wie kann die Kontrolle der Vollständigkeit der Nachrichtenübermittlung zwischen zwei Kafka-Clustern über ein Sicherheitstor (ohne Möglichkeit der Anpassung des Tores) gewährleistet werden?

Unternehmen wurden gefragt
Сбер. IT

Antwort von AI

sobes.tech KI

Для контроля полноты доставки сообщений между двумя кластерами Kafka через шлюз безопасности, который нельзя модифицировать, можно использовать следующие подходы:

  1. Идентификация сообщений и подтверждения: Включить уникальные идентификаторы сообщений и использовать механизм подтверждений на уровне приложений. Например, отправитель может сохранять ID отправленных сообщений, а получатель — подтверждать получение.

  2. Использование Kafka Connect с Source и Sink коннекторами: Если шлюз пропускает трафик, можно настроить коннекторы для репликации данных с проверкой оффсетов.

  3. Мониторинг оффсетов и метрик: Отслеживать оффсеты в обоих кластерах, чтобы убедиться, что сообщения не теряются.

  4. Реализация логики повторной отправки на уровне клиента: При отсутствии подтверждения о доставке — повторять отправку.

  5. Использование внешнего хранилища для контроля состояния: Например, хранить статус доставки сообщений в базе данных или распределённом кеше.

Поскольку шлюз нельзя менять, все механизмы контроля должны быть реализованы на уровне приложений и Kafka-клиентов, обеспечивая идемпотентность и возможность повторной отправки сообщений.