这是我参与「第五届青训营 」伴学笔记创作活动的第 11 天
一、何为分布式:
分布式系统是计算机程序的集合,这些程序利用跨多个独立计算节点的计算资源来实现共同的目标。可以分为分布式计算、分布式存储、分布式数据库等。
优势:
去中心化、低成本、弹性、资源共享、可靠性高。
二、常见的一些分布式系统:
分布式存储:
GFS,google分布式文件系统
Zookeeper,高可用的分布式数据管理与系统协调框架
分布式数据库:
HBase:开源Nosql数据库
MongoDB:文档数据库
分布式计算:
Hadoop,基于MapReduce分布式计算框架
Spark:在Hadoop基础之上,使用内存来存储数据
三、理论基础:
CAP理论:
Consistence一致性,指数据在多个副本之间能够保持一致的特性。
Availability可用性,指系统提供的服务必须一直处于可用的状态,每次请求都能获取到非错的响应,但不保证获取的数据为最新数据。
Network partitioning分区容错性,分布式系统在遇到任何网络分区故障的时候,仍然能够对外提供满足一致性和可用性的服务,除非整个网络环境都发生了故障。
ACID理论:
Atomicity原子性,指事务包含的操作要么全部成功,要么全部失败回滚。
Consistency一致性,指事务必须是数据库从一个一致性状态变换到另一个一致性状态。
Isolation隔离性,指当多个用户并发访问数据库时,数据库为用户开启的事务,不能被其他事务的操作干扰。
Durability持久性,指一个事务一旦被提交,那么对数据库中数据的改变就是永久性的。
四、分布式事务:
MVCC,多版本并发控制。
MVCC是一种并发控制的方法,维持一个数据的多个版本,使读写操作没有冲突。既不会阻塞写数据,也不会阻塞读数据。MVCC为每个修改保存一个版本,和事务的时间戳相关联。可以提高并发性能,解决脏读的问题。