Пример использования: создать сообщение, которое через некоторое время появится в кафке. - PullRequest
0 голосов
/ 13 июля 2020

У меня есть сценарий, в котором я хочу отправить сообщение в службу оповещений, которая обработает сообщение и отправит его в hipchat.

Но я хочу, чтобы сообщение было активным только в течение минуты. Если hipchat не работает (гипотетически), то сообщение не должно отправляться в hipchat.

Я использую kafka, поэтому одна из служб отправляет сообщение в kafka, тогда сообщение используется службой предупреждений (она опрашивает службу ), который обрабатывает сообщение (потребитель kafka), при его обработке проверяет, что текущее время и время сообщения не больше одной минуты. Если нет, он отправляет сообщение в hipchat асинхронно.

Улучшение:

  1. Мне нужен способ создать сообщение самоуничтожения, чтобы я автоматически исчезал через одну минуту. Есть ли способ сделать это с помощью кафки? ИЛИ есть альтернатива лучше, чем kafka (flink / sqs). Если да, то как?

1 Ответ

0 голосов
/ 13 июля 2020

Вы можете использовать конфигурации Kafka topi c retention.ms и delete.retention.ms, как описано в Topi c конфигурациях уровней .

retention.ms должен должен быть установлен на 1 минуту (60000 мс), а delete.retention.ms должен быть установлен на 0 в вашем случае. Таким образом, сообщения будут оставаться в Kafka Topi c в течение одной минуты, прежде чем будут удалены. Однако это также означает, что вы можете потерять сообщения, если вашему потребителю потребуется более одной минуты, чтобы использовать все сообщения (особенно при чтении topi c с начала).

Подробная информация об этих конфигурациях:

delete.retention.ms : количество времени, в течение которого сохраняются маркеры удаления удаления для тем, сжатых в журнале. Этот параметр также дает ограничение на время, в течение которого потребитель должен завершить чтение, если он начинается со смещения 0, чтобы гарантировать получение действительного снимка последнего этапа (в противном случае удаляемые надгробные камни могут быть собраны до того, как они завершат свое сканирование).

retention.ms : эта конфигурация контролирует максимальное время, в течение которого мы будем хранить журнал, прежде чем мы будем отбрасывать старые сегменты журнала, чтобы освободить место, если мы используем «удалить " Политика удержания. Это представляет собой SLA о том, как скоро потребители должны прочитать свои данные. Если установлено значение -1, ограничение по времени не применяется.

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