假设我有 5 个数据库要在我的应用程序中使用。该应用程序将被 +100k 用户使用。我计划将 RDS 集群与 Aurora PostgreSQL 一起使用。什么是最好的?
为每个数据库创建 1 个集群,我最终会得到 5 个集群,我认为这对性能有好处,但成本更高。
或者
创建一个具有足够资源(CPU、RAM 等)的单个集群,其中将包含 5 个数据库。
假设我有 5 个数据库要在我的应用程序中使用。该应用程序将被 +100k 用户使用。我计划将 RDS 集群与 Aurora PostgreSQL 一起使用。什么是最好的?
为每个数据库创建 1 个集群,我最终会得到 5 个集群,我认为这对性能有好处,但成本更高。
或者
创建一个具有足够资源(CPU、RAM 等)的单个集群,其中将包含 5 个数据库。
简单的回答:这取决于. :)
这取决于数据库的相互依赖程度。如果每个都由其服务或微服务独立使用,并且您有一些自动化来配置微服务,那么通常建议将整个微服务(计算 + 数据库 + 存储)划分并使其完全独立于其他微服务。它更适合 DevOps 模型,其中开发人员不仅负责代码部署,还负责数据库和存储。
但在现实世界和/或单体应用程序和/或只有 1 个开发团队的情况下,数据库通常是共享的。这是一种旧的内部部署思维方式,公司为中央 Oracle RAC 以及为保持灯火通明的 DBA 大军支付巨额资金。
没有正确的答案 - 拥有单独的数据库更“现代”,但如果额外的成本和复杂性不能保证它,那么一定要使用共享数据库。正如蒂姆所说 - 对性能进行基准测试。