Microservices 微服务资源发现

Microservices 微服务资源发现,microservices,Microservices,有很多文章讨论了在基于微服务的系统中维护中央注册中心的重要性,以及注册和执行发现的不同策略。然而,所有的文章都围绕着发现其他微服务展开 当微服务需要访问网络上可用的资源(例如数据库)时,该服务是否应该从注册表中检索数据库位置 如果是的话,在数据库示例中,我只觉得有必要创建连接池 有什么想法吗 编辑:在上面的示例中,数据库是微服务的一部分。在微服务内部 如果可能,微服务不应依赖于任何外部资源,这意味着数据库应位于同一服务内。但是,如果出于某种原因必须将数据库作为外部资源,并且不能直接向其提供连接字

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

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

如果是的话,在数据库示例中,我只觉得有必要创建连接池

有什么想法吗

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

在微服务内部 如果可能,微服务不应依赖于任何外部资源,这意味着数据库应位于同一服务内。但是,如果出于某种原因必须将数据库作为外部资源,并且不能直接向其提供连接字符串,则。我想您会使用客户机发现模式,但我觉得它不再是微服务,因为它们不会真正独立

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


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

可能我的问题不清楚(我编辑了问题以澄清)。数据库是微服务的一部分。@rgoncalves-如果数据是微服务的一部分,则根据定义它与该数据耦合。为什么它需要发现它?如果数据是微服务的外部数据(例如公共映射表),那么正如peternyc所说,客户端发现模式是合适的。我想你们都是对的。应将与数据库或任何其他支持服务相关的信息视为配置(反过来,应将其外部化)。现在情况更清楚了