Разница между async и sync методами в Kafka для работы с коммутацией смещений заключается в подходе к фиксации смещений. kafka-school.ru
Синхронная фиксация смещений (метод commitSync()
) — это автоматическая фиксация текущего смещения записи в момент её появления. kafka-school.ru Как только смещение успешно фиксируется, выполнение процедуры завершается. kafka-school.ru В случае сбоя синхронной фиксации генерируется исключение, и фиксация возобновляется, выполняясь до тех пор, пока смещение не зафиксируется. kafka-school.ru
Асинхронная фиксация смещений (метод commitAsync()
) — это фиксация, которая выполняется независимо (параллельно) от выполнения остальных функций приложения и не требует обязательного подтверждения факта успешной фиксации от Kafka-сервера. kafka-school.ru В случае возникновения ошибочной ситуации (например, истечение времени ожидания или временный сбой Kafka-сервера), асинхронная фиксация не станет повторять попытку фиксации смещения текущей записи, а сразу перейдёт к фиксации смещения следующей доступной (или поступившей) записи. kafka-school.ru
Таким образом, синхронная фиксация подходит для ситуаций, где важно обеспечить согласованность данных, а асинхронная — для случаев, когда допустима некоторая несогласованность данных и важна низкая задержка. stackoverflow.com