您现在的位置是:Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款 > 

05 發布者訂閱模式本質原理(網絡營銷策略理論有哪些啊???)

Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款2024-05-14 08:16:27【】8人已围观

简介數據要被原子性的操作。也就是說讀操作將獲取與節點相關的所有數據,寫操作也將替換掉節點的所有數據。5)在zookeeper創建順序節點(create-s),節點路徑后加編號,這個計數對于此節點的父節點來

數據要被原子性的操作 。也就是說讀操作將獲取與節點相關的所有數據,寫操作也將替換掉節點的所有數據。

5)在zookeeper創建順序節點(create -s ),節點路徑后加編號,這個計數對于此節點的父節點來說是唯一的。

/app/

/s100000000001

/s100000000002

6)ZooKeeper中的節點有兩種,分別為 臨時節點和永久節點 。節點的類型在創建時即被確定,并且不能改變。

① 臨時節點 :在客戶端用create -e創建,該節點的生命周期依賴于創建它們的會話。一旦會話(Session)結束,臨時節點將被自動刪除,當然可以也可以手動刪除。雖然每個臨時的Znode都會綁定到一個客戶端會話,但他們對所有的客戶端還是可見的。另外,**ZooKeeper的臨時節點不允許擁有子節點。

② 永久節點 :在客戶端用create 創建,該節點的生命周期不依賴于會話,并且只有在客戶端顯示執行刪除操作的時候,他們才能被刪除。

7) 客戶端可以給節點設置watch,我們稱之為監視器 。當節點狀態發生改變時(Znode的增、刪、改)將會觸發watch所對應的操作。當watch被觸發時,ZooKeeper將會向客戶端發送且僅發送一條通知。

分布式鎖

zookeeper 是高可用協調流程圖

1.2 zookeepr角色介紹

領導者(leader) ,負責進行投票的發起和決議,更新系統狀態(數據同步),發送心跳。

學習者(learner) ,包括跟隨者(follower)和觀察者(observer)。

跟隨者(follower) ,用于接受客戶端請求、向客戶端返回結果,在選主過程中參與投票。

觀察者(Observer) ,可以接受客戶端請求,會把請求轉發給leader, 但observer不參加投票過程,只同步leader的狀態 ,observer的目的是為了擴展系統,提高讀取速度。

1)leader失效后會在follower中重新選舉新的leader

2)每個follower都和leader有連接,接受leader的數據更新操作

3)客戶端可以連接到每個server,每個server的數據完全相同

4)每個節點的服務Server,記錄事務日志和快照到持久存儲

1.3 工作原理

Zookeeper的核心是原子廣播,這個機制保證了各個Server之間的同步。實現這個機制的協議叫做Zab協議。 Zab協議有兩種模式 ,它們分別是恢復模式(選主)和廣播模式(同步)。

恢復模式: 當服務啟動或者在領導者崩潰后,Zab就進入了恢復模式,恢復模式不接受客戶端請求,當領導者被選舉出來,且大多數Server完成了和leader的狀態同步以后,恢復模式就結束了。狀態同步保證了leader和Server具有相同的系統狀態。

廣播模式: 一旦Leader已經和多數的Follower進行了狀態同步后,他就可以開始廣播消息了,即進入廣播狀態。這時候當一個Server加入ZooKeeper服務中,它會在恢復模式下啟動,發現Leader,并和Leader進行狀態同步。待到同步結束,它也參與消息廣播。ZooKeeper的廣播狀態一直到Leader崩潰了或者Leader失去了大部分的Followers支持。

1.4 Zookeeper節點數據操作流程

(1)寫操作

1)在Client向Follwer 或 Observer 發出一個寫的請求;

2)Follwer 或 Observer 把請求發送給Leader;

3)Leader接收到以后向所有follower發起提案;

4)Follwer收到提案后執行寫操作,然后把操作結果發送給Leader;

5)當多數follower返回提案結果后,leader會買粉絲mit該提議,通知其他Follower 和 Observer 同步信息;

6)Follwer 或Observer把請求結果返回給Client。

(2)讀操作

1)在Client向Follwer 或 Observer 發出一個讀的請求;

2)Follwer 或 Observer 把請求結果返回給Client;

1.5 主要特點

最終一致性 :client不論連接到哪個Server,展示給它都是同一個視圖,這是zookeeper最重要的特性;

可靠性 :具有簡單、健壯、良好的性能,如果消息被某一臺服務器接受,那么它將被所有的服務器接受;

實時性 :Zookeeper保證客戶端將在一個時間間隔范圍內獲得服務器的更新信息,或者服務器失效的信息。但由于網絡延時等原因,Zookeeper不能保證兩個客戶端能同時得到剛更新的數據,如果需要最新數據,應該在讀數據之前調用sync()接口;

等待無關(wait-買粉絲) :慢的或者失效的client,不得干預快速的client的請求,使得每個client都能有效的等待;

原子性 :更新只能成功或者失敗,沒有中間狀態;

順序性 :按照客戶端發送請求的順序更新數據。

1.6 zookeepr應用場景

1.6.1 數據發布與訂閱

發布與訂閱即所謂的配置管理,顧名思義就是將數據發布到ZK節點上,供訂閱者動態獲取數據,實現配置信息的集中式管理和動態更新。

應用配置集中到節點上,應用啟動時主動獲取,并在節點上注冊一個watcher,每次配置更新都會通知到應用。

1.6.2 命名空間服務  分布式命名服務,創建一個節點后,節點的路徑就是全局唯一的,可以作為全局名稱使用。

1.6.3 分布式通知/協調

不同的系統都監聽同一個節點,一旦有了更新,另一個系統能夠收到通知。

1.6.4 分布式鎖

Zookeeper能保證數據的強一致性,用戶任何時候都可以相信集群中每個節點的數據都是相同的。鎖的兩種體現方式:

(1)保持獨占

一個用戶創建一個節點作為鎖,另一個用戶檢測該節點,如果存在,代表別的用戶已經鎖住,如果不存在,則可以創建一個節點,代表擁有一個鎖。

(2)控制時序

有一個節點作為父節點,其底下是帶有編號的子節點,所有要獲取鎖的用戶,需要在父節點下創建帶有編號的子節點,編號最小的會持有鎖;當最我號的節點被刪除后,鎖被釋放,再重新找最我號的節點來持有鎖,這樣保證了全局有序。

1.6.5 集群管理

每個加入集群的機器都創建一個節點,寫入自己的狀態。監控父節點的用戶會收到通知,進行相應的處理。離開時刪除節點,監控父節點的用戶同樣會收到通知。

很赞哦!(56919)

Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款的名片

职业:程序员,设计师

现居:河北省衡水深州市

工作室:小组

Email:[email protected]