Apache kafka微服务之间的消息通信

时间:2017-07-08 16:59:58

标签: apache-kafka

我有一个问题,我想用kafka队列来解决。 我需要处理一些结果,然后将其返回给用户。

enter image description here

如图所示,Rest Service向Calculator Service请求了一些内容。

这两项服务都有一个kafka 消费者和一个kafka 生产者

  • 其他服务收到请求,然后在 toAdd 队列中生成一条消息,然后继续使用 fromAdd 队列,直到收到一个值。

  • 计算器服务不断使用 toAdd 队列,当某些消息出现时,它会将两个值相加,然后在 fromAdd 队列中生成一条消息。

有时,其他服务会从队列或多条消息中接收旧消息。 我发现了一些关于幂等配置的东西,但我不知道如何正确实现。

该图是使用kafka进行两个或多个服务之间通信的正确方法吗?

有人能举个例子吗?

感谢。

2 个答案:

答案 0 :(得分:3)

  

该图是使用kafka进行两个或多个服务之间通信的正确方法吗?

如果你的意思是"让两个或更多服务通过Kafka间接沟通是否有意义?",那么是的,确实如此。

  

有人能举个例子吗?

这里有一些很好的指示,包括例子:

答案 1 :(得分:1)

回答你的问题:这种沟通没有问题。

现在回顾其他部分...... 请记住,这是一次异步通信,因此您不应该打开HTTP连接并让该服务的用户等待响应。这不是要走的路。您可以通过多种方式解决此问题。例如:您可以使用WebSockets,您可以通过回复等方式向用户发送电子邮件/短信/闲暇消息等。