分布式数据

把数据分布到不同的机器上的原因:

  • 可扩展性
    当数据量过大或者读数据负载大或者写数据负载大时,一台机器可能不够用了。

  • 容错性/高可用性
    当一台或者几台机器失效时,通过冗余多台,可以实现高可用性。

  • 延迟
    多地备份可以减小距离远的用户的请求延迟。

扩展以达到高负载

如果你只是想要处理更高的负载,最简单的办法就是:买买买。买性能更好的机器。这种方法通常被称为 垂直扩展。这种方式的问题是:

  • 价格不是线性的
  • 器大小不是线性的
  • 容错性小

啥都不分享架构(Shared-Nothing Architectures)

又称为 水平扩展

在这种模型下,每台机器(或者虚拟机)都被称为一个节点。每个节点独立地使用自己的硬件资源,节点之间的协调都是在软件层面通过网络解决。

副本 vs 分区

把数据分布到不同机器上有两种常见的方式:

  • 副本
    把相同的数据放在不同的机器上。这样提供了冗余性:当一些节点不可用,整个服务依然可用。

  • 分区
    把一个大的数据集分成小的数据集并且把这些小的数据集分发到不同的机器上。

接下来就要讲这些哦。