首页 > 解决方案 > 使用 Spring-Kafka 等待消息的 API

问题描述

我正在使用 Spring Boot 2.0.7 和 Spring-Kafka 来创建请求/回复模式。基本上,前端 UI 向 API 发出请求,该 API 将消息放入请求 Kafka 队列,消息由后端进程处理,完成后将消息放入回复队列。

我想为前端 UI 提供一个等待响应准备好的 api。此时的 UI 将只显示一条处理消息。如果响应不可用(例如 2 分钟后),API 应该只返回消息不可用错误,我们可以指示用户稍后返回。

我对 Spring-Kafka 有点陌生。它是否允许我创建轮询 API?如果是这样,任何示例代码将不胜感激。

标签: spring-bootapache-kafkaspring-kafka

解决方案


它不像轮询主题以获取回复那么简单,因为您必须关联请求/回复。

您可以使用并ReplyingKafkaTemplate.sendAndReceive()继续检查isDone().Future<?>

如果您想自己进行轮询,则必须从消费者工厂创建一个消费者对象。


推荐阅读