我正在处理微服务之间的通信。
例如(虚构的例子,只是为了说明):
现在,如果我想从客户端应用程序添加新订单,我需要知道用户地址。所以请求会是这样的:
Client -> Microservice B (createOrder for userId 5) -> Microservice A (getUser with id 5)
微服务 B 将使用来自用户微服务的详细信息(地址)创建订单。
需要解决的问题:如何有效地处理微服务 A 和微服务 B 之间的通信,因为我们必须等到响应回来?
选项:
不知道什么对性能更好 .通过 RabbitMQ 或 RestAPI 调用更快吗? 微服务架构的最佳解决方案是什么 ?
最佳答案
在您的情况下,使用直接 REST 调用应该没问题。
选项 1 使用 Rest API:
当您需要同步通信时。比如说你的情况。这个选项很合适。
选项 2 使用 AMQP:
当您需要异步通信时。例如,当您的订单服务创建订单时,您可能希望通知产品服务减少产品数量。或者您可能希望通知用户服务已成功下达用户订单。
我强烈建议您查看 http://microservices.io/patterns/index.html
关于rest - 微服务之间的通信——请求数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50454109/