Kafka Нет подтверждения в качестве аргументаJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Kafka Нет подтверждения в качестве аргумента

Сообщение Anonymous »

мы пытаемся реализовать подтверждение Kafka в проекте Java Spring. Без подтверждения мы успешно получаем и читаем сообщение, но когда мы добавляем подтверждение в метод, мы получаем эту ошибку:
org.springframework.kafka.listener.ListenerExecutionFailedException: invokeHandler Failed; nested exception is java.lang.IllegalStateException:
No Acknowledgment available as an argument, the listener container must have a MANUAL AckMode to populate the Acknowledgment.;
nested exception is java.lang.IllegalStateException:
No Acknowledgment available as an argument, the listener container must have a MANUAL AckMode to populate the Acknowledgment.
Caused by: org.springframework.messaging.converter.MessageConversionException: Cannot convert from
[proto.DeviceModelOuterClass$DevModel] to
[org.springframework.kafka.support.Acknowledgment] for GenericMessage [payload=sender: "12345678-1234-1234-1234-123456789102"

Способ реализации подтверждения аналогичен описанию в Kafka API:
@KafkaListener(
id = Constants.TOPIC_LISTENER,
topics = "${info.dev.name}",
autoStartup = "false",
properties = {
"value.deserializer=com.cit.iomt.core.DevModelDeserializer",
"key.deserializer=org.apache.kafka.common.serialization.UUIDDeserializer"
})
public void listenToUpdateTopic(@Payload DevModel message, Acknowledgment a) throws Exception {
LOG.info(Constants.READ_KAFKA_TOPIC, message);
a.acknowledge();}

И в файле свойств у нас есть это:
spring.kafka.listener.ack-mode=manual_immediate
spring.kafka.consumer.enable-auto-commit=false
spring.kafka.consumer.auto-offset-reset=earliest


Подробнее здесь: https://stackoverflow.com/questions/657 ... n-argument
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»