在 REST Web 服务内的重新任务/响应场景中使用 Kafka



我目前正在构建一个REST Web服务,该服务需要以请求/响应模式与Kafka进行通信。(我知道卡夫卡并不是真正为此而设计的(。

  1. 客户端调用 REST Web 服务。
  2. REST Web 服务向 Kafka 发布消息
  3. 在 Kafka 的另一端,应用程序使用消息并将响应发布回 Kafka
  4. (在与 #2 相同的请求中(REST Web 服务侦听 Kakfa 并等待与请求对应的响应
  5. REST Web 服务将响应返回给客户端

步骤 1 到 3 似乎很容易,但我正在努力完成第 4 步。

我的想法是在每条消息中传播一个 ID,以便我可以检索与请求对应的响应。

但是,我很难弄清楚如何在 REST Web 服务上设置侦听器。侦听器如何将消息返回给控制器?

我认为最好为每个用户创建一个主题,然后用户可以向另一个服务发送消息,这样的消息是这样的:

{
user:"myUserName"
data:"data of message"
}

那么服务只需要推送到主题"user.myUserName"然后从 Web 客户端只需要订阅"user.myUserName"(使用消费者组配置,这仅用于读取最新消息(......

我认为最好的方法是实现 websocket,然后以这种方式推送/读取;)

再见,美好的一天。

最新更新