Мы разрабатываем приложение SpringBoot, в котором сообщения генерируются в очередь Kafka и обрабатываются прослушивателями (на нескольких серверах может обрабатываться несколько потоков на каждом сервере).
Когда сообщение обрабатывается успешно,мы хотели бы сделать что-то вроде Acknowledgement.acknowledge()
в Слушателе, чтобы пометить сообщение как обработанное.
Однако, согласно документации: https://docs.spring.io/spring-kafka/api/org/springframework/kafka/support/Acknowledgment.html:
Вызов этого метода подразумевает, чтовсе предыдущие сообщения в разделе уже обработаны
Я вижу, что это вызывает проблему с многопоточностью и условиями гонки ...
Аналогичный вопрос без ответа: SpringКафка безопасен ли поток Acknowledgement.acknowledge?
Итак, я полагаю, я спрашиваю, является ли Acknowledgement.acknowledge()
неправильным способом сделать это, что?Должен быть способ пометить конкретное сообщение (не все смещение) как обработанное ...
Спасибо!