基本概念

1.使用場(chǎng)景

在我們大量使用分布式數(shù)據(jù)庫、分布式計(jì)算集群的時(shí)候仅财,是否會(huì)遇到這樣一些問題:
==我想分析一下用戶行為(pageviews),以便我能設(shè)計(jì)出更好的廣告位;
==我想對(duì)用戶的搜索關(guān)鍵詞進(jìn)行統(tǒng)計(jì),分析出前的流行趨勢(shì)述吸;
==有些數(shù)據(jù),存數(shù)據(jù)庫浪費(fèi)锣笨,直接存硬盤操作效率又低;
這個(gè)時(shí)候蝌矛,就可以用消息系統(tǒng)了,尤其是分布式消息系統(tǒng)

2.Kafka使用背景

Paste_Image.png

3.kafka相關(guān)概念

Paste_Image.png

一些基本的概念:
==消費(fèi)者(Consumer):從消息隊(duì)列中請(qǐng)求消息的客戶端應(yīng)用程序错英;
==生產(chǎn)者(Producer):向broker發(fā)布消息的客戶端應(yīng)用程序入撒;
==AMQP服務(wù)器端(broker):用來接收生產(chǎn)者發(fā)送的消息并將這些消息路由給服務(wù)器中的隊(duì)列;//一個(gè)broker即是一臺(tái)機(jī)器

Paste_Image.png
Paste_Image.png

==主題(Topic):一個(gè)主題類似新聞中的體育椭岩、娛樂茅逮、教育等分類概念,在實(shí)際工程中通常一個(gè)業(yè)務(wù)一個(gè)主題判哥;
==分區(qū)(Partition):一個(gè)topic中的消息數(shù)據(jù)按照多個(gè)分區(qū)組織献雅,分區(qū)是kafka消息隊(duì)列組織的最小單位,一個(gè)分區(qū)可以看做是一個(gè)FIFO的隊(duì)列;

partion和topic 的關(guān)系

R涛啊3土稹!一個(gè)非常大的topic可以分布到多個(gè) broker(即服務(wù)器)上夺荒,一個(gè)topic可以分為多個(gè)partition瞒渠,每個(gè)partition是一個(gè)有序的隊(duì)列良蒸。partition中的每條消息 都會(huì)被分配一個(gè)有序的id(offset)。kafka只保證按一個(gè)partition中的順序?qū)⑾l(fā)給consumer伍玖,不保證一個(gè)topic的整體 (多個(gè)partition間)的順序嫩痰。也就是說,一個(gè)topic在集群中可以有多個(gè)partition窍箍,那么分區(qū)的策略是什么串纺?(消息發(fā)送到哪個(gè)分區(qū)上,有兩種基本的策略椰棘,一是采用Key Hash算法纺棺,一是采用Round Robin算法)

Paste_Image.png
Paste_Image.png

4.Consumer Group (CG)

消息系統(tǒng)有兩類,一是廣播邪狞,二是訂閱發(fā)布祷蝌。廣播是把消息發(fā)送給所有的消費(fèi)者;發(fā)布訂閱是把消息只發(fā)送給訂閱者帆卓。Kafka通過Consumer Group組合實(shí)現(xiàn)了這兩種機(jī)制: 實(shí)現(xiàn)一個(gè)topic消息廣播(發(fā)給所有的consumer)和單播(發(fā)給任意一個(gè)consumer)巨朦。一個(gè) topic可以有多個(gè)CG。topic的消息會(huì)復(fù)制(不是真的復(fù)制剑令,是概念上的)到所有的CG糊啡,但每個(gè)CG只會(huì)把消息發(fā)給該CG中的一個(gè) consumer(這是實(shí)現(xiàn)一個(gè)Topic多Consumer的關(guān)鍵點(diǎn):為一個(gè)Topic定義一個(gè)CG,CG下定義多個(gè)Consumer)吁津。如果需要實(shí)現(xiàn)廣播棚蓄,只要每個(gè)consumer有一個(gè)獨(dú)立的CG就可以了。要實(shí)現(xiàn)單播只要所有的consumer在同一個(gè)CG腺毫。用CG還 可以將consumer進(jìn)行自由的分組而不需要多次發(fā)送消息到不同的topic癣疟。典型的應(yīng)用場(chǎng)景是挣柬,多個(gè)Consumer來讀取一個(gè)Topic(理想情況下是一個(gè)Consumer讀取Topic的一個(gè)Partition),那么可以讓這些Consumer屬于同一個(gè)Consumer Group即可實(shí)現(xiàn)消息的多Consumer并行處理潮酒,原理是Kafka將一個(gè)消息發(fā)布出去后,ConsumerGroup中的Consumers可以通過Round Robin的方式進(jìn)行消費(fèi)(Consumers之間的負(fù)載均衡使用Zookeeper來實(shí)現(xiàn))

