Restful Microservices的双向通信,通知是否合理?

时间:2017-01-24 13:56:08

标签: rest architecture microservices

许多书籍和文章指出,微服务中的周期通常很糟糕,因为它们引入了相互依赖性,结果导致更大的依赖性,版本控制和部署问题需要解决。

但是,假设有服务 A ,呼叫服务 B ,也假设由于此调用将启动冗长的计算,因此我们不应该使此调用同步。一个可能的解决方案是服务 A 将资源网址传递给服务 B ,这样当 B 计算结果时,它应该将结果发布到在宁静的范例之后给定的URL。所以这个最终资源就像某种回调。这种方法确实可以解决我的问题,但如上段所述,它引入了循环依赖。这个可以吗?如果不是你怎么解决同样的问题?

1 个答案:

答案 0 :(得分:1)

它可以,但不是一个好的设计,因为你可以看到依赖是非常硬编码。

您可以选择使用消息,将请求消息放在一个队列中,将响应消息放在另一个队列中。

通过这种方式,您的通信将是异步的,松散耦合的,并且没有任何服务需要非常具体地了解彼此及其位置/地址。 这也是Reactive Manifesto推荐的沟通方式。