一、分布式
1、分布式理解
分布式是为了解决传统单体服务架构带来的问题,像代码量大、问题动一发而动全身、迭代测试维护困难,具有高度的内聚性和透明性。
优点:
- 系统可用性性提升;
- 系统并发能力提升;
- 系统容错能力提升;
- 低延迟。
缺点:
- 分布式服务依赖网络;
- 维护成本高;
- 一致性、可用性和容错性无法同时满足。
分布式事务就是指事务的资源分别位于不同的分布式系统的不同节点之上的事务;事务分为柔性事务和刚性事务。
柔性事务的BASE理论。
- B:Basically Available(基本可用)
- S:Soft-state( 软状态/柔性事务)
- E:Eventual Consistency(最终一致性)
刚性事务的ACID特性。
- A:原子性
- C:一致性
- I:隔离性
- D:持久性
分布式系统不可能同时满足一致性、可用性、分区容错性,这一理论称为CAP理论。C:一致性,A:可用性,P:分区容错性。
柔性事务主要有两阶段(三阶段)提交式、补偿型、异步确保型、最大努力通知型。
三阶段提交式相较于两阶段提交式多了超时机制、两阶段间插入准备阶段。
利用Redis实现分布式锁:Redis实现分布式锁
Spark Streaming、Jstorm。
NFS、HDFS、HBase。
Redis。
需要知道一致性哈希算法。
- 轮循算法(Round Robin)
- 哈希算法(HASH)
- 最少连接算法(Least Connection)
- 响应速度算法(Response Time)
- 加权法(Weighted )