我有一个问题,我想用kafka队列来解决。 我需要处理一些结果,然后将其返回给用户。
如图所示,Rest Service向Calculator Service请求了一些内容。
这两项服务都有一个kafka 消费者和一个kafka 生产者。
其他服务收到请求,然后在 toAdd 队列中生成一条消息,然后继续使用 fromAdd 队列,直到收到一个值。
计算器服务不断使用 toAdd 队列,当某些消息出现时,它会将两个值相加,然后在 fromAdd 队列中生成一条消息。
有时,其他服务会从队列或多条消息中接收旧消息。 我发现了一些关于幂等配置的东西,但我不知道如何正确实现。
该图是使用kafka进行两个或多个服务之间通信的正确方法吗?
有人能举个例子吗?
感谢。
答案 0 :(得分:3)
该图是使用kafka进行两个或多个服务之间通信的正确方法吗?
如果你的意思是"让两个或更多服务通过Kafka间接沟通是否有意义?",那么是的,确实如此。
有人能举个例子吗?
这里有一些很好的指示,包括例子:
答案 1 :(得分:1)
回答你的问题:这种沟通没有问题。
现在回顾其他部分...... 请记住,这是一次异步通信,因此您不应该打开HTTP连接并让该服务的用户等待响应。这不是要走的路。您可以通过多种方式解决此问题。例如:您可以使用WebSockets,您可以通过回复等方式向用户发送电子邮件/短信/闲暇消息等。