5.kafka支持的語言

Kafka 客戶端支持當(dāng)前大部分主流語言邪蛔,包括: C急黎、C++、Erlang侧到、Java勃教、.net、perl匠抗、PHP故源、Python、Ruby汞贸、Go绳军、Javascript印机。
可以使用以上任何一種語言和kafka服務(wù)器進(jìn)行通信(即編寫自己的consumer和producer程序)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市门驾,隨后出現(xiàn)的幾起案子射赛,更是在濱河造成了極大的恐慌,老刑警劉巖奶是,帶你破解...
    沈念sama閱讀 219,589評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件楣责,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡聂沙,警方通過查閱死者的電腦和手機(jī)秆麸,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,615評(píng)論 3 396
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來及汉,“玉大人蛔屹,你說我怎么就攤上這事』砩” “怎么了兔毒?”我有些...
    開封第一講書人閱讀 165,933評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)甸箱。 經(jīng)常有香客問我育叁,道長(zhǎng),這世上最難降的妖魔是什么芍殖? 我笑而不...
    開封第一講書人閱讀 58,976評(píng)論 1 295
  • 正文 為了忘掉前任豪嗽,我火速辦了婚禮,結(jié)果婚禮上豌骏,老公的妹妹穿的比我還像新娘龟梦。我一直安慰自己,他們只是感情好窃躲,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,999評(píng)論 6 393
  • 文/花漫 我一把揭開白布计贰。 她就那樣靜靜地躺著,像睡著了一般蒂窒。 火紅的嫁衣襯著肌膚如雪躁倒。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,775評(píng)論 1 307
  • 那天洒琢,我揣著相機(jī)與錄音秧秉,去河邊找鬼。 笑死衰抑,一個(gè)胖子當(dāng)著我的面吹牛象迎,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播呛踊,決...
    沈念sama閱讀 40,474評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼砾淌,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼完丽!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起拇舀,我...
    開封第一講書人閱讀 39,359評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤逻族,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后骄崩,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體聘鳞,經(jīng)...
    沈念sama閱讀 45,854評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,007評(píng)論 3 338
  • 正文 我和宋清朗相戀三年要拂,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了抠璃。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,146評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡脱惰,死狀恐怖搏嗡,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情拉一,我是刑警寧澤采盒,帶...
    沈念sama閱讀 35,826評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站蔚润,受9級(jí)特大地震影響磅氨,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜嫡纠,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,484評(píng)論 3 331
  • 文/蒙蒙 一烦租、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧除盏,春花似錦叉橱、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,029評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至蠢棱,卻和暖如春锌杀,著一層夾襖步出監(jiān)牢的瞬間甩栈,已是汗流浹背泻仙。 一陣腳步聲響...
    開封第一講書人閱讀 33,153評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留量没,地道東北人玉转。 一個(gè)月前我還...
    沈念sama閱讀 48,420評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像殴蹄,于是被迫代替她去往敵國(guó)和親究抓。 傳聞我的和親對(duì)象是個(gè)殘疾皇子猾担,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,107評(píng)論 2 356

推薦閱讀更多精彩內(nèi)容

  • 本文轉(zhuǎn)載自http://dataunion.org/?p=9307 背景介紹Kafka簡(jiǎn)介Kafka是一種分布式的...
    Bottle丶Fish閱讀 5,471評(píng)論 0 34
  • 背景介紹 Kafka簡(jiǎn)介 Kafka是一種分布式的,基于發(fā)布/訂閱的消息系統(tǒng)刺下。主要設(shè)計(jì)目標(biāo)如下: 以時(shí)間復(fù)雜度為O...
    高廣超閱讀 12,836評(píng)論 8 167
  • kafka的定義:是一個(gè)分布式消息系統(tǒng)绑嘹,由LinkedIn使用Scala編寫,用作LinkedIn的活動(dòng)流(Act...
    時(shí)待吾閱讀 5,324評(píng)論 1 15
  • Kafka入門經(jīng)典教程-Kafka-about云開發(fā) http://www.aboutyun.com/threa...
    葡萄喃喃囈語閱讀 10,833評(píng)論 4 54
  • Kafka系列一- Kafka背景及架構(gòu)介紹 Kafka簡(jiǎn)介 Kafka是一種分布式的橘茉,基于發(fā)布/訂閱的消息系統(tǒng)工腋。...
    raincoffee閱讀 2,209評(píng)論 0 22