分布式系统与计算
什么是分布式系统
- 建立在网络和分散节点上的软件系统
- 网络和分布式的区别在于高层软件
- 每一个节点高度自治
- 分布式节点对用户透明,用户感知不到数据是分布的
为什么要使用分布式
-
单机容量有限
- 计算容量
- 存储容量
-
分布式模块高度自治,可以使用异构系统
-
每个模块关注自身业务,更适合大型团队开发
-
容错,高可用
分布式第一原则
- 不要使用分布式系统
##分布式的类型
- 应用的分布式
- 系统模块的分布式 如:数据库
- 业务模块的分布式
- 负载均衡
- 计算的分布式
- 存储的分布式
Actor模型
- 可以收发消息的对象
- 消息通信是Actor唯一的通信手段
- 支持极高的并行
- 易于分布式
- AKKa
CAP原理
-
一致性(Consistency)
任何一个读操作总是能读取到之前完成的写操作结果
-
可用性(Availability)
每一个操作总是能够在确定的时间内返回
-
分区容忍性(Partition tolerance)
在出现网络分区的情况下,仍然能够满足一致性和可用性
一致性的理解角度
- 客户端:多并发访问时更新过的数据如何获取
- 服务端:是更新如何复制分布到整个系统,以保证数据最终一致
一致性的分类
-
强一致性
- 要求更新过的数据能被后续的访问都能看到
-
弱一致性
-
能容忍后续操作访问不到更新
-
最终一致性
- 经过一段时间后要求能访问到更新后的数据
-
来源:oschina
链接:https://my.oschina.net/u/3226414/blog/3162036