![我是否需要为每个数据库使用 1 个 RDS 群集,或者为所有数据库使用一个 RDS 群集?](https://linux22.com/image/764372/%E6%88%91%E6%98%AF%E5%90%A6%E9%9C%80%E8%A6%81%E4%B8%BA%E6%AF%8F%E4%B8%AA%E6%95%B0%E6%8D%AE%E5%BA%93%E4%BD%BF%E7%94%A8%201%20%E4%B8%AA%20RDS%20%E7%BE%A4%E9%9B%86%EF%BC%8C%E6%88%96%E8%80%85%E4%B8%BA%E6%89%80%E6%9C%89%E6%95%B0%E6%8D%AE%E5%BA%93%E4%BD%BF%E7%94%A8%E4%B8%80%E4%B8%AA%20RDS%20%E7%BE%A4%E9%9B%86%EF%BC%9F.png)
假设我的应用程序将使用 5 个数据库。该应用程序将由 10 万多名用户使用。我计划将 RDS 集群与 Aurora PostgreSQL 结合使用。哪种方式最好?
为每个数据库创建 1 个集群,我最终会得到 5 个集群,我认为这对性能有好处,但成本较高。
或者
创建一个具有足够资源(CPU、RAM 等)的单一集群,其中包含 5 个数据库。
答案1
简单回答:这取决于。 :)
这取决于数据库之间的相互依赖程度。如果每个数据库都由其服务或微服务独立使用,并且您有一些自动化功能来配置微服务,那么通常建议将整个微服务(计算 + 数据库 + 存储)划分开来,并使其完全独立于其他微服务。它更适合 DevOps 模型,其中开发人员不仅负责代码部署,还负责数据库和存储。
但在现实世界中和/或对于单片应用程序和/或只有一个开发团队的情况下,数据库通常是共享的。这有点像老式的本地部署思维,一家公司花大价钱购买一个中央 Oracle RAC,并雇佣一群 DBA 来维持运营。
没有正确答案 - 拥有单独的数据库更“现代”,但如果额外的成本和复杂性不值得,那么一定要使用共享数据库。正如 Tim 所说 - 对性能进行基准测试。