我希望将MongoDB作为分布式数据库来实现,但是我找不到好的教程。每当我在MongoDB中搜索分布式数据库时,它都会给我提供切片的链接,所以我很困惑它们是否是相同的东西?
我希望将MongoDB作为分布式数据库来实现,但是我找不到好的教程。每当我在MongoDB中搜索分布式数据库时,它都会给我提供切片的链接,所以我很困惑它们是否是相同的东西?
secondaries
和1个primary
组成的系统。secondaries
共享读取压力,而primary
则负责写入。它是一个自动故障转移系统,因此当primary
停机时,其中一个secondaries
会接管工作并成为新的primary
。Shards
共享写入和读取压力。也就是说,数据被分布到不同的Shards
中。每个分片可以由一个复制
系统组成,并且自动故障转移的工作如上所述。复制
,因为它简单且基本上足够适用于大多数场景。一旦不够用,您可以选择从复制转换到分片。关于分布式数据库的一些看法:
在90年代初期,许多应用程序都是基于桌面的,并且有一个本地数据库,其中包含MB/GB级别的数据。
现在随着基于Web的应用程序的出现,可能会有数百万用户使用和存储其数据,这些数据可能达到GB/TB/PB级别。将所有这些数据存储在单个服务器上在经济上是昂贵的,因此有一个服务器集群(或普通硬件),跨越这些服务器水平分区数据。分片是数据水平分区的另一个术语。 例如,您有一个包含100行的Customer表,您想将其划分为4个服务器,则可以选择基于'key'的分片方式,其中客户将分配如下:SHARD-1(1-25),SHARD-2(26-50),SHARD-3(51-75),SHARD-4(76-100)
分片可通过以下2种方式完成:
基于哈希
基于键