在LinkedIn的 Kafka 生態(tài)系統(tǒng)

在LinkedIn的 Kafka 生態(tài)系統(tǒng)

Apache Kafka是一個(gè)高度可擴(kuò)展的消息傳遞系統(tǒng),作為L(zhǎng)inkedIn的中央數(shù)據(jù)管道起著至關(guān)重要的作用撵割。 Kafka 是在2010年在LinkedIn開(kāi)發(fā)的,它目前在1400多家經(jīng)紀(jì)商處理超過(guò)1.4萬(wàn)億條消息。Kafka 強(qiáng)大的耐用性和低延遲使我們能夠使用Kafka為L(zhǎng)inkedIn提供一些新的關(guān)鍵任務(wù)用例。其中包括用基于Kafka的復(fù)制责循,威尼斯替代Espresso中的 MySQL復(fù)制,并支持下一代Databus(正在開(kāi)發(fā)中)攀操。

隨著我們的 Kafka 使用量繼續(xù)快速增長(zhǎng)院仿,我們必須解決一些重大問(wèn)題,以使所有這些成為可能崔赌,所以我們圍繞 Kafka 開(kāi)發(fā)了一個(gè)完整的生態(tài)系統(tǒng)意蛀。在這篇文章中耸别,我將總結(jié)一些我們的解決方案健芭,這些解決方案對(duì)于使用 Kafka 的人來(lái)說(shuō)可能是有用的,并且強(qiáng)調(diào)幾個(gè)即將到來(lái)的活動(dòng)秀姐,您可以從中了解更多慈迈。

Kafka 生態(tài)系統(tǒng)在LinkedIn
上圖并未完全捕捉到LinkedIn上的各種數(shù)據(jù)管道和拓?fù)浣Y(jié)構(gòu),但是可以說(shuō)明LinkedIn Kafka部署中的關(guān)鍵實(shí)體以及它們?nèi)绾蜗嗷ビ绊憽?/p>

核心 Kafka 服務(wù)
Kafka 經(jīng)紀(jì)人

我們?yōu)槊總€(gè)數(shù)據(jù)中心的不同目的運(yùn)行幾組 Kafka 經(jīng)紀(jì)人。我們目前在LinkedIn上部署了近1400名經(jīng)紀(jì)人痒留,每周收到超過(guò)2 PB的數(shù)據(jù)谴麦。我們通常運(yùn)行Apache Kafka主干,每個(gè)季度都會(huì)削減一個(gè)新的內(nèi)部版本伸头。

Kafka 鏡子制造商

鏡像制造商使我們能夠通過(guò)從源集群中消費(fèi)并生成目標(biāo)集群來(lái)制作集群副本匾效。在數(shù)據(jù)中心和數(shù)據(jù)中心內(nèi)都有多個(gè)鏡像管道。Todd Palino的文章總結(jié)了我們?nèi)绾问褂眠@個(gè)來(lái)促進(jìn)LinkedIn上的Kafka的多色恤磷。

模式注冊(cè)表

我們已經(jīng)在LinkedIn的數(shù)據(jù)管道內(nèi)將Avro標(biāo)準(zhǔn)化為通用語(yǔ)言面哼。因此,每個(gè)生產(chǎn)者都編碼Avro數(shù)據(jù)扫步,在模式注冊(cè)中注冊(cè)Avro模式魔策,并在每個(gè)序列化消息中嵌入一個(gè)模式ID。消費(fèi)者從模式注冊(cè)表服務(wù)中獲取與ID相對(duì)應(yīng)的模式河胎,以反序列化Avro消息闯袒。雖然我們的數(shù)據(jù)中心有多個(gè)模式注冊(cè)表實(shí)例,但這些實(shí)例由包含模式的單個(gè)(復(fù)制)數(shù)據(jù)庫(kù)支持游岳。

Kafka REST代理

Kafka REST是我們?yōu)榉荍ava客戶端提供的HTTP代理政敢。我們的大多數(shù)Kafka集群都有一個(gè)關(guān)聯(lián)的REST代理。Kafka REST也是主題行政運(yùn)作的官方網(wǎng)關(guān)吭历。

Nuage

