最近复习了下分布式相关的知识,简单做了下总结(今天先列提纲,明天再一一补充)。
一、集群和分布式的区别
1)集群是物理形态,即物理上集中,统一管理的;分布式则是工作方式,不强调物理概念。
2)分布式的每个节点,都可以做集群,而集群不一定是分布式的。分布式是通过缩短单个任务的执行时间来提升效率,集群是通过提高单位时间内执行的任务数来提升效率。
3)简单的说,分布式类似分头做一件事,集群类似,大家聚集在一起,各做各的事。
二、分布式事务的几个基础概念
1.ACID
A(Atomicity):原子性
C(Consistency):一致性
I(Isolation):隔离性
D(Durability):持久化
2.CAP理论
C(Consistency):一致性
A(Availability):可用性
P(Partition Tolerance):分区容错性,容灾性
一般系统或者架构只能满足其中两点,如CA,则是放弃了容错性,将所有节点部署在单节点上,并发性不高,如单机数据库部署。CP则是放弃了可用性,一旦系统遇见故障,则需要等待一段时间无法对外提供服务,如非关系型数据库MongoDB、Redis。AP则是放弃了强一致性,用最终一致性保证。