您好,登錄后才能下訂單哦!
這篇文章給大家介紹kafka背景及架構(gòu)如何理解,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。
背景及架構(gòu)介紹
一、 背景
什么是kafka呢,他是LinkedIn開發(fā)的一個(gè)分布式消息系統(tǒng),用scala編寫的,可以水平擴(kuò)展和高吞吐率。
原本開發(fā)自LinkedIn,用作他們的活動(dòng)流和運(yùn)營數(shù)據(jù)處理管道的基礎(chǔ),之后被多家公司使用,慢慢發(fā)展壯大起來。
二、 簡單介紹
kafka是分布式的,基于發(fā)布/訂閱的消息系統(tǒng)。
1、 即使對(duì)TB級(jí)以上數(shù)據(jù)也能保證常數(shù)時(shí)間復(fù)雜度的訪問性能。
2、 高吞吐率:即使在非常廉價(jià)的商用機(jī)器上也能做到單機(jī)支持每秒100k條以上消息的傳輸。
3、 支持分區(qū),消息分布式消費(fèi),但是只能保證每個(gè)partition內(nèi)的消息順序傳輸。并且支持在線水平擴(kuò)展。
為何使用消息中間件呢,大家肯定接觸過rabbitmq、activemq、redis等,估計(jì)有很多感觸。我就不詳細(xì)描述了,這個(gè)只能親身參加過大的技術(shù)架構(gòu),自己身在其中,并且感受到不用消息中間件和用的區(qū)別。
三、 架構(gòu)
了解架構(gòu)之前,我們先了解一下基本名詞。
Broker:安裝了kafka的服務(wù)器就是一個(gè)broker。
Topic:消息的類比,最好一類數(shù)據(jù)定一個(gè)topic去存儲(chǔ)傳輸。
Partition:分區(qū),topic可以定分到幾個(gè)分區(qū)中。
Producer:發(fā)送消息,發(fā)送者。
Consumer:消費(fèi)消息,消費(fèi)者。
Consumer Group:每個(gè)Consumer屬于一個(gè)特定的Consumer Group。
從圖中來看,kafka集群包含若干個(gè)producer和consumer以及broker,還有一個(gè)zk集群。Producer通過push模式將數(shù)據(jù)發(fā)送到broker,Consumer通過pull模式拉取數(shù)據(jù)。
Producer發(fā)送消息到broker時(shí),根據(jù)partition機(jī)制選擇分不到哪一個(gè)partition,設(shè)置合理的情況下,所有消息可
以均勻分不到不同的partition里,實(shí)現(xiàn)了負(fù)載均衡。
關(guān)于kafka背景及架構(gòu)如何理解就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。