自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

云計(jì)算背后的秘密(4)-Chubby

云計(jì)算
簡單的來說,Chubby屬于分布式鎖服務(wù),通過Chubby,一個(gè)分布式系統(tǒng)中的上千個(gè)client都能夠?qū)δ稠?xiàng)資源進(jìn)行“加鎖”或者“解鎖”,常用于BigTable和MapReduce等系統(tǒng)內(nèi)部的協(xié)作工作,在實(shí)現(xiàn)方面是通過對(duì)文件的創(chuàng)建操作來實(shí)現(xiàn)“加鎖”,并在其內(nèi)部采用了著名科學(xué)家Leslie Lamport的Paxos算法。

簡單的來說,Chubby屬于分布式鎖服務(wù),通過Chubby,一個(gè)分布式系統(tǒng)中的上千個(gè)client都能夠?qū)δ稠?xiàng)資源進(jìn)行“加鎖”或者“解鎖”,常用于BigTable和MapReduce等系統(tǒng)內(nèi)部的協(xié)作工作,在實(shí)現(xiàn)方面是通過對(duì)文件的創(chuàng)建操作來實(shí)現(xiàn)“加鎖”,并在其內(nèi)部采用了著名科學(xué)家Leslie Lamport的Paxos算法。

技術(shù)概覽

在實(shí)現(xiàn)機(jī)制方面,Chubby本身是一個(gè)分布式的文件系統(tǒng),并提供一些機(jī)制使得Client可以在Chubby服務(wù)上創(chuàng)建文件和執(zhí)行一些文件的基本操作。那么,Chubby是怎樣實(shí)現(xiàn)這樣的“鎖”功能的?就是通過文件。Chubby中的“鎖”就是文件,創(chuàng)建文件其實(shí)就是進(jìn)行“加鎖”操作,創(chuàng)建文件成功的那個(gè)服務(wù)器其實(shí)就是搶占到了“鎖”。用戶通過打開、關(guān)閉和讀取文件,獲取共享鎖或者獨(dú)占鎖,并且通過通信機(jī)制,向用戶發(fā)送更新信息。

 

▲圖1. Chubby的架構(gòu)

在架構(gòu)上,Chubby集群一般有5臺(tái)機(jī)器組成,每臺(tái)機(jī)器都有一個(gè)Replica(副本),其中有一個(gè)Replica會(huì)被選為Master節(jié)點(diǎn),Replica在結(jié)構(gòu)和能力上相互對(duì)等,Replica使用Paxos協(xié)議來保持日志的一致性,Replica都有可能離線,然后重新上線。重新上線后,需要保持與其它節(jié)點(diǎn)數(shù)據(jù)的一致。Client端使用Chubby的客戶端庫來訪問。

主要優(yōu)點(diǎn)

為什么不是直接實(shí)現(xiàn)一個(gè)類似于Paxos算法這樣的協(xié)議來解決一致性問題,而是要通過一個(gè)鎖服務(wù)來解決?這樣主要有下面這五個(gè)好處:

1. 大部分開發(fā)人員在剛開始開發(fā)服務(wù)的時(shí)候都不會(huì)考慮到這種一致性的問題,所以一開始都不會(huì)使用一致性協(xié)議。只有當(dāng)服務(wù)慢慢成熟以后,才開始認(rèn)真對(duì)待這個(gè)問題。采用鎖服務(wù)可以使得在保持原有的程序架構(gòu)和通信機(jī)制的情況下,通過添加簡單的語句就可以解決一致性問題;

2. 在很多情況下,并不僅僅是選舉出一個(gè)Master怎么簡單,還需要將這個(gè)Master的地址告訴其它人或者保存某個(gè)信息,這種時(shí)候,使用 Chubby中的文件,不僅僅是提供鎖功能,還能在文件中記錄下有用的信息(比如Master的地址)。所以,很多的開發(fā)人員通過使用Chubby來保存元數(shù)據(jù)和配置。

3. 一個(gè)基于鎖的開發(fā)接口更容易被開發(fā)人員所熟悉。并不是所有的開發(fā)人員都了解一致性協(xié)議的,但大部分人應(yīng)該都用過鎖。

4. 一個(gè)一致性協(xié)議一般來說需要使用到好幾臺(tái)副本來保證高可用性,在這方面,Paxos算法是最明顯的例子,而使用Chubby,就算只有一個(gè)client也能用。

5. 可以看出,之所以用鎖服務(wù)這樣的形式,是因?yàn)镃hubby不僅僅想解決一致性問題,還可以提供更多更有用的功能。事實(shí)上,Google有很多開發(fā)人員將Chubby當(dāng)做Name Service(命名服務(wù))來使用,而且效果非常好。

相關(guān)產(chǎn)品

和之前介紹的GFS、MapReduce和BigTable一樣,在Hadoop系列中也有一款類Chubby的實(shí)現(xiàn),名為ZooKeeper。在實(shí)現(xiàn)方面,ZooKeeper是基于一套自主設(shè)計(jì)并優(yōu)化的Two-Phase Commit的協(xié)議,并已經(jīng)成功應(yīng)用在HBase, Yahoo! Message Broker, Fetch Service of Yahoo! crawler等系統(tǒng)上。

作者簡介

吳朱華,之前在IBM中國研究院參與過多個(gè)云計(jì)算產(chǎn)品的開發(fā)工作,現(xiàn)在專注于YunTable和YunEngine的研發(fā),并即將發(fā)表《剖析云計(jì)算》一書,敬請(qǐng)期待。

參考資料

1. Paxos在大型系統(tǒng)中常見的應(yīng)用場(chǎng)景. http://timyang.net/tag/zookeeper/

2. Google利器之Chubby. http://blog.csdn.net/historyasamirror/archive/2009/02/09/3870168.aspx
 

【編輯推薦】

  1. 云計(jì)算背后的秘密(3)-BigTable
  2. 云計(jì)算背后的秘密(2)-GFS
  3. 云計(jì)算背后的秘密(1)-MapReduce

 

責(zé)任編輯:王勇 來源: it168
相關(guān)推薦

2010-11-29 10:28:32

云計(jì)算BigTable

2010-11-25 09:54:14

云計(jì)算MapReduce

2010-11-25 10:05:51

云計(jì)算GFS

2011-02-17 09:45:40

云計(jì)算RPC框架

2011-01-04 10:00:41

云計(jì)算YunTable

2010-12-23 10:19:14

云計(jì)算NoSQL數(shù)據(jù)庫

2011-01-06 16:36:05

云計(jì)算Google

2020-04-15 13:55:28

Kubernetes容器

2020-02-17 21:04:47

在線辦公教育

2022-12-29 08:00:00

Transforme架構(gòu)深度學(xué)習(xí)

2016-06-27 16:29:04

戴爾閃存

2020-06-19 12:06:12

云計(jì)算云平臺(tái)IT

2010-10-25 10:13:16

ibmdwWebSphere

2013-03-01 10:45:36

Nike大數(shù)據(jù)

2012-02-24 09:07:53

云計(jì)算成本

2010-05-24 18:22:56

SNMP協(xié)議

2012-05-21 21:53:05

2017-09-18 08:52:34

2012-12-19 09:36:33

2019-06-05 12:49:07

云辦公
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)