Kafka大部分都是自助服務(wù):用戶定義自己的事件模式并開(kāi)始制作主題堕仔。Kafka代理自動(dòng)創(chuàng)建具有默認(rèn)配置和分區(qū)計(jì)數(shù)的主題。最后晌区,任何消費(fèi)者都可以消費(fèi)這個(gè)話題摩骨,使 Kafka 完全開(kāi)放。

隨著 Kafka 的使用量不斷增加朗若,出現(xiàn)新的使用案例恼五,上述方法中出現(xiàn)了一些限制。首先哭懈,一些主題需要自定義配置灾馒,需要對(duì)Kafka SRE進(jìn)行特殊請(qǐng)求。其次遣总,大多數(shù)用戶很難發(fā)現(xiàn)和檢查他們擁有的主題的元數(shù)據(jù)(例如睬罗,字節(jié)率,審計(jì)完整性旭斥,模式歷史等)容达。第三,由于Kafka包含了各種安全功能垂券,某些主題所有者可能希望限制對(duì)主題的訪問(wèn)花盐,并自行管理ACL。

Nuage是LinkedIn在線數(shù)據(jù)基礎(chǔ)設(shè)施資源的自助服務(wù)門戶,最近我們與Nuage團(tuán)隊(duì)合作算芯,在Nuage內(nèi)增加了對(duì)Kafka的支持柒昏。這為用戶提供了一個(gè)方便的地方來(lái)管理他們的主題和相關(guān)的元數(shù)據(jù)。Nuage將主題CRUD操作委托給Kafka REST熙揍,它抽象出Kafka行政事業(yè)的細(xì)微差別职祷。

圖書館
LiKafka客戶端庫(kù)

LiKafka制作人包裝開(kāi)放源碼制作人,但也進(jìn)行模式注冊(cè)届囚,Avro編碼堪旧,審計(jì)和支持大消息。審計(jì)事件計(jì)算在10分鐘窗口中發(fā)送給每個(gè)主題的事件數(shù)量奖亚。同樣淳梦,消費(fèi)者包裝開(kāi)源消費(fèi)者,并進(jìn)行模式查找昔字,Avro解碼和審計(jì)爆袍。

Kafka 推工作

Kafka推送工作用于將豐富的數(shù)據(jù)從Hadoop發(fā)送到Kafka,供在線服務(wù)使用作郭。推送作業(yè)在CORP環(huán)境中的Hadoop集群上運(yùn)行陨囊,并將數(shù)據(jù)生成到CORP數(shù)據(jù)部署Kafka集群中。鏡像制造者將這些數(shù)據(jù)復(fù)制到PROD數(shù)據(jù)部署集群中夹攒。

Gobblin

Gobblin是LinkedIn的新的攝取框架蜘醋,并貶低了 Camus,這是我們以前的Kafka to Hadoop橋梁咏尝。它基本上是一個(gè)大的Hadoop作業(yè)压语,它將Kafka中的所有數(shù)據(jù)復(fù)制到Hadoop中進(jìn)行離線處理。

監(jiān)測(cè)服務(wù)
Kafka 監(jiān)視器

這是Kafka部署的一套持續(xù)運(yùn)行的驗(yàn)證測(cè)試编检,我們利用這些測(cè)試來(lái)驗(yàn)證新版本以及監(jiān)控現(xiàn)有部署胎食。我們目前正在監(jiān)控基本但重要的指標(biāo),如端到端延遲和數(shù)據(jù)丟失允懂。我們預(yù)計(jì)未來(lái)我們將在測(cè)試集群中使用這個(gè)框架來(lái)不斷地測(cè)試管理操作的正確性(例如分區(qū)重新分配)厕怜,甚至利用諸如Simoorg之類的錯(cuò)誤注入框架來(lái)確保我們能夠滿足我們的可用性SLA即使在各種失敗的情況下。

Kafka 審計(jì)

我們的審計(jì)跟蹤基礎(chǔ)架構(gòu)中有兩個(gè)關(guān)鍵組件:

