架构师第六周培训学习总结
一、分布式数据库
(一)MySql复制
(1)主从复制(读写分离,缓解读压力)
(2)主主复制(解决主服务器单机,进行切换)
(二)数据分片
(1)硬编码实现数据分片
(2)映射表外部存储
(3)中间件解决分片问题
(三)数据库部署方案
(1)单一数据库与单一服务器
(2)主从复制
(3)两个服务器与两个数据库
(4)综合部署
二、CAP原理
(一)原理简介
CAP原则又称CAP定理,指的是在一个分布式系统中,一致性(Consistency)、可用性(Availability)、分区容错性(Partition tolerance)。CAP 原则指的是,这三个要素最多只能同时实现两点,不可能三者兼顾。
一致性(Consistency):每次读取的数据,都应该是最近写入的数据或者返回一个错误,而不是过期数据,也就是说数据是一致的。
可用性(Availability):每次请求都会得到一个响应,而不是返回错误或失去响应,不过这个响应不要求数据是最新写入的,也就是说系统需要一直都是可以正常使用的,不会引起调用者异常,但不保证数据是最新的。
分区容忍性(Partition tolerance):即使因为网络原因,部分服务器节点之间消息丢失或延时了,系统依然可以是操作的。
在分布式系统下,由于网络是不稳定的,所以分区容忍性是必须要保证的,这样系统只能在一致性和可用性两者之间进行平衡。
(二)CAP原理与一致性冲突
解决方式:
(1)最终一致性
(2)最终一致写冲突
根据时间戳,最后写入覆盖
(3)客户端冲突解决
(4)投票解决冲突
三、ACID与BASE
(1)ACID
ACID可以理解为ACID最重要的含义,就是Atomicity和Isolation ,即强制一致性,要么全做要么不做,所有用户看到的数据一致。强调数据的可靠性, 一致性和可用性。
ACID 为 Atomicity, Consistency, Isolation, and Durability,其中ACID分别表示为:
原子性(Atomicity):事务中的操作要么都做,要么都不做。
一致性(Consistency):系统必须始终处在强一致状态下。
隔离性(Isolation):一个事务的执行不能被其他事务所干扰。
持续性(Durability):一个已提交的事务对数据库中数据的改变是永久性的。
(2)BASE
BASE为Basically Available, Soft-state, Eventually consistent,其中BASE分别代表:
基本可用(Basically Available):系统能够基本运行、一直提供服务。
软状态(Soft-state):系统不要求一直保持强一致状态。
最终一致性(Eventual consistency):系统需要在某一时刻后达到一致性要求。
四、分布式一致性与ZooKeeper
ZooKeeper用于解决分布式脑裂问题,保存数据的强一致性。
ZooKeeper架构
评论