Смещение фиксации сообщает брокеру , что потребитель успешно обработал соответствующее сообщение. Сам потребитель будет знать о своем прогрессе (за исключением запуска потребителя, где он получает свое последнее подтвержденное смещение от брокера).
На шаге 5 в вашем описании смещение фиксации выполняется. Итак:
- Брокер не знает, что 0-9 записей были обработаны
- Потребитель сам прочитал сообщения и поэтому он знает, что они были прочитаны 0-9 сообщений. Таким образом, он будет знать, что дальше следует читать 10-е.
Возможный сценарий ios
- Допустим, фиксация не выполняется для (0-9). Ваша следующая партия, скажем (10-15), обработана и зафиксирована успешно, тогда никакого вреда не будет. Поскольку мы отмечаем брокеру, что обработка до 15 завершена.
- Допустим, фиксация завершилась неудачно для (0-9). Ваша следующая партия (10-15) обрабатывается, и перед фиксацией потребитель отключается. Когда ваш потребитель возвращается к работе, он получает свое состояние от брокера (у которого нет фиксации ни для одного из пакетов). Таким образом, он начнет чтение с 0-го сообщения.
Вы также можете придумать несколько других сценариев ios. Я полагаю, что суть в том, что важность фиксации станет очевидной, когда ваш потребитель будет перезапущен по какой-либо причине и получит последнее обработанное смещение от брокера kafka.