微服务资源发现

时间:2016-08-05 13:32:22

标签: microservices

有很多文章讨论了在基于微服务的系统中维护中央注册表的重要性,以及注册和执行发现的不同策略。但是,所有文章都围绕着发现其他微服务。

当微服务需要访问网络上可用的资源(例如数据库)时,服务是否应该从注册表中检索数据库位置?

如果是,在数据库示例中只有client discovery pattern对我有意义,因为有必要创建连接池。

对此有何想法?

编辑:在上面的例子中,数据库是微服务的一部分。

1 个答案:

答案 0 :(得分:2)

微服务内部

如果可能,微服务不应依赖于任何外部资源,这意味着数据库应位于同一服务中。但是,如果由于某种原因必须将数据库作为外部资源,并且不能直接向其提供连接字符串。我想你会使用客户端发现模式,但后来我觉得它不再是微服务,因为它们实际上不是自包含的。

微服务之间

在我看来,你应该保持你的微服务自给自足。它们不应该依赖于“数据库”服务,而是如果消息总线上有可用服务的信息,它可以采取行动。如果该信息来自数据库,则与该服务无关。但这需要某种消息队列。

如果你必须依赖http请求或我同意的其他非集中式通信,那么客户端发现模式似乎是合适的。