使用ReplyingKafkaTemplate进行异常管理

时间:2019-07-09 11:57:23

标签: apache-kafka

通过使用ReplyingKafkaTemplate,如何将服务器端KafkaListener引发的异常发回客户端?

客户端:

...
ProducerRecord<String, Object[]> record = new ProducerRecord<>(topic, cmdArgs);

RequestReplyFuture<String, Object[], Object> requestReplyFuture = replyingKafkaTemplate.sendAndReceive(record);

ConsumerRecord<String, Object> consumerRecord = (ConsumerRecord<String, Object>) requestReplyFuture.get();

Object value = consumerRecord.value();

服务器端:

@KafkaListener(
    topics = "${kafka.topic}",
    containerFactory = "concurrentKafkaListenerContainerFactory"
)
@SendTo()
public Object listen(Object[] cmdArgs) {
    throw new RuntimeException("Test");
}

似乎只能通过使用ErrorHandler在服务器端管理异常,而只有Reply timed out exception被抛出到客户端。

0 个答案:

没有答案