【问题标题】:How to host multiple databases for a micro-service application?如何为一个微服务应用托管多个数据库?
【发布时间】:2021-03-22 17:48:57
【问题描述】:

我想到了一个应用程序,它将使用节点、mongodb + 其他数据库、kubernetes、RabbitMQ、docker 构建并作为前端做出反应。该应用程序将构建在微服务架构中。我们都知道,对于单体应用程序,您只需要一个数据库(MongoDB、MySQL 等),但对于微型应用程序,您可以拥有多个数据库。我的问题是,我是否需要购买多个单独的数据库并将每个服务连接到它们?或者它在微服务设计中是如何工作的。 目前,我有一个示例微服务应用程序,该应用程序使用 docker 在我的本地计算机上运行,​​并且它连接到多个数据库或数据库/服务。我只是想了解这如何与 DigitalOcean 或 AWS 等公司合作。

对此的任何意见都会很棒。

我只是想弄清楚在以后的生产中这将如何工作,以便我了解成本和部署。我已经对数字海洋、AWS 等进行了一些研究,但我仍然可以弄清楚它们是如何工作的。

提前致谢。

【问题讨论】:

    标签: node.js microservices multiple-databases


    【解决方案1】:

    您不需要运行多个 DBMS 实例。您可以轻松地在一台虚拟机上运行一个 MongoDB。

    当您进行扩展时,您可能希望让单独的机器为您的服务运行数据库实例,但一开始您可能只是在逻辑上将其分开,以确保您不会使用数据库在服务之间进行通信。

    Chris Richardson 在他的 microservices.io 网站上说:

    There are a few different ways to keep a service’s
    persistent data private. You do not need to 
    provision a database server for each service. 
    For example, if you are using a relational database 
    then the options are:
    
    - Private-tables-per-service – each service owns a
    set of tables that must only be accessed by that
    service
    
    - Schema-per-service – each service has a database
    schema that’s private to that service
    
    - Database-server-per-service – each service has
    it’s own database server.
    

    来源:https://microservices.io/patterns/data/database-per-service.html

    【讨论】:

    • 写得很好。
    • 只是关于我的研究的一个注释,我认为当您购买 mongodb 服务器时,您可以运行多个数据库,我将很快对此进行探索,并且我可以使用一个数据库,然后我可以迁移到多个数据库。谢谢你的回复队友:)
    猜你喜欢
    • 2020-07-24
    • 2021-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-25
    • 2016-11-05
    相关资源
    最近更新 更多