junior
Для чего нужны методы commitSync() и commitAsync()?
Эти методы используются для фиксации (commit) смещений потребителя.
| Метод | Поведение | Плюсы | Минусы |
|---|---|---|---|
commitSync() |
Синхронная фиксация; повторяет попытки до успеха или неисправимой ошибки | Надёжный — offset точно зафиксирован | Блокирует поток, снижает throughput |
commitAsync() |
Асинхронная фиксация; не повторяет попытку при сбое | Быстрый, не блокирует | Менее надёжный — offset может не зафиксироваться |
На собеседовании: распространённый паттерн — использовать
commitAsync()в основном цикле (для скорости) иcommitSync()в блокеfinallyперед закрытием потребителя (для надёжности последнего коммита).