bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

Java大數(shù)據(jù)開發(fā)中ZooKeeper的原理機(jī)制是什么

本篇文章為大家展示了Java大數(shù)據(jù)開發(fā)中ZooKeeper的原理機(jī)制是什么,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。

在金東等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供網(wǎng)站制作、成都網(wǎng)站建設(shè) 網(wǎng)站設(shè)計(jì)制作按需網(wǎng)站制作,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),成都品牌網(wǎng)站建設(shè),全網(wǎng)整合營銷推廣,成都外貿(mào)網(wǎng)站建設(shè)公司,金東網(wǎng)站建設(shè)費(fèi)用合理。

下面我們先對這些參數(shù)做一些講解。

1.1 參數(shù)解讀

Zookeeper中的配置文件zoo.cfg中參數(shù)含義解讀如下:

① tickTime =2000:通信心跳數(shù),Zookeeper服務(wù)器與客戶端心跳時間,單位毫秒

Zookeeper使用的基本時間,服務(wù)器之間或客戶端與服務(wù)器之間維持心跳的時間間隔,也就是每個tickTime時間就會發(fā)送一個心跳,時間單位為毫秒。它用于心跳機(jī)制,并且設(shè)置最小的session超時時間為兩倍心跳時間。(session的最小超時時間2*tickTime)

② initLimit =10:LF初始通信時限

集群中的Follower跟隨者服務(wù)器與Leader領(lǐng)導(dǎo)者服務(wù)器之間初始連接時能容忍的最多心跳數(shù)(tickTime的數(shù)量),用它來限定集群中的Zookeeper服務(wù)器連接到Leader的時限。

③ syncLimit =5:LF同步通信時限

集群中Leader與Follower之間的最大響應(yīng)時間單位,假如響應(yīng)超過syncLimit * tickTime,Leader認(rèn)為Follwer死掉,從服務(wù)器列表中刪除Follwer。

④ dataDir:數(shù)據(jù)文件目錄+數(shù)據(jù)持久化路徑

主要用于保存Zookeeper中的數(shù)據(jù)。

⑤ clientPort =2181:客戶端連接端口

監(jiān)聽客戶端連接的端口。

1.2 內(nèi)部原理

1.2.1 選舉機(jī)制

半數(shù)機(jī)制:集群中半數(shù)以上機(jī)器存活,集群可用。所以Zookeeper適合安裝奇數(shù)臺服務(wù)器。

Zookeeper雖然在配置文件中并沒有指定Master和Slave。但是,Zookeeper工作時,是有一個節(jié)點(diǎn)為Leader,其他機(jī)器則為Follower,Leader是通過內(nèi)部的選舉機(jī)制臨時產(chǎn)生的。

下圖是由五臺服務(wù)器組成的ZK集群,它們的id從1-5,同時它們都是最新啟動的,也就是沒有歷史數(shù)據(jù),在存放數(shù)據(jù)量這一點(diǎn)上,都是一樣的。假設(shè)這些服務(wù)器依序啟動,來看看會發(fā)生什么!

Java大數(shù)據(jù)開發(fā)中ZooKeeper的原理機(jī)制是什么

(1)服務(wù)器1啟動,此時只有它一臺服務(wù)器啟動了,它發(fā)出去的報(bào)文沒有任何響應(yīng),所以它的選舉狀態(tài)一直是LOOKING狀態(tài);

(2)服務(wù)器2啟動,它與最開始啟動的服務(wù)器1進(jìn)行通信,互相交換自己的選舉結(jié)果,由于兩者都沒有歷史數(shù)據(jù),所以id值較大的服務(wù)器2勝出,但是由于沒有達(dá)到超過半數(shù)以上的服務(wù)器都同意選舉它(這個例子中的半數(shù)以上是3),所以服務(wù)器1、2還是繼續(xù)保持LOOKING狀態(tài);

(3)服務(wù)器3啟動,根據(jù)前面的理論分析,服務(wù)器3成為服務(wù)器1、2、3中的老大,而與上面不同的是,此時有三臺服務(wù)器選舉了它,所以它成為了這次選舉的Leader;

(4)服務(wù)器4啟動,根據(jù)前面的分析,理論上服務(wù)器4應(yīng)該是服務(wù)器1、2、3、4中最大的,但是由于前面已經(jīng)有半數(shù)以上的服務(wù)器選舉了服務(wù)器3,所以它只能接收當(dāng)小弟的命了;

(5)服務(wù)器5啟動,同4一樣當(dāng)小弟。

