Kafka Real-Time гарантирует - PullRequest
       19

Kafka Real-Time гарантирует

0 голосов
/ 04 июля 2018

Может ли Кафка гарантировать, что потребитель увидит сообщение x мс после того, как оно было (успешно) создано?

Справочная информация:

У меня есть система, где служба A принимает запросы. Служба B должна иметь возможность ответить, сколько запросов поступило к определенному времени. Служба B должна быть точной. Мой план:

  • Служба A принимает запросы, выдает сообщение и ожидает подтверждения хотя бы одной реплики. Получив это, он отправит пользователю, что его запрос находится «в системе».

  • По запросу службы B я жду х мс. Затем я проверяю тему на новые запросы. Итак, я на 100% знаю состояние Службы A в состоянии "сейчас () - х мс".

В этом случае Kafka должен гарантировать, что я смогу использовать сообщение максимум X мс после его создания. Это тот случай?

1 Ответ

0 голосов
/ 08 июля 2018

В Kafka сообщения становятся доступными для потребления после увеличения верхнего водяного знака. Это гарантированно произойдет после того, как будет выполнено минимальное количество синхронизированных реплик. Компромисс здесь - стойкость к латентности. Если вам требуется более низкая задержка, только подтверждение у лидера происходит быстрее. Однако это не так долго, как ожидание 2-х в репликах синхронизации. Отвечая «когда я могу потреблять?», Вы действительно отвечаете «когда сообщение было подтверждено как написанное Kafka?»

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...