Kafka 休息实施 API

Kafka Implementation for Rest API

我有一个使用 spring 引导构建的微服务。负载均衡器有一个固定的超时时间,并且此服务会进行一些大型计算,因此当我从 UI.

调用它时,响应会超时

我认为 Spring Kafka 非常适合这种情况,它可以帮助我将响应排队到 kafka 生产者中,然后从消费者服务中读取它们。但是我们创建的 kafka 主题对于整个服务来说是不变的,那么我如何从这个队列中检索与 UI 发出的特定请求相对应的结果。(因为同一服务会有多个请求).另外,如果这个实现有一些很好的例子将会非常有帮助

你要找的基本上是两个东西

  1. 正在创建一个管道来处理您所有的异步请求。

  2. 跟踪系统跟踪您的工作状态。

因此,您应该为您在 Kafka 队列中推送的每个请求分配一个 trackingId,并且随着消息流过管道更新与该 trackingId 对应的状态。为了知道确切的状态,你应该公开一个 API(你可以 link 和你的 UI)这将给出你工作的确切状态。

有一个 open pull request 可以为 Apache Kafka 添加 request/reply 语义到 Spring。

sendAndReceive方法returns一个ListenableFuture收到回复时完成。