1.2.2 節(jié)點(diǎn)類型

① Znode有兩種類型:

短暫(ephemeral):客戶端和服務(wù)器端斷開連接后,創(chuàng)建的節(jié)點(diǎn)自己刪除

持久(persistent):客戶端和服務(wù)器端斷開連接后,創(chuàng)建的節(jié)點(diǎn)不刪除

② Znode有四種形式的目錄節(jié)點(diǎn)(默認(rèn)是persistent )

第一、持久化目錄節(jié)點(diǎn)(PERSISTENT)

客戶端與zookeeper斷開連接后,該節(jié)點(diǎn)依舊存在;

第二、持久化順序編號目錄節(jié)點(diǎn)(PERSISTENT_SEQUENTIAL)客戶端與zookeeper斷開連接后,該節(jié)點(diǎn)依舊存在,只是Zookeeper給該節(jié)點(diǎn)名稱進(jìn)行順序編號;

第三、臨時目錄節(jié)點(diǎn)(EPHEMERAL)

客戶端與zookeeper斷開連接后,該節(jié)點(diǎn)被刪除;

第四、臨時順序編號目錄節(jié)點(diǎn)(EPHEMERAL_SEQUENTIAL)

客戶端與zookeeper斷開連接后,該節(jié)點(diǎn)被刪除,只是Zookeeper給該節(jié)點(diǎn)名稱進(jìn)行順序編號。

1.2.3 監(jiān)聽原理

Java大數(shù)據(jù)開發(fā)中ZooKeeper的原理機(jī)制是什么

(1)在Zookeeper的API操作中,創(chuàng)建main()主方法即主線程;

(2)在main線程中創(chuàng)建Zookeeper客戶端(zkClient),這時會創(chuàng)建兩個線程:

線程connet負(fù)責(zé)網(wǎng)絡(luò)通信連接,連接服務(wù)器;

線程Listener負(fù)責(zé)監(jiān)聽;

(3)客戶端通過connet線程連接服務(wù)器,圖中g(shù)etChildren("/" , true) ," / "表示監(jiān)聽的是根目錄,true表示監(jiān)聽,不監(jiān)聽用false;

(4)在Zookeeper的注冊監(jiān)聽列表中將注冊的監(jiān)聽事件添加到列表中,表示這個服務(wù)器中的/path,即根目錄這個路徑被客戶端監(jiān)聽了;

(5)一旦被監(jiān)聽的服務(wù)器根目錄下,數(shù)據(jù)或路徑發(fā)生改變,Zookeeper就會將這個消息發(fā)送給Listener線程;

(6)Listener線程內(nèi)部調(diào)用process方法,采取相應(yīng)的措施,例如更新服務(wù)器列表等。

監(jiān)聽類型:

(1)監(jiān)聽節(jié)點(diǎn)數(shù)據(jù)的變化:get path [watch]

(2)監(jiān)聽子節(jié)點(diǎn)增減的變化:ls patch [watch]

1.2.4 數(shù)據(jù)寫入

Java大數(shù)據(jù)開發(fā)中ZooKeeper的原理機(jī)制是什么

(1)Client向Zookeeper的其中一個Server上寫數(shù)據(jù),發(fā)送一個寫請求;

(2)如果那個Server不是Leader,那么Server會把接收到的請求進(jìn)一步轉(zhuǎn)發(fā)給Leader,這個Leader會把寫請求廣播給各個server,各個Server寫成功后就會通知Leader;

(3)當(dāng)Leader收到大多數(shù)Server數(shù)據(jù)寫成功了,那么就說明數(shù)據(jù)寫成功了,比如三個節(jié)點(diǎn),只要兩個節(jié)點(diǎn)數(shù)據(jù)寫成功了,就認(rèn)為數(shù)據(jù)寫成功了;

(4)Server1會通知Client數(shù)據(jù)寫成功了,這時就認(rèn)為整個寫操作成功。

上述內(nèi)容就是Java大數(shù)據(jù)開發(fā)中ZooKeeper的原理機(jī)制是什么,你們學(xué)到知識或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識儲備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

文章名稱:Java大數(shù)據(jù)開發(fā)中ZooKeeper的原理機(jī)制是什么
轉(zhuǎn)載來源:http://vcdvsql.cn/article46/iippeg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機(jī)網(wǎng)站建設(shè)網(wǎng)站營銷外貿(mào)網(wǎng)站建設(shè)網(wǎng)頁設(shè)計(jì)公司虛擬主機(jī)企業(yè)網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護(hù)公司