restapi的kafka实现

p5cysglq  于 2021-06-07  发布在  Kafka
关注(0)|答案(2)|浏览(373)

我有一个使用springboot构建的微服务。负载平衡器有一个固定的超时时间,这个服务执行一些大型计算,因此当我从ui调用它时,响应就会超时。
我认为SpringKafka非常适合这个场景,它可以帮助我将我的响应排队到kafka生产者中,然后从消费者服务中读取它们。但是我们为整个服务创建的kafka主题是不变的,那么我如何从这个队列中检索与从ui发出的特定请求相对应的结果(因为同一个服务将有多个请求)。另外,如果有一些很好的例子,这种实现将非常有帮助

9udxz4iz

9udxz4iz1#

对于apachekafka,有一个openpull请求向spring添加请求/应答语义。
这个 sendAndReceive 方法返回 ListenableFuture 在收到回复时完成。

7jmck4yq

7jmck4yq2#

你要找的基本上是两件事
创建一个管道来处理所有异步请求。
跟踪系统来跟踪你的工作状态。
因此,您应该为您在kafka队列中推送的每个请求分配一个trackingid,并且随着通过管道的消息流更新与该trackingid对应的状态。为了知道确切的状态,你应该公开一个api(你可以链接到你的ui),它将给出你的作业的确切状态。

相关问题