一種 Kafka 審計(jì)服務(wù)蕾总,用于消費(fèi)和重新計(jì)算 Kafka 集群中的所有數(shù)據(jù)粥航,并發(fā)出類似于追蹤生產(chǎn)者的審計(jì)事件。這使我們能夠?qū)afka集群上的計(jì)數(shù)與生產(chǎn)者計(jì)數(shù)進(jìn)行協(xié)調(diào)生百,并檢測(cè)數(shù)據(jù)丟失(如果有的話)递雀。
Kafka 審計(jì)驗(yàn)證服務(wù),持續(xù)監(jiān)控?cái)?shù)據(jù)的完整性置侍,并提供用于查看審計(jì)跟蹤的用戶界面映之。此服務(wù)消耗并將審計(jì)事件插入審計(jì)數(shù)據(jù)庫(kù),并在數(shù)據(jù)延遲或丟失時(shí)發(fā)出警報(bào)蜡坊。我們使用審計(jì)數(shù)據(jù)庫(kù)來(lái)調(diào)查發(fā)生的警報(bào)杠输,并精確地指出數(shù)據(jù)丟失的位置。
Kafka 生態(tài)系統(tǒng)
地洞

Burrow是監(jiān)控Kafka消費(fèi)者健康的棘手問(wèn)題的一個(gè)優(yōu)雅的答案秕衙,并提供了一個(gè)消費(fèi)者狀態(tài)的全面視圖蠢甲。它提供消費(fèi)滯后檢查作為服務(wù),而不需要指定閾值据忘。它以主題分區(qū)粒度監(jiān)視所有消費(fèi)者的承諾偏移鹦牛,并根據(jù)需要計(jì)算這些消費(fèi)者的狀態(tài)。

流處理在LinkedIn
Samza是LinkedIn的流處理平臺(tái)勇吊,可以幫助用戶盡快完成流處理工作并投入生產(chǎn)曼追。流處理領(lǐng)域一直嗡嗡作響,有許多開(kāi)源系統(tǒng)正在做類似的事情汉规。與專注于非常廣泛的功能集的其他流處理系統(tǒng)不同礼殊,我們專注于使Samza在LinkedIn規(guī)模下可靠,高性能和可操作≌胧罚現(xiàn)在我們有很多生產(chǎn)工作量正在運(yùn)行晶伦,我們可以把注意力放在拓寬功能集上。這篇較早的博客文章詳細(xì)介紹了我們關(guān)于相關(guān)性啄枕,分析婚陪,站點(diǎn)監(jiān)控,安全等方面的生產(chǎn)用例以及我們正在開(kāi)發(fā)的一些新功能频祝。

即將舉行的活動(dòng)
如果您有興趣進(jìn)一步了解我們的Kafka生態(tài)系統(tǒng)泌参,我們?nèi)绾尾渴鸷团懦齂afka故障,以及我們的新特性 /用例常空,我們邀請(qǐng)您參加這些即將到來(lái)的會(huì)議:

