高性能架构模式
- 互联网业务兴起之后,海量用户加上海量数据的特点,单个数据库服务器已经难以满足业务需要,必须考虑数据库集群的方式来提高性能。高性能数据库集群的第一种方式是“读写分离”,第二种方式是“数据库分片”
- 读写分离架构
- 读写分离的基本原理是将数据库读写操作分散到不同的节点上
- 读写分离的基本实现
- 主库负责处理事务性的增删改查,从库负责处理查询操作,能够有效的避免由数据库更新导致的行锁,使得整个系统的查询性能得到极大的改善
- 读写分离是根据SQL语义的分析,将读操作和写操作分别路由至主库与从库
- 通过一主多从的配置方式,可以将查询请求均匀的分散到多个数据副本,能够进一步的提升系统的处理能力。
- 使用多主多从的方式,补单能够提升系统的吞吐量,还能够提升系统的可用性,可以达到在任何一个数据库宕机,甚至磁盘物理损坏的情况下仍然不影响系统的正常运行
- CAP理论
- CAP理论(CAP theorem)又被称作布鲁尔定理(Brewer's theorem),是加州大学伯克分校的计算机科学家埃里克.布鲁尔(Eric Brewer)在2000年ACM PODC上提出的一个猜想。
- 在一个分布式系统中,当涉及读写操作时,只能保证一致性(Consistence)、可用性(Availability)、分区容错性(Partition Tolerance)三者中的两个,另外一个必须牺牲
- C一致性:对某个指定的客户端来说,读操作保证能够返回最新的操作结果
- A可用性:非故障的节点在合理的时间内返回合理的响应
- P分区容灾性:当出现网络分区后,系统能够继续运行
- CAP特点
- 在实际设计过程中,每个系统不可能只处理一种数据,而是包含多种类型的数据,有的数据必须选择CP,有的数据必须选择AP,分布式系统理论上不可能选择CA架构
- CP:如下图所示,为了保证一致性,当发生分区线程后N1节点的数据已经更新到y,但由于N1和N2之间的复制通道中断,数据y无法同步到N2,N2节点上的数据还是x。这时客户端C访问N2时,N2需要返回Error,提示客户端C"系统发生了错误",这种处理方式违背了可用性的要求,因此CAP三者只能满足CP