Итак, я получил несколько досадных компромиссов с моими потребителями кафки.Я использую 'kafka-node' для своего проекта.Я создал тему.Создано 2 потребителя в группе потребителей на 2 серверах.Для автоматической фиксации установлено значение false.Для каждого сообщения, получаемого моими потребителями, они запускают асинхронный процесс, который может занять от 1 до 20 секунд, когда процесс завершен, потребитель фиксирует смещение. Моя проблема: существует сценарий, в котором Потребитель 1 получает сообщение и занимает 20 секунд.обрабатывать.В середине процесса он получает другое сообщение, для обработки которого требуется 1 с.Он заканчивает обработку второго сообщения, фиксирует смещение, а затем сразу падает.Причинение сбоя предыдущей обработки сообщения.Если я запускаю потребителя, он не читает первое сообщение снова, потому что второе сообщение уже передало offsst, который больше первого.Как я могу избежать этого?
Kafkaconsumer.on('message', async(message)=>{
await SOMETHING_ASYNC_1~20SEC;
Kafkaconsumer.commit(()=>{});
});