Hyperledger Fabric推薦Kafa用于生產(chǎn)環(huán)境。Kafa是一個分布式、具有水平伸縮能力、崩潰容錯能力的日志系統(tǒng)。在Hyperledger Fabric區(qū)塊鏈中可以有多個Kafka節(jié)點(diǎn),使用zookeeper進(jìn)行同步管理。本文將介紹Kfaka的基本工作原理,以及在HyperledgerFabric中使用Kafka和zookeeper實(shí)現(xiàn)共識的原理,并通過一個實(shí)例剖析Hyperledger Farbic中Kafka共識的達(dá)成過程。
目前成都創(chuàng)新互聯(lián)已為上1000+的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)頁空間、網(wǎng)站改版維護(hù)、企業(yè)網(wǎng)站設(shè)計、石峰網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。如果希望快速掌握Fabric區(qū)塊鏈的鏈碼及應(yīng)用開發(fā),建議訪問匯智網(wǎng)的在線互動課程:
- Fabric區(qū)塊鏈Java開發(fā)詳解
- Fabric區(qū)塊鏈NodeJs開發(fā)詳解
Kafka本質(zhì)上是一個消息處理系統(tǒng),它使用的是經(jīng)典的發(fā)布-訂閱模型。消息的消費(fèi)者訂閱特定的主題,以便收到新消息的通知,生產(chǎn)者則負(fù)責(zé)消息的發(fā)布。
當(dāng)主題的數(shù)據(jù)規(guī)模變得越來越大時,可以拆分為多個分區(qū),Kafka保障在一個分區(qū)內(nèi)的消息是按順序排列的。
Kafka并不跟蹤消費(fèi)者讀取了哪些消息,也不會自動刪除已經(jīng)讀取的消息。Kafka會保存消息一段時間,例如一天,或者直到數(shù)據(jù)規(guī)模超過一定的閾值。消費(fèi)者需要輪詢新的消息,這是的他們可以根據(jù)自己的需求來定位消息,因此可以重放或重新處理事件。消費(fèi)者處于不同的消費(fèi)者分組,對應(yīng)一個或多個消費(fèi)者進(jìn)程。每個分區(qū)被分貝給單一的消費(fèi)者進(jìn)程,因此同樣的消息不會被多次讀取。
崩潰容錯機(jī)制是通過在多個Kafka代理之間復(fù)制分區(qū)來實(shí)現(xiàn)的。因此如果一個代理由于軟件或硬件故障掛掉,數(shù)據(jù)也不會丟失。當(dāng)然接下來還需要一個領(lǐng)導(dǎo)-跟隨機(jī)制,領(lǐng)導(dǎo)者持有分區(qū),跟隨者則進(jìn)行分區(qū)的復(fù)制。當(dāng)領(lǐng)導(dǎo)者掛掉后,會有某個跟隨者轉(zhuǎn)變?yōu)樾碌念I(lǐng)導(dǎo)者。
如果一個消費(fèi)者訂閱了某個主體,那么它怎么知道從哪個分區(qū)領(lǐng)導(dǎo)者來讀取訂閱的消息?
答案在于zookeeper服務(wù)。
zookeeper是一個分布式key-value存儲庫,通常用于存儲元數(shù)據(jù)及集群機(jī)制的實(shí)現(xiàn)。zookeeper允許服務(wù)(Kafka代理)的客戶端訂閱變化并獲得實(shí)時通知。這就是代理如何確定應(yīng)當(dāng)使用哪個分區(qū)領(lǐng)導(dǎo)者的原因。zookeeper有超強(qiáng)的故障容錯能力,因此Kafka的運(yùn)行嚴(yán)重依賴于它。
在zookeeper中存儲的元數(shù)據(jù)包括:
要理解在超級賬本Hyperledger Fabric中的Kafka是如何工作的,首先需要理解幾個重要的術(shù)語:
注意,雖然在Hyperledger Fabric中Kafka被稱為共識(Consensus),但是其核心是交易排序服務(wù)以及額外的崩潰容錯能力。
在Hyperledger Fabric中的Kafka實(shí)際運(yùn)行邏輯如下:
考慮下圖,假設(shè)排序節(jié)點(diǎn)OSN0和OSN2時連接到廣播客戶端,OSN1連接到分發(fā)客戶端。
Kakfa的高性能對于Hyperledger Fabric有很大的幫助,多個排序節(jié)點(diǎn)通過Kafka實(shí)現(xiàn)同步,而Kafka本身并不是排序節(jié)點(diǎn),它只是將排序節(jié)點(diǎn)通過流連接起來。雖然Kafka支持崩潰容錯,它并不能提供對網(wǎng)絡(luò)中惡意***的保護(hù)。需要一種拜占庭容錯方案(BFT)才可以對抗惡意的***,但是目前在Farbic框架中還有待實(shí)現(xiàn)這一機(jī)制。
總而言之,在Hyperledger Farbic中,Kafka共識模塊是可以用于生產(chǎn)環(huán)境的,它可以支持崩潰容錯,但無法對抗惡意***。
原文:The ABCs of Kafka in Hyperledger Fabric
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
標(biāo)題名稱:FabricKafka入門-創(chuàng)新互聯(lián)
瀏覽路徑:http://aaarwkj.com/article8/dddgop.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃、軟件開發(fā)、移動網(wǎng)站建設(shè)、標(biāo)簽優(yōu)化、手機(jī)網(wǎng)站建設(shè)、網(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)
猜你還喜歡下面的內(nèi)容