毕业论文
您现在的位置: 版本控制 >> 版本控制优势 >> 正文 >> 正文

取代ZooKeeper,Twitter

来源:版本控制 时间:2022/7/25
          做家

TwitterEngineeringBlog      译者

谢丽      ConfigBus是Twitter的动态摆设系统,囊括储备摆设的数据库、将摆设散发到Twitter数据中间中的机械的管道、读取和革新摆设的API和东西。  

动态摆设也许在不从头启动运用程序的环境下更纠正在运转的系统的举动和性能。巴望的动态摆设系统使效劳开垦人员和治理员也许便利地观察和革新摆设,并高效牢固地向运用程序供应摆设革新。它使布局也许迅速、斗胆地迭代新特点,并供应东西,增加与变动现有系统关系的危机。

在Twitter的初期,运用程序治理并散发本人的摆设,常常储备在ZooKeeper中。然而,咱们从前运用ZooKeeper的阅历说明,它在用做通用键值储备时不能伸缩。其余团队转而运用Git举办储备,并贯串自界说的东西来革新、散发和从头加载摆设。跟着Twitter的进展,很显然须要一个准则的办理计划来供应可伸缩的根底设备、可重用的库和灵验的监控。

本文将讲解Twitter的动态摆设系统ConfigBus。ConfigBus囊括储备摆设的数据库、将摆设散发到Twitter数据中间中的机械的管道、读取和革新摆设的API和东西。

架构

在一个较高的条理上,你也许将ConfigBus看做一个Git储备库,它的实质被推送到Twitter数据中间的一共机械上。摆设变动颠末一系列环节来到宗旨地:

开垦人员向Git储备库提交变动。颠末身份考证的运用程序也也许颠末ConfigBus效劳提交到储备库。

预吸收钩子考证变动。倘若考证颠末,则在效劳器上接收并提交推送。(咱们将在“特点”部份更详细地商议这类考证。)

一旦效劳器上的提交流程达成,Git吸收后钩子就会运用提交讯息(SHA、时候戳等)革新ZooKeeper中的特定节点。

接下来会触发ZooKeeperwatches,激发下游流程的举动:

a.在做为摆设筹备区的“ConfigStore”机械上,watch事宜会挪用一个回调,从Git效劳器获得最新提交。它还用现时的SHA革新ZooKeeper中的条款。

b.在宗旨机械上,watch事宜触发镜像职责,该职责轮询ZooKeeper,找出与最新提交具备雷同SHA的ConfigStore机械。一旦找到源机械,镜像职责将运转rsync把变动同步到内陆机械上。

末了,运用这些摆设文献的运用程序将看到文献系统上的变动(颠末ConfigBus客户端库),并启动过程内从头加载。

末了,系统中止办事,以便把第1步中变动的文献同步到一共宗旨机械,并由依赖这些机械的一共客户端运用程序从头加载。

    特点  摆设即代码

运用Git理睬开垦人员重用源储备库供应的很多雷同的下令和办事流。Git及其周边的生态系统首要供应了如下性能:

具备更他日记的源代码掌握:也许检讨从前的摆设变动以观察变动了甚么(以及由谁变动、何时变动或为甚么变动)是特别有价格的。Git当然理睬如许做。开垦人员完整有信念,现时和从前的版本在版本掌握中是平安的。

主动摆设:ConfigBus中的摆设文献会主动复制到一共宗旨机械。暂时,摆设宣传的均匀推迟为80-秒,而p99推迟大致为秒。

解析考证:ConfigBus运用预吸收钩子来运转考证程序,它们也许检讨摆设文献中的语法过失,举办形式考证,以及履行任何类别的自界说考证。它针对JSON等大方摆设格式为Twitter开垦人员供应了开箱即用的语法考证。它还供应了指定形式和考证兼容性的本事。用户还也许编写自界说考证,并在Git中增加和革新摆设时履行这些考证。

代码稽核:让摆设变动颠末代码评审有助于增加过失,并在将其投入临盆处境从前发觉题目。

ACL:咱们在Git储备库中强迫履行摆设一共权,以保证摆设文献只被该当治理它们的团队和运用程序修正。当推送一个变动时,一个预吸收钩子会考证是不是理睬履行该推送的用户对这些文献举办变动。

编程拜候:ConfigBus效劳撑持对ConfigBus的编程拜候。该效劳完结了Git“智能”HTTP协(

转载请注明:http://www.0431gb208.com/sjszjzl/1087.html