由于大规模可扩展性的可能性,Shared Nothing Architecture似乎很流行。进程没有任何共享。任何非平凡的应用程序都会有一些状态。理想情况下,此状态不应位于运行进程的硬件中。原因是,我们希望如果硬件/进程崩溃,客户端应该能够在新进程甚至是新硬件中重新运行它。这个州在哪里?让我们尝试某种数据库.. NoSql Redis,Mongo或RDBMS Oracle ..任何东西。现在IMO不再是Shared Nothing,因为数据库成了瓶颈。现在,shared nothing at wikipedia给出了一个小提示,即使数据库也没有使用分片共享!我的q是..如果有n个进程,那么会有n个数据库实例吗?我相信每个进程都应该在它自己的硬件或虚拟机管理程序中运行。因此,对于n个进程和n个相应的数据库,应该需要2 * n个硬件(不包括数据库中所需的复制)。毫无疑问,维基百科链接指出,对数据库的连接查询将是昂贵的。但缩放的可能性是无限的。我的假设是否正确?如果,我需要增加从n到m的进程数。那么n数据库发生了什么。我应该增加到m个数字并进行重新分片吗?现在添加具有自动缩放功能的负载均衡器。这意味着流程可以扩展和缩小。现在我们如何将无共享数据库与这些进程匹配?谢谢。
'n'数据库实例必须在'n'个独立服务器上运行,以实现完全无共享设置和无限水平扩展。我对如何使用Oracle进行分片有一些了解。让我尝试回答一些你在Oracle分片中提出的问题。我建议通过Oracle Sharding了解下面提到的几个术语。