我刚开始使用微服务架构,并研究如何在消息传递总线之上构建它。
现在有一个问题困扰着我 - 如何处理来自用户的简单查询请求,或者当微服务需要来自其他微服务的某些数据来提供响应时? (f.e.getOrderList,或getUserNameById)
我知道RabbitMQ中有一个RPC模式,但每个人都强烈建议避免这种情况(因为它带来了时间耦合)并改为使用异步通信。
答案 0 :(得分:1)
是的,您必须使用异步通信才能确保服务暂时解耦。这是一个good series of articles,深入解释了该设计决策背后的推理。
另外,考虑阅读CQRS/ES approach以设计微服务,当我第一次发现它时,它让我大开眼界。