云计算:1. 大数据与云计算
1. IaaS vs PaaS vs SaaS
- IaaS: Infrastructure as a Service
- a virtual machine
- PaaS: Platform as a Service
- SaaS: Software as a Service
2. CAP Principle
- Consistency(一致性)
- 一个写操作返回成功,那么之后的读请求都必须读到这个新数据;如果返回失败,那么所有读操作都不能读到这个数据。所有节点访问同一份最新的数据。
- Availability(可用性)
- 对数据更新具备高可用性,请求能够及时处理,不会一直等待,即使出现节点失效。
- Partition Tolerance(分区容错性)
- 能容忍网络分区,在网络断开的情况下,被分隔的节点仍能正常对外提供服务。
不可能都达成,最多只能满足其中两个。
理解CAP理论最简单的方式是想像两个副本处于分区两侧,即两个副本之间的网络断开,不能通信。
- 如果允许其中一个副本更新,则会导致数据不一致,即丧失了C性质。
- 如果为了保证一致性,将分区某一侧的副本设置为不可用,那么又丧失了A性质。
- 除非两个副本可以互相通信,才能既保证C又保证A,这又会导致丧失P性质。
一般来说,使用网络通信的分布式系统,无法舍弃P性质,那么就只能在一致性C和可用性A上做一个艰难的选择。
3. BASE Theorem
- BA: Basically Available,基本可用
- S: Soft state,软状态
- E: Eventually consistent,最终一致
核心思想:如果无法做到强一致性,或者做到强一致性要付出很大的代价,那么应用可以根据自身业务特点,采用适当的方式来使系统达到最终一致性,只要对最终用户没有影响,或者影响是可接受的即可。
4. 奇数个节点(Zookeeper)
- 防止由脑裂造成的集群不可用
- 在容错能力相同的情况下,奇数台更节省资源