Apache Kafka如何讓流數(shù)據(jù)進(jìn)入主流
譯文【51CTO.com快譯】開源Apache Kafka是一項(xiàng)高效的大數(shù)據(jù)策略中日益重要的核心部分,本文解釋了個(gè)中原委。
Apache Kafka是源自大數(shù)據(jù)潮流的最激動(dòng)人心的開源項(xiàng)目之一。Kafka最初起源于領(lǐng)英(LinkedIn),現(xiàn)在是廣泛的開源開發(fā)社區(qū)中日益主流的一部分。實(shí)際上,Kafka已進(jìn)入到了關(guān)鍵時(shí)刻,因?yàn)樗挥米饕环N管理企業(yè)組織流數(shù)據(jù)的核心平臺(tái),包括:金融服務(wù)業(yè)的物聯(lián)網(wǎng)操作、欺詐和安全,零售業(yè)的商店庫(kù)存跟蹤以及其他行業(yè)的應(yīng)用場(chǎng)合。
Kafka這個(gè)例子表明了領(lǐng)英如何成為護(hù)送內(nèi)部代碼進(jìn)入到充滿活力的開源社區(qū)方面的一個(gè)典范。
內(nèi)哈·納克赫德(Neha Narkhede)是Confluent的聯(lián)合創(chuàng)始人兼***技術(shù)官,他之前是領(lǐng)英數(shù)據(jù)流基礎(chǔ)設(shè)施的負(fù)責(zé)人,近日接受了TechRepublic的采訪,暢談了企業(yè)采用Kafka的情況以及管理流數(shù)據(jù)的***方法。
TechRepublic:Apache Kafka是如何進(jìn)入企業(yè)主流環(huán)境的?
納克赫德:據(jù)Kafka社區(qū)最近開展的一項(xiàng)調(diào)查顯示,68%的Kafka用戶計(jì)劃在未來(lái)6個(gè)月至12個(gè)月整合更多的數(shù)據(jù)流處理技術(shù);由于使用Kafka的應(yīng)用程序數(shù)量越來(lái)越多,接受調(diào)查的企業(yè)組織中65%計(jì)劃在未來(lái)12個(gè)月招聘擁有Kafka技能的員工。
在最近的Kafka峰會(huì)上,我們聽到優(yōu)步、網(wǎng)飛、Dropbox、HomeAway、高盛及更多的公司都在使用Kafka,實(shí)時(shí)做出業(yè)務(wù)決策。
比如說(shuō),優(yōu)步完善了其數(shù)據(jù)流處理系統(tǒng),以便處理優(yōu)步市場(chǎng)(Uber Marketplace)中的許多使用場(chǎng)景,而Kafka在構(gòu)建一條可靠、高效的數(shù)據(jù)管道方面扮演了重要角色。最廣為人知的例子之一就是動(dòng)態(tài)定價(jià)策略(surge pricing)。設(shè)想一下:獲取所有數(shù)據(jù)來(lái)實(shí)時(shí)進(jìn)行定價(jià):從用戶需求到路面上車輛的數(shù)量,做出決定:每一分鐘的價(jià)格應(yīng)該是多少。
這個(gè)典例表明了實(shí)時(shí)數(shù)據(jù)管道的實(shí)際運(yùn)用。
HomeAway是另一個(gè)典例。作為度假租賃行業(yè)的***,它有100多萬(wàn)個(gè)房源(而且在不斷增多)。借助Kafka,HomeAway連接不同的數(shù)據(jù)源,能夠支持眾多的使用場(chǎng)景,包括服務(wù)級(jí)別協(xié)議(SLA)監(jiān)控、A/B測(cè)試、訪客細(xì)分、欺詐檢測(cè)、實(shí)時(shí)ETL及更多。
Confluent是我離開領(lǐng)英后與他人創(chuàng)辦的公司,它專注于借助Confluent平臺(tái)來(lái)擴(kuò)展Apache Kafka,以滿足需要大規(guī)模管理數(shù)據(jù)、而且注重速度的企業(yè)的要求。這包括下列工具:Kafka Streams、Kafka Connect以及Control Center,從而提供了一種新的可見性,以便了解大規(guī)模的Kafka集群,并確保運(yùn)營(yíng)正常。
TechRepublic:在什么情況下,Kafka絕對(duì)是最適合的一種框架?哪種使用場(chǎng)合?
納克赫德:Kafka最常見的使用場(chǎng)合是用于實(shí)時(shí)數(shù)據(jù)傳輸、集成和實(shí)時(shí)數(shù)據(jù)流處理。
至于數(shù)據(jù)傳輸和集成,用戶運(yùn)用Kafka Connect將數(shù)據(jù)連接到應(yīng)用程序,那樣所有系統(tǒng)都可以訪問***的數(shù)據(jù)。這包括這些數(shù)據(jù):日志數(shù)據(jù)、數(shù)據(jù)庫(kù)變化、傳感器及設(shè)備的數(shù)據(jù)、監(jiān)控?cái)?shù)據(jù)流、呼叫中心記錄和股票行情收錄器數(shù)據(jù)。
至于實(shí)時(shí)數(shù)據(jù)流處理,Kafka Streams是Kafka核心的擴(kuò)展部分,它讓應(yīng)用程序開發(fā)人員可以編寫持續(xù)查詢、轉(zhuǎn)換、事件觸發(fā)的警報(bào)和類似功能,并不需要一種專門的數(shù)據(jù)流處理框架。這些功能常常用于安全監(jiān)控、實(shí)時(shí)操作(比如優(yōu)步)和異步應(yīng)用(比如零售商的庫(kù)存檢查)。
TechRepublic:運(yùn)行這些類型的實(shí)時(shí)數(shù)據(jù)管道時(shí),數(shù)據(jù)局部性有多重要?我大致聽說(shuō)的是,如果在DC/OS上運(yùn)行,Kafka就能在Kafka和Cassandra之間本地讀取數(shù)據(jù)。有鑒于行業(yè)正在向Mesosphere DC/OS實(shí)現(xiàn)的抽象邁進(jìn),你會(huì)如何描述在同一集群上運(yùn)行互補(bǔ)框架的機(jī)會(huì)?
納克赫德:在數(shù)據(jù)中心規(guī)模下管理服務(wù)帶來(lái)了許多優(yōu)化機(jī)會(huì),如果你單個(gè)管理每項(xiàng)服務(wù)極難獲得這樣的機(jī)會(huì)。雖然能夠把相關(guān)服務(wù)放在同一個(gè)地方是明顯的好處,但是在有些情況下這并不合理;相反,你需要的是能夠?yàn)橛袪顟B(tài)的應(yīng)用程序分配專用資源,以便隔離。后者正是你在部署有狀態(tài)的應(yīng)用程序(比如Kafka和Cassandra)時(shí)需要的,而Mesos已增添了表示滿足這類高級(jí)部署需求的功能,管理大規(guī)模有狀態(tài)的應(yīng)用程序需要這種功能。
我們確保在需要的場(chǎng)合下,Mesos部署Confluent平臺(tái)保持了數(shù)據(jù)局部性。 我們的組件:Kafka REST Proxy和Schema Registry實(shí)際上是無(wú)狀態(tài)的,能夠在那些類型的框架中運(yùn)行,而像Kafka代理這些有狀態(tài)的服務(wù)能夠以不同的方式來(lái)管理。但是整個(gè)Confluent平臺(tái)需要這兩種類型的服務(wù)。通過支持完整平臺(tái),它能夠?yàn)榭蛻魩?lái)更大的靈活性。
TechRepublic:Mesosphere DC/OS的兩級(jí)調(diào)度程序有何重要性?為何它就有能力吸引合作伙伴/生態(tài)系統(tǒng)的支持(比如來(lái)自Confluent/DataStax群體)?
納克赫德:不同的服務(wù)在集群資源和部署方面有不同的需求。兩級(jí)調(diào)度程序可以滿足有狀態(tài)的應(yīng)用程序(比如Kafka)的部署要求,那種場(chǎng)合下需要針對(duì)數(shù)據(jù)局部性進(jìn)行優(yōu)化,從而盡可能地節(jié)省網(wǎng)絡(luò)和輸入/輸出帶寬。這為客戶提供了一種好的操作體驗(yàn),又不犧牲Kafka提供的性能。
原文標(biāo)題:How Apache Kafka takes streaming data mainstream,作者:Matt Asay
【51CTO譯稿,合作站點(diǎn)轉(zhuǎn)載請(qǐng)注明原文譯者和出處為51CTO.com】