For investors
股价:
5.36 美元 %For investors
股价:
5.36 美元 %认真做教育 专心促就业
分布式系统是程序员在学习微服务编程开发的时候需要重点掌握的一个编程开发技术,而本文我们就通过案例分析来了解一下,分布式系统概念与应用框架分析。
分布式系统是一个由很多进程组成的整体,这个整体中每个成员部分,都会具备一些状态,比如负载情况,对某些数据的掌握等等。而这些和其他进程相关的数据,在故障恢复、扩容缩容的时候变得非常重要。
简单的分布式系统,可以通过静态的配置文件来记录这些数据:进程之间的连接对应关系,它们的IP地址和端口等等。然而,一个自动化程度高的分布式系统,必然要求这些状态数据都是动态保存的。这样才能让程序自己去做容灾和负载均衡的工作。
一些程序员会专门自己编写一个DIR服务(目录服务),来记录集群中进程的运行状态。集群中进程会和这个DIR服务产生自动关联,这样在容灾、扩容、负载均衡的时候,就可以自动根据这些DIR服务里的数据,来调整请求的发送目地,从而达到绕开故障机器、或连接到新的服务器的操作。
然而,如果只是用一个进程来充当这个工作,那么这个进程就成为了这个集群的“单点”——意思就是,如果这个进程故障了,那么整个集群可能都无法运行的(单点故障)。所以存放集群状态的目录服务也需要是分布式的。幸好有ZooKeeper这个优秀的开源软件,它正是一个分布式的目录服务器。
ZooKeeper可以简单启动奇数个进程,来形成一个小的目录服务集群。这个集群会提供给所有其他进程,进行读写其巨大的“配置树”的能力。这些数据不仅仅会存放在一个Zookeeper进程中,而是会根据一套非常安全的算法,让多个进程来承载。这让Zookeeper成为一个优秀的分布式数据保存系统。
由于Zookeeper的数据存储结构,是一个类似文件目录的树状系统,所以我们常常会利用它的功能,把每个进程都绑定到其中一个“分枝”上,然后通过检查这些“分支”,来进行服务器请求的转发,就能简单的解决请求路由(由谁去做)的问题。另外还可以在这些“分支”上标记进程的负载的状态,这样负载均衡也很容易做了。
目录服务是分布式系统中关键的组件之一。而ZooKeeper是一个很好的开源软件,正好是用来完成这个任务。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。