通过使用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
被抛出到客户端。