[分布式系统]
集中式共享内存实现线程之间通信,分布式的计算单元分布在多个硬件设备上,可能有不同的内存地址,但对于用户来说看起来像是一个系统
- 部分节点失效不关心,根本感知不到某些节点会失效
- 由于没有集中的共享内存,需要通过网络进行通信
多机的时钟同步非常的困难,由于没有全局绝对的时钟,需要做很多通讯,同步,协调
节点有可能跟其他节点进行通讯。
我们希望尽可能达到分布的透明性(感知不到),但需要付出很大的代价,需要允许一部分节点失效。
需要分布式的情况
- 设备本身就是分布式的
- 需要更好的可靠性
- 需要更好的效果
- 解决更大规模的问题
传输受限的时候不适用分布式
分布式需要借助于网络之上。
分布式的通信还会存在延迟
理想的分布式系统会屏蔽掉底层OS不同,对外显示一个整体。
为了实现集中式做不到的哪些方面
- 资源的支持
- 分布式透明
- 运行额外的节点的加入
- 扩展性
资源的共享
有网络就行
分布式透明
- 数据的格式不关心
- 数据的位置不关系
- 数据在使用中或政策状态下进行迁移
- 并发
- 节点的恢复
透明的程度,由于可观限制,没有办法做到完全透明
暴露一部分的分布性有时也是好的。
开放性
运行原来不属于我的进入,属于我的离开,跟外界打交道的时候用到。
从局域网嗷广域网,同步的延迟就变得很严重了。
管理域上的可拓展性(非技术性)
通过异步的方式隐藏延迟,不把延迟转换为等待,可以干别的
分布式系统的类型
并行计算
分布式共享内存
很难与多处理机中的共享内存速度相比,其目前仅作为一个学术概念,在实际中做不到。
集群计算,同构
网格计算 - 闲散资源同一利用
云计算