4月26日:Espresso數(shù)據(jù)庫(kù)復(fù)制與Kafka @ Kafka峰會(huì):Espresso是LinkedIn的分布式文檔商店及舍,托管我們最重要的成員數(shù)據(jù)。Tom Quiggle將介紹為什么Espresso將從MySQL的內(nèi)置復(fù)制機(jī)制切換到Kafka窟绷,以及Espresso如何將Kafka作為復(fù)制流 - 這是一個(gè)將Kafka的耐久性和可用性保證加入測(cè)試的用例锯玛!
4月26日:更多的數(shù)據(jù)中心,更多的問(wèn)題 @ Kafka峰會(huì):Todd Palino將談?wù)摱鄶?shù)據(jù)中心和多層 Kafka 集群的基礎(chǔ)架構(gòu)兼蜈,并就如何監(jiān)控整個(gè)生態(tài)系統(tǒng)提供實(shí)用技巧攘残。
4月26日: 在LinkedIn Kafka 天,2015年 @ Kafka 峰會(huì):霍埃爾·科什將深入了解一些最困難为狸,最突出的 Kafka 生產(chǎn)問(wèn)題是LinkedIn創(chuàng)下2015年該談話會(huì)在每個(gè)停運(yùn)及其影響歼郭,以及方法到檢測(cè),調(diào)查和整治辐棒。
5月10日:建立一個(gè)自助服務(wù) Kafka 系統(tǒng) @ 阿帕奇:大數(shù)據(jù):霍埃爾·科什將提供一個(gè)深入了解成什么需要通過(guò)共同編織的安全性病曾,配額的RESTful API和Nuage使 Kafka 一個(gè)真正的多租戶服務(wù)牍蜂。
5月9日: 背后縮放流處理應(yīng)用程序的秘密 @ 阿帕奇:大數(shù)據(jù):Navina拉梅什將描述阿帕奇Samza對(duì)國(guó)家管理和容錯(cuò)方法,并討論了如何可以有效地用于擴(kuò)展?fàn)顟B(tài)流處理應(yīng)用程序泰涂。
6月28-30日: λ-少在LinkedIn @流處理@規(guī)模的Hadoop峰會(huì):Yi·潘和卡蒂克·帕拉梅西瓦姆將突出Samza的主要優(yōu)勢(shì)是實(shí)時(shí)流處理平臺(tái)鲫竞,其在LinkedIn使用的動(dòng)手概述。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末逼蒙,一起剝皮案震驚了整個(gè)濱河市从绘,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌是牢,老刑警劉巖僵井,帶你破解...
    沈念sama閱讀 216,496評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異驳棱,居然都是意外死亡批什,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,407評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門社搅,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)渊季,“玉大人,你說(shuō)我怎么就攤上這事罚渐∪春海” “怎么了?”我有些...
    開(kāi)封第一講書人閱讀 162,632評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵荷并,是天一觀的道長(zhǎng)合砂。 經(jīng)常有香客問(wèn)我,道長(zhǎng)源织,這世上最難降的妖魔是什么翩伪? 我笑而不...
    開(kāi)封第一講書人閱讀 58,180評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮谈息,結(jié)果婚禮上缘屹,老公的妹妹穿的比我還像新娘。我一直安慰自己侠仇,他們只是感情好轻姿,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,198評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著逻炊,像睡著了一般互亮。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上余素,一...
    開(kāi)封第一講書人閱讀 51,165評(píng)論 1 299
  • 那天豹休,我揣著相機(jī)與錄音,去河邊找鬼桨吊。 笑死威根,一個(gè)胖子當(dāng)著我的面吹牛凤巨,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播洛搀,決...
    沈念sama閱讀 40,052評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼敢茁,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了姥卢?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書人閱讀 38,910評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤渣聚,失蹤者是張志新(化名)和其女友劉穎独榴,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體奕枝,經(jīng)...
    沈念sama閱讀 45,324評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡棺榔,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,542評(píng)論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了隘道。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片症歇。...
    茶點(diǎn)故事閱讀 39,711評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖谭梗,靈堂內(nèi)的尸體忽然破棺而出忘晤,到底是詐尸還是另有隱情,我是刑警寧澤激捏,帶...
    沈念sama閱讀 35,424評(píng)論 5 343
  • 正文 年R本政府宣布设塔,位于F島的核電站,受9級(jí)特大地震影響远舅,放射性物質(zhì)發(fā)生泄漏闰蛔。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,017評(píng)論 3 326
  • 文/蒙蒙 一图柏、第九天 我趴在偏房一處隱蔽的房頂上張望序六。 院中可真熱鬧,春花似錦蚤吹、人聲如沸例诀。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 31,668評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)余佃。三九已至,卻和暖如春跨算,著一層夾襖步出監(jiān)牢的瞬間爆土,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 32,823評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工诸蚕, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留步势,地道東北人氧猬。 一個(gè)月前我還...
    沈念sama閱讀 47,722評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像坏瘩,于是被迫代替她去往敵國(guó)和親盅抚。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,611評(píng)論 2 353

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

  • 姓名:周小蓬 16019110037 轉(zhuǎn)載自:http://blog.csdn.net/YChenFeng/art...
    aeytifiw閱讀 34,721評(píng)論 13 425
  • 原文:Kafka Ecosystem at LinkedIn 作者:Joel Koshy 譯者:杰微刊兼職翻譯汪...
    微笑0619閱讀 1,744評(píng)論 0 14
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理倔矾,服務(wù)發(fā)現(xiàn)妄均,斷路器,智...
    卡卡羅2017閱讀 134,651評(píng)論 18 139
  • 本文轉(zhuǎn)載自http://dataunion.org/?p=9307 背景介紹Kafka簡(jiǎn)介Kafka是一種分布式的...
    Bottle丶Fish閱讀 5,469評(píng)論 0 34
  • 遠(yuǎn)古時(shí)候起哪自,人類的基因里就留下了面對(duì)危險(xiǎn)局面時(shí)要選擇“打”或是“逃”的選擇傾向丰包。碰到讓自己害怕的就逃,不怕的就打壤巷。...
    有魚上上簽閱讀 203評(píng)論 0 1