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