1.6 本章小结
本章介绍了分布式系统基础知识,从整体上学习了分布式系统的架构。在1.1节中,我们简要说明了分布式系统的需求和应用场景,以及分布式系统的优点:更大的灵活性、可靠性、提高速度、地理分布。此外,我们还对分布式的模型架构进行了总结:客户端-服务器、手机网络、对等网络等。需要强调的是,相比于中心化系统,分布式系统具有许多新特性:可扩展性、并发性、可用性/容错性、透明度、异构性、复制。在1.2节中,我们对分布式系统的设计目标进行了介绍,目标可归类为4种:一致性、可用性、分区容错性、可扩展性。我们对这4种目标进行了详细的讨论。在1.3节中,我们学习了分布式系统中的数据模型、对比介绍了关系模型、文档模型、图状数据模型三种目前常用的数据模型,并分析它们在不同使用场景下的优劣。它们在各自的目标领域中都足够优秀,也有各自的优势。在1.4节中,我们介绍了分布式系统中的数据存储方式,我们从最基本的存储单元(光盘、磁盘、闪存、主存、缓存)进行介绍,它们有各自的应用场景,需要根据实际需求和条件进行选择。其中,闪存以下为非易失性存储,为了保证数据的安全必须把数据写入非易失性存储中。此外,我们还介绍了主流的RAID方案,从原理、应用以及场景选择三个方面进行了介绍。对于数据库内部的数据结构,我们也进行了简单说明,组织关系数据库有两种方法,即面向行和面向列,面向行的数据库创建了传统的数据库管理系统来存储数据,从行存储数据库中读取面向行的数据库在检索一行或一组行时速度很快,但是在执行聚合时,它会将额外的数据(列)带入内存,这比仅选择执行聚合的列要慢;面向列的数据库管理系统或列式数据库管理系统,它按列而不是按行存储数据表,好处包括仅在查询列子集时更有效地访问数据(通过消除读取不相关列的需要),以及更多数据压缩选项。在1.5节中,我们对数据冗余与副本进行了学习,这是分布式系统实现高可用、高性能、一致性的核心。数据分布在多个节点上有两种常见的方式:复制和分区。数据复制为在几个不同的节点上保存数据的相同副本,可能放在不同的位置,副本被指定为领导者,也称为主库。当客户端要向数据库写入数据时,它必须将请求发送给该领导者,其会将新数据写入其本地存储,通常情况下,单领导者复制都配置为完全异步。