Kafka Compacted Topic, опубликуйте удаленный ключ - PullRequest
0 голосов
/ 30 августа 2018

Попытка обернуть голову вокруг семантики сжатой темы kafkas, и возникает конкретный вопрос: что произойдет, когда я переиздаю ранее удаленный ключ:

  1. "a" -> "значение"
  2. "a" -> null
  3. "a" -> "новое значение"

Где (3) может произойти вскоре после (2), т. Е. До того, как удаляется надгробная плита.

Я надеюсь, что (3) будет сохранено.

1 Ответ

0 голосов
/ 30 августа 2018

уплотнение означает, что kafka в конечном итоге сохранит только последнее значение для определенного ключа. Это не является жестким требованием, так как сжатие происходит не в режиме реального времени, а в пакетном режиме, запускаемом время от времени (вы можете настроить задержку). В режиме сжатия Кафка никогда не удалит все значения ключа.

Установка значения null для клавиши действует как значение других. Кафка через некоторое время удалит предыдущий ключ / значение, но сохранит это значение null, пока не будет нажата новая величина.

Если вы установите два значения вскоре одно за другим, оба значения останутся в кафке до следующей очистки.

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

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