写点什么

Week06 总结

用户头像
SuperLab
关注
发布于: 2020 年 09 月 24 日

一、分布式数据库

(一)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架构





用户头像

SuperLab

关注

还未添加个人签名 2020.04.01 加入

还未添加个人简介

评论

发布
暂无评论
Week06总结