分布式系统初识
在了解了分布式系统的基本原理之后,弄清楚了分布式系统的几个问题,整理如下。
首先,分布式系统到底是什么?
分布式顾名思义即分散,非集中方式,分布式系统的定义是,由对分布在网络的不同的位置上的系统进行通信和数据交换的系统。
那么为什么要需要这样理念的系统呢?
源于其三点,也是其优点:第一,数据共享,它可以解决组织机构分散而数据需要相互联系的问题,并且可以使多个程序(线程,进程)并发执行,提高效率。比如银行系统,总行与各分行处于不同的城市或城市中的各个地区,在业务上它们需要处理各自的数据,也需要彼此之间的交换和处理,这就需要分布式的系统。
第二,它没有全局时钟,每个机器都有其各自的时间,程序间协调靠数据交换,局部的数据库管理员拥有高度的自治权。并且分布式数据库系统可以在对当前机构影响最小的情况下进行扩充。
第三,故障独立,一些机器出现故障时,由于其故障的影响仅限于局部数据应用,整个系统来讲它的可靠性比较高。
分布式系统的特性如下:
1.系统由不同的网络、计算机硬件、操作系统组成的“异构性”
2.系统新的资源共享服务能被增加和供多种客户程序使用的“开放性”
3.系统容纳资源和用户的“可伸缩性”
4.系统调度的“透明性”
分布式系统的要点原理就不赘述了。具体可以参考:
http://wenku.baidu.com/link?url=ZSImRneZYc-LC1WBE3Kt4InNqlWfBIdjQcWo_AcjGbgc_DbOuH3t8HY5UXZXW705dShS2wsXsiur3-hXiz1qPb_C7WfGdbvcjGhwfJ3XmMa
主要阐述下其思想。。
其数据分布方式主要包括哈希方式,按数据范围分布,按数据量分布,一致性哈希,副本与数据分布,本地化计算--
本地化计算强调的是移动数据不如移动计算的思想。本地化计算是计算调度的一种重要优化,如果计算节点和存储节点位于不同的物理机器则计算的数据需要通过网络传输,此种方式的开销很大。而这一种本地化计算的思路是,将计算尽量调度到与存储节点在同一台物理机器上的计算节点上进行,节省了成本,提高了效率。
分而治之的思想。局部拥有高度自主,程序间调度有序。一个超级市场连锁店可能有许多分店,每个商店都需要采购当地生产的商品,进行本地销售,或者要对本地的哪些蔬菜因时间太长或已经腐烂而必须扔掉作出决定。因此,每个商店的本地计算机能明了存货清单是有意义的,而不是集中于公司总部。毕竟,大多数查询和更新都是在本地进行的。然而,连锁超级市场的高层管理者也会不时地想要了解他们目前还有多少甘蓝。实现这一目标的一种途径就是将整个系统建设成对于应用程序来说就像一台计算机一样,但是在实现上它是分布的。这点在MapReduce编程模型的设计思想中得到充分体现。
关于分布式系统与分布式存储仍在继续了解中。。欢迎共同探讨和交流