Mongodb 将数据库查询作为微服务API

Mongodb 将数据库查询作为微服务API,mongodb,microservices,Mongodb,Microservices,我们目前正在使用直接DB连接从脚本中查询mongodb并检索所需数据 建议/最佳做法是将数据库中的数据检索作为一项微服务。直到它没有:) 服务需要从某处获取数据,而数据库是一个良好的开端。如果您有高负载,您可能会发现需要在中间添加一个缓存,请参阅Instagram工程中的此帖子。 编辑(评论后) 一般来说,一个服务应该拥有自己的数据库,而其他服务不应该仅通过其API直接访问另一个数据库服务。其思想是保持服务自治,并使它们能够独立地发展 这取决于微服务的大小,现在总是可行的,因为它可以使服务的开销

我们目前正在使用直接DB连接从脚本中查询mongodb并检索所需数据

建议/最佳做法是将数据库中的数据检索作为一项微服务。

直到它没有:)

服务需要从某处获取数据,而数据库是一个良好的开端。如果您有高负载,您可能会发现需要在中间添加一个缓存,请参阅Instagram工程

中的此帖子。 编辑(评论后) 一般来说,一个服务应该拥有自己的数据库,而其他服务不应该仅通过其API直接访问另一个数据库服务。其思想是保持服务自治,并使它们能够独立地发展

这取决于微服务的大小,现在总是可行的,因为它可以使服务的开销更多地体现在它提供的实用程序中(我称之为这个)。此外,如果你有很多服务,你不想让每一个都与任何其他人交谈(即使不是通过数据库),因为你只是得到了一个巨大的混乱。在我看来,应该有明确的逻辑边界(服务或微服务),然后在每个这样的逻辑服务中,您可能会发现有多个“部分”(我称之为“部分”)是有意义的例如,他们有不同的扩展需求或不同的适用技术等。当您以这种方式设置时,aspects可以访问相同的数据库,而服务不应该访问(并且您仍然可以克服混乱:)


最后要考虑的一件事——谁说API只是一个REST API,您可以在属于另一个服务的数据上添加视图,只要您将其视为一个API(安全性、版本控制等),您也可以让其他服务访问它

我要问的场景是该服务使用另一个服务访问数据库。(希望数据库(mongodb)已经有了良好的缓存服务)是否需要第二层服务(api)来访问数据库?