学习总结 -- Week 6
本周延续上周话题,讨论分布式系统中,数据库集群的部署与优化,CAP定理以及在nosql数据库中的应用。
数据库集群部署与优化
以MySQL数据库为例,讲解了数据库复制的方法。
主从复制。一个主数据库,搭配一个从数据库,数据读写均发生在主服务器,从服务器通过监视进程从主服务器上读取最新的二进制log,然后在从服务器上“重放”log上的数据库变更操作,实现数据同步。
一主多从复制。一主多从模式与一主一从模式的复制方式相同。只是将读写功能进行了隔离。主服务器负责写入数据。然后数据被复制到各从服务器。从服务器负担所有的读操作。这种方式可以将读写分离,对于写少读多类型的需求,可以提供很好的数据吞吐支撑。
主主复制。两个服务器都是主服务器,都接受数据写入。同时两个服务器都启用数据复制进程从另一台服务器复制数据,并将新数据更新到本服务器。这种集群模式适合大规模数据写入的场景,使得数据写入压力能被均衡地分散到各数据库。
数据分片。包含垂直分片和水平分片两种方式。老师主要讲解了水平分片的方式与方法。包括硬编码实现数据分流,使用阿里的Cobar中间件实现数据分片。
数据库集群部署。略
CAP定理
CAP定理是分布式系统数据一致性设计方案的指导定理。主要意思是在一致性,可用性以及网络分片容错性三者中,我们最多只能同时满足其中两个要求。具体定理阐述及例子可参考Wiki:https://en.wikipedia.org/wiki/CAP_theorem
数据一致性以及NoSql数据库的类型
由CAP定理引申了如何实现数据一致性的问题。由于NoSql数据库追求性能与可扩展性,即满足CAP中的可用性和分片容错性,使得NoSql数据库无法满足一致性要求。退而求其次,NoSql数据库以“最终一致”的方式来保障分布式数据库的数据一致性。
BASE:
Basic Availability 基本可用。 指系统在出现不可预知错误时,允许部分损失可用性。
Soft state 软状态。指允许系统的数据存在中间状态,即允许数据在节点之间同步时存在延时。
Eventually consistency 最终一致性。指系统的数据在等待足够时间之后,各个节点之间的数据将最终达成一致。
PAXOS算法
课程最后并介绍了保证分布式系统一致性的PAXOS算法,这部分不是很懂,暂且记下,以后有机会再补课吧。
https://en.wikipedia.org/wiki/Paxos_(computer_science)
版权声明: 本文为 InfoQ 作者【吴炳华】的原创文章。
原文链接:【http://xie.infoq.cn/article/04fbb33a2641b40b5d9a3a035】。文章转载请联系作者。
评论