ZooKeeper学习之分布式概念和特点

ZooKeeper学习之分布式概念和特点

前言

随着计算机系统规模变得越来越大,将所有的业务单元集中部署在一个或若干个大型机上的体系结构,已经越来越不能满足当今计算机系统,尤其是大型互联网系统的快速发展,各种灵活多变的系统架构模型层出不穷。分布式的处理方式越来越受到业界青睐–计算机系统正在经历一场前所未有的从集中式向分布式架构的变革。


集中式的概念特点

在介绍分布式之前,我们先来看下集中式的概念和特点

概念

所谓的集中式系统就是指由一台主计算机组成中心节点,数据集中存储在这个中心节点,并且整个系统的所有业务都集中部署在这个中心节点上,系统的所有功能均由其集中处理,也就是说,在集中式系统中,每个终端或客户端 机器仅仅负责数据的录入和输出,而数据的存储与控制处理完全由主机来完成。

特点

集中式系统最大的特点就是部署结构简单。由于集中式系统往往基于底层性能卓越的大型主机,因此无需考虑如何对服务进行多个节点的部署,也就不用多个节点之间的分布式协作问题。


分布式的概念和特点

概念

分布式系统是一个硬件或软件组件分布在不同的网络计算机上,彼此之间仅仅通过消息传递进行通信和协调的系统

上面这个简单的定义涵盖了几乎所有有效地部署了网络化计算机的系统。通俗的来讲:分布式系统是同时跨越多个物理主机,独立运行的多个软件组件所组成的系统

特点

一个标准的分布式系统在没有任何特定业务逻辑约束的情况下,都会有如下几个特征

  • 分布性:分布式系统系统中的多台计算机都会在空间上任意分布,同时,机器的分布情况也会随时变动。
  • 对等性:分布式系统中的计算机没有主从之分,即没有控制整个系统的应用,也没有被控制的从机,组成分布式系统的所有计算机都是对等的。
  • 并发性:在一个计算机网络中,程序运行过程中的并发操作是非常常见的行为,例如同一个分布式系统中的多个节点,可能会并发地操作一些共享的资源,诸如数据库或分布式存储,如何准确 并高效德协调分布式并发操作也成为了分布式架构和设计中最大的挑战之一。

分布式通信方式

分布式系统中的进程通信有两种选择:直接通过网络进行信息交换或者通过读写某些共享存储。读写共享存储类似于JAVA内存模型。Zookeeper也是使用共享存储模型来实现应用间的协作和同步原语。对于共享存储本身,又需要在进程和存储间进行网络通信。我们强调网络通信的重要性,因为他是分布式系统中并发设计的基础。


分布式中要注意的问题

  • 通信异常

    从集中式向分布式演变,必然引入了网络因素,而由于网络本身的不可靠性,因此也引入了额外的问题。分布式系统需要在各个节点中进行通信,因此每次网络通信都会伴随着网络不可用的风险,网络光纤、路由器或是DNS等硬件设备或是系统不可用都会导致最终分布式系统无法顺利完成一次网络通信。另外,即时分布式系统各节点之间的网络通信能够正常进行,其延时也会远大于单机操作。

  • 网络分区

    当网络由于发生异常情况,导致分布式系统中部分节点之间的网络延时不断增大,最终导致组成分布式系统的所有节点中,只有部分节点之间能够进行正常通信,而另外一些节点则不能—我们将这个现象称为网络分区。当网络分区出现时,分布式系统会出现局部小集群,在极端的情况下,这些局部小集群会独立完成原本需要整个分布式系统才能完成的功能,包括对数据的事务处理,这就对分布式一致性带来了非常大的挑战。


总结

这篇文章主要讲了对比集中式,讲了分布式的一些概念和特点,以及分布式可能会出现的问题,下次在介绍分布式的CAP和BASE理论。


参考书籍:《从Paxos到Zookeeper分布式一致性原理与实践》

猜你喜欢

转载自blog.csdn.net/dailingnan0827/article/details/88094927
今日推荐