【发布时间】:2018-08-30 01:27:25
【问题描述】:
Shared Nothing 架构似乎很流行,因为它具有大规模可扩展性的可能性。进程不共享任何内容。 任何非平凡的应用程序都会有一些状态。理想情况下,此状态不应出现在运行进程的硬件中。原因是,我们希望如果硬件/进程崩溃,客户端应该能够在新进程甚至新硬件中重新运行它。 这个状态去哪儿了?让我们尝试某种数据库.. NoSql Redis、Mongo 或 RDBMS Oracle.. 任何东西。现在 IMO 这不再是 Shared Nothing,因为数据库成为瓶颈。 现在shared nothing at wikipedia 给出了一个小提示,即使使用分片也不共享数据库!我的q是..如果有n个进程,会有n个数据库实例吗?我相信每个进程都应该在它自己的硬件或管理程序中运行。因此,对于 n 个进程和 n 个相应的数据库,应该需要 2*n 个硬件(不包括数据库中需要的复制)。正如维基百科链接所述,毫无疑问,对数据库的连接查询会很昂贵。但是扩展的可能性是无限的。 我的假设正确吗?如果,我需要将进程数从 n 增加到 m。那么 n 个数据库发生了什么。我应该增加到 m 个数字并重新分片吗? 现在添加具有自动缩放功能的负载均衡器。这意味着流程可以按比例放大和缩小。我们现在如何将无共享数据库与这些进程相匹配?谢谢。
【问题讨论】:
标签: database architecture nosql