我正在处理微服务之间的通信。
例如(虚构的例子,仅供说明):
- 微服务A - 存储用户(getUser等)
- 微服务B - 存储订单(createOrder等)
现在,如果我想要从客户端应用添加新订单,我需要知道用户地址。因此,请求将如下所示:
客户端 -> 微服务B(为用户ID 5创建订单)-> 微服务A(使用ID 5获取用户)
微服务B将使用来自用户微服务的详细信息(地址)创建订单。
需要解决的问题:如何有效地处理微服务A和微服务B之间的通信,因为我们必须等待响应返回?
选项:
- 使用RestAPI。
- 使用AMQP,如RabbitMQ,并通过RPC解决此问题。(https://www.rabbitmq.com/tutorials/tutorial-six-dotnet.html)
我不知道哪种方案对性能更好。通过RabbitMQ进行调用是否更快,还是使用RestAPI? 什么是微服务架构的最佳解决方案?