gpt4 book ai didi

java - 如何将 RESTful 服务器与 Apache Kafka 结合起来?

转载 作者:行者123 更新时间:2023-12-02 10:23:03 25 4
gpt4 key购买 nike

由于缺乏知识,我遇到了问题。你能帮我解决一下吗?

我有 2 台服务器:

  1. RESTful 微服务
  2. 与数据库交互的微服务

第一个微服务在 GET .../{id} 中包含一个端点(为简单起见,将其设为 Controller)返回类型为 DeferredResult<String> 的类.

@GetMapping(/{id})
public DeferredResult<String> get(@PathVariable("id") final String id) {
final DeferredResult<String> deferredResult = new DeferredResult<>();
service.get(id, deferredResult);
return deferredResult;
}

第一台和第二台服务器通过 Apache Kafka 相互交互:

  1. 第一个服务器获得 GET请求并调用一个服务,该服务在名为“getData”的主题中生成消息“{id}”
  2. 第二台服务器在 @KafkaListener 的帮助下使用主题中的“{id}”
  3. 2nd 检索必要的数据并将其生成在主题“returnData”中(当然,数据包含请求的 {id})
  4. 第一个服务器在 @KafkaListener 的帮助下使用该消息

一切都是以异步方式完成的。

第一台服务器收到数据后,需要对其进行响应(.setResult(data)DeferredResult<String> 实例)。

这意味着我需要以某种方式将从 Kafka 消耗的数据与正确的 DeferredResult<String> 相匹配。实例。

在这一点上,我的方法似乎没有任何结果。如何保持连接打开并在使用来自 Kafka 的数据后将其返回到正确的连接?

最佳答案

我会避免这种方法。无法保证您的命令一定会被执行,但如果会执行,则无法保证响应时间。

相反,根据您的主题的事件构建一个“投影”(例如,持久存储/数据库),并通过 REST API 以正常方式从中读取。

但是,“写入”端可以通过在您的 Kafka 主题上发出一条消息(最终将被上述投影构建器拾取)来对您的 POST 请求使用react

关于java - 如何将 RESTful 服务器与 Apache Kafka 结合起来?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54186997/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com