作家
登录

浅析分布式系统一些事

作者: 来源: 2017-05-10 11:45:10 阅读 我要评论

分布式集群除潦攀扩容,还有缩容的需求。当用户人数降低,办事器硬件资本竽暌箍现余暇的时刻,我们往往须要这些余暇的资本能应用起来,放到别的一些新的办事集群里去。缩容和集群中有故障须要容灾有必定类似之处,差别是缩容的时光点和目标是可预期的。

因为分布式集群中的扩容、缩容,以及欲望尽量能在线操作,这导致了异常复杂的技巧问题须要处理,比如集群中互相接洽关系的设备若何精确高效的修改、若何对有状况的过程进行操作、如安在扩容缩容的过程中包管集群中节点之间通信的┞俘常。作为办事器端法度榜样员,会须要花费大年夜量的经历,来对多个过程的集群状况变更,造成的一系列问题进行专门的开辟。

软件办事内容更新

如今都风行用敏捷开辟模式中的“迭代”,来表示一个办事赓续的更新法度榜样,知足新的需求,修改BUG。如不雅我们仅仅治理一台办事器,那么更新这一台办事器上的法度榜样,是异常简单的:只要把软件包拷贝以前,然后修改下设备就好。然则如不雅你要对成百上千的办事器去做同样的操作,就弗成能每台办事器登录上去处理。

办事器端的法度榜样批量安装安排对象,是每个分布式体系开辟者都须要的。然而,我们的安装工作除了拷贝二进制文件和设备文件外,还话苄很多其他的操作。比如打开防火墙、建立共享内存文件、修改数据库表构造、改写一些数据文件等等……甚至有一些还要在办事器上安装新的软件。

如不雅我们在开辟办事器端法度榜样的时刻,就推敲到软件更新、版本进级的问题,那么我们对于设备文件、敕令行参数、体系变量的应用,就会预先做必定的筹划,这能让安装安排的对象运行更快,靠得住性更高。

除了安装安排的过程,还有一个重要的问题,就是不合版本间数据的问题。我们在进级版本的时刻,旧版本法度榜样生成的一些持久化数据,一般都是旧的数据格局的;而我们进级版本中如不雅涉及修改了数据格局,比如数据表结不雅,那么这些旧格局的数据,都要转换改写成新版本的数据格局才行。这导致了我们在设计数据构造的时刻,就要推敲清跋扈这些表格的构造,是用最简单直接的表达方法,来让将来的修改更简单;照样一早就估计到修改典范围,专门预设一些字段,或者应用其他情势存放数据。

除了持久化数据以外,如不雅存在客户端法度榜样(如受击APP),这些客户端法度榜样的进级往往不克不及和办事器同步,如不雅进级的内容包含了通信协定的修改,这就造成了我们必须为不合的版本安排不合的办事器端体系的问题。为了避免同时保护多套办事器,我们在软件开辟的时刻,往往偏向于所谓“版本兼容”的协定定义方法。而如何设计的协定才能有很好的兼容性,又是办事器端法度榜样须要细心推敲的问题。

数据统计和决定计划

一般来说,分布式体系的日记数据,都是被集中到一路,然后同一进行统计的。然而,当集群的范围到必定程度的时刻,这些日记的数据量会变得异常恐怖。很多时刻,统计一天的日记量,要消费计算机运行一天以上的时光。所以,日记统计这项工作,也变成一门异常专业的晃荡。

经典的分布式统计模型,有Google的Map Reduce模型。这种模型既有灵活性,也能应用大年夜量办事器进行统计工作。然则缺点是易用性往往不敷好,因为这些数据的统计和我们常见的SQL数据表统计有异常大年夜的差别,所以我们最后照样经常把数据丢到MySQL琅绫擎去做更细层面的统计。

因为分布式体系日记数量的宏大年夜,以及日记复杂程度的进步。我们变得必须要控制类似Map Reduce技巧,才能真正的对分布式体系进行数据统计。并且我们还须要想办法进步统计工作的工作效力。

解决分布式体系可治理性的根本手段

目次办事(ZooKeeper)

分布式体系是一个由很多过程构成的┞符体,这个整体中每个成员部分,都邑具备一些状况,比如本身的负责模块,本身的负载情况,对某些数据的┞菲握等等。而这些和其他过程相干的数据,在故障恢复、扩容缩容的时刻变得异常重要。

一些法度榜样员会专门本身编写一个DIR办事(目次办事),来记录集群中过程的运行状况。集群中过程会和这个DIR办事产生主动接洽关系,如许在容灾、扩容、负载均衡的时刻,就可以主动根据这些DIR办事里的数据,来调剂请求的发送目地,大年夜而达到绕开故障机械、或连接到新的办事器的操作。

然而,如不雅我们只是用一个过程来充当这个工作。那么这个过程就成为了这个集群的“单点”——意思就是,如不雅这个过程故障了,那么全部集群可能都无法运行的。所以存放集群状况的目次办事,也须如果分布式的。幸好我们有ZooKeeper这个优良的开源软件,它恰是一个分布式的目次办事区。

ZooKeeper可以简单启动奇数个过程,来形成一个小的目次办事集群。这个集群会供给给所有其他过程,进行读写其巨大年夜的“设备树”的才能。这些数据不仅仅会存放在一个ZooKeeper过程中,而是会根据一套异常安然的算法,让多个过程来承载。这让ZooKeeper成为一个优良的分布式数据保存体系。

因为ZooKeeper的数据存储构造,是一个类似文件目次的树状体系,所以我们经常会应用它的功能,把每个过程都绑定到个一一个“分枝”上,然后经由过程检查这些“分支”,来进行办事器请求的转发,就能简单的解决请求路由(由谁去做)的问题。别的还可以在这些“分支”上标记过程的负载的状况,如许负载均衡也很轻易做了。

目次办事是分布式体系中最关键的组件之一。而ZooKeeper是一个很好的开源软件,正好是用来完成这个义务。


  推荐阅读

  如何备份一个磁盘分区

diff /dev/sdc /tmp/SD-Card-Backup.img 平日你可能会把数据放在一个分区上,有时刻可能须要对该设备或者膳绫擎的一个分区进行备份。树莓派用户为了可引导 SD 卡当然有这个需求。其它小体>>>详细阅读


本文标题:浅析分布式系统一些事

地址:http://www.17bianji.com/lsqh/35115.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)