在REST Web服务中的resquest /响应方案中使用Kafka

时间:2017-03-26 02:05:09

标签: java spring rest apache-kafka message-queue

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

  1. 客户端调用REST Web服务。
  2. REST Web服务向Kafka发布消息
  3. 在Kafka的另一边,一个应用程序消费该消息并将回复发布回Kafka
  4. (在与#2相同的请求中)REST Web服务侦听Kakfa并等待与请求相对应的响应
  5. REST Web服务将响应返回给客户端
  6. 步骤1到3似乎很容易,但我在第4步中苦苦挣扎。

    我的想法是在每封邮件中传播一个ID,以便我可以检索与请求相对应的响应。

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

1 个答案:

答案 0 :(得分:0)

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

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

那么服务只需要推送到主题“user.myUserName” 然后从Web客户端只需要订阅“user.myUserName”(使用consumergroup配置,这只是为了只读最新消息)...

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

再见,祝你好运。