根据我们的经验,我们通常把故障隔离的架构称为泳道(swimlanes)。虽然这个术语不是我们创造的,但是我们认为它很形象地比喻了我们想在架构中创建的东西。对于泳者来说,泳道既有屏障的作用,又有引导的作用。作为屏障,泳道可以确保泳者不会游到其他的泳道中,干扰到另一个泳者。在比赛中,这样有助于避免发生意外的干扰,影响到泳者夺冠的机会。在实践或练习中,屏障的存在确保了游泳新手不会干扰优秀的泳者。此外,泳道还可以引导泳者以最少的力量向目标前进,因为泳者需要不停地把脑袋没人水中,而每当他把头露出水面,都能看到泳道。
就像泳池中的泳道保护泳者,确保他们在泳池中安全有效地前进一样,架构中的泳道也可以保护你的系统运营。在一条泳道中的一组系统的运营,是在泳道绳子引导下的运营,不会影响到其他泳道中系统的运营。此外,在架构师和工程师设计新功能时,泳道也会为他们提供指导,帮助他们决定应该把哪些功能集合放在哪种类型的泳道中,才能实现可扩展性高的架构目标。
但在技术群体中,泳道并非唯-使用的故障隔离的术语。像豆荚(pod)这样的术语,常用于定义故障隔离的域,表示一组客户或-套功能。所谓剥豆荚(podding),就是把一-组数据和功能划分到几个故障隔离的组中。有时豆荚被用于表示服务分组,有时则被用于表示数据分组。回想一下,我们定义故障隔离时说过,它既适用于组件,也适用于整个系统,这里把数据或服务分组,只是适用于组件级别的故障隔离方法。虽然这样做整个系统都会受益,但从系统角度来看,它不是完整的故障隔离城,因此只能保护采用了它的组件。
技术群体常用的另一个术语是分片(shard),通常它描述的是一种数据库结构或存储子系统。所谓分片(sharding),就是把这些系统划分到故障域中,这样一个分片的故障不会全面地影响到系统的其他部分。在由100个分片构成的存储系统中,一个分片发生故障,其余的99个分片还是能继续工作。但是与豆荚一样,这并不意味着余下的99个分片就运行正常。我们将在本章后面的小节中,更详细地讨论这一概念。
裂片(slivers)、组块(chunks)和池(pools)也是我们久而久之熟悉的术语。裂片常用来代替分片。组块常用作豆荚的同义词。所谓池,通常指的是一-组执行相似任务的服务器,它也是一个故障隔离的术语,但又不同于泳道,我们将在后面再讨论这一一点。通常它们是执行平台的某一部分功能的应用服务器或Web服务器。虽然能够轻松地把这些术语扩展到整个系统或平台,而不只是它的组件,但通常它们描述的还是系统整体设计中的组件。
最后要说的是,关于你的故障隔离的架构,并没有一个答案是“正确的”。你可以选择自己想使用的术语,或者创造自己的用语。但存在一一种“正确的”方法,那就是要设计既能扩展又能在极端需求情况下发生适度故障的架构。
常用的故障隔离术语
●泳道是从平台或整个系统的角度描述一种故障隔离的架构时最常用的术语。
●豆荚常用于代替泳道,尤其是以客户或地理位置为基础进行故障隔离时。
●分片是在划分数据库或存储子组件时最常用的故障隔离术语。
●裂片是豆荚的同义词,通常用于存储或数据库子组件。
●组块是豆荚的同义词。
●池这个网站制作故障隔离术语通常用于软件服务,但在实现时,它不一定是泳道。
>>> 查看《故障隔离的网站架构术语》更多相关资讯 <<<
本文地址:http://nlpc.cn/news/html/3891.html