kafka的发行版选择
今天繼續(xù)和大家聊一下,kafka的各種發(fā)行版。kafka歷經數(shù)年的發(fā)展,從最初純粹的消息引擎,到近幾年開始在流處理平臺生態(tài)圈發(fā)力,衍生出了各種不同特性的版本。
你了解幾種kafka
kafka的確有好幾種,這里我不是指他的版本,是指存在多個組織或公司發(fā)布不同特性的kafka。你應該聽說過Linux發(fā)行版,比如我們熟知的CentOS、RedHat、Ubuntu等,它們都是Linux系統(tǒng),其實就是因為它們是不同公司發(fā)布的Linux系統(tǒng),即不同的發(fā)行版。kafka也同樣有多個發(fā)行版。
Apache Kafka
Apache Kafka是最“正統(tǒng)”的kafka,也應該是你最熟悉的發(fā)行版了。自kafka開源之初,它便在Apache基金會孵化并最終畢業(yè)成為頂級項目,也被稱為社區(qū)版kafka。重要的是,它是后面其他所有發(fā)行版的基礎。也就是說,后面提到的其他發(fā)行版,要么是原封不動地繼承了Apache Kafka,要么是在此之上擴展了新功能,總之Apache Kafka是我們學習和使用kafka的基礎。
Cloudera/Hortonworks Kafka
Cloudera提供的CDH和Hortonworks提供的HDP是最常見的大數(shù)據(jù)平臺,里面集成了目前主流的大數(shù)據(jù)框架,能夠幫助用戶實現(xiàn)從分布式存儲、集群調度、流處理到機器學習、實時數(shù)據(jù)庫等全方位的數(shù)據(jù)處理。我了解到很多創(chuàng)業(yè)公司在搭建數(shù)據(jù)平臺時首選就是這兩個產品。不管是CDH還是HDP里面都集成了Apache Kafka,因此我把這兩款產品中的Kafka稱為CDH Kafka和HDP Kafka。
當然在2018年10月兩家公司宣布合并,共同打造世界領先的數(shù)據(jù)平臺,合并成CDP一款產品,但能肯定的是Apache Kafka依然會包含其中,并作為新數(shù)據(jù)平臺的一部分對外提供服務。
Confluent Kafka
Confluent公司,2014年,Kafka的3個創(chuàng)始人Jay Kreps、Naha Narkhede和饒軍離開LinkedIn創(chuàng)辦了Confluent公司,專注于提供基于Kafka的企業(yè)級流處理解決方案。2019年1月,Confluent公司成功融資D輪1.25億美元,估值也到了25億美元,足見資本市場的青睞。
這里說點題外話, 饒軍是我們中國人,清華畢業(yè)的大神級人物。我們已經看到越來越多的Apache頂級項目創(chuàng)始人中出現(xiàn)了中國人的身影,另一個例子就是Apache Pulsar,它是一個以打敗Kafka為目標的新一代消息引擎系統(tǒng)。至于在開源社區(qū)中活躍的國人更是數(shù)不勝數(shù),這種現(xiàn)象實在令人振奮。
Confluent公司,主要從事商業(yè)化Kafka工具開發(fā),并在此基礎上發(fā)布了Confluent Kafka。Confluent Kafka提供了一些Apache Kafka沒有的高級特性,比如跨數(shù)據(jù)中心備份、Schema注冊中心以及集群監(jiān)控工具等。
特性對比
說完世面上常見的kafka,我們來比較一下他們的特性
Apache Kafka
Apache Kafka,它現(xiàn)在依然是開發(fā)人數(shù)最多、版本迭代速度最快的kafka。如果你使用Apache Kafka碰到任何問題并提交問題到社區(qū),社區(qū)都會比較及時地響應你。這對于我們kafka普通使用者來說還是比較友好的。
但是Apache Kafka的劣勢在于它僅提供最最基礎的組件,對于像Kafka Connect額外的數(shù)據(jù)工具,社區(qū)版kafka只提供了一種連接器,即讀寫磁盤文件的連接器,而沒有與其他外部系統(tǒng)交互的連接器,在實際使用過程中需要自行編寫代碼實現(xiàn)。另外Apache Kafka沒有提供任何監(jiān)控框架或工具,你需要借助第三方的監(jiān)控框架實現(xiàn)對kafka的監(jiān)控。目前有一些開源的監(jiān)控框架可以幫助我們用于監(jiān)控Kafka(比如Kafka manager,Kafka Eagle等)
總而言之,如果僅僅是需要一個消息引擎系統(tǒng)或是簡單的流處理應用場景,同時需要對系統(tǒng)有較大把控,那么推薦你使用Apache Kafka。
CDH/HDP Kafka
再說說大數(shù)據(jù)云平臺公司發(fā)布的Kafka(CDH/HDP Kafka)。這些大數(shù)據(jù)平臺已經集成了Apache Kafka,通過便捷化的界面操作將·Kafka·的安裝、運維、管理、監(jiān)控全部統(tǒng)一在控制臺中。如果你是這些平臺的用戶一定覺得非常方便,因為所有的操作都可以在前端界面上完成,而不必去執(zhí)行復雜的Kafka命令。另外這些平臺提供的監(jiān)控界面也非常友好,通常不需要進行任何配置就能有效地監(jiān)控?Kafka。
這樣做的結果是直接降低了你對Kafka集群的掌控程度。畢竟你對底層的Kafka集群一無所知,難以做到心中有數(shù)。這種Kafka?的另一個弊端在于它的滯后性。由于它有自己的發(fā)布周期,因此是否能及時地包含最新版本的Kafka就成為了一個問題。比如CDH 6.1.0版本發(fā)布時Apache Kafka已經演進到了 2.1.0 版本,但CDH中的Kafka依然是 2.0.0 版本,顯然那些在Kafka?2.1.0 中修復的Bug只能等到CDH下次版本更新時才有可能被真正修復,而整個CDH升級還是略顯繁重的。
簡單來說,如果你需要快速地搭建消息引擎系統(tǒng),或者你需要搭建的是多框架構成的數(shù)據(jù)平臺且Kafka只是其中一個組件,那么我推薦你使用這些大數(shù)據(jù)云平臺公司提供的Kafka。
Confluent Kafka
Confluent Kafka目前分為免費版和企業(yè)版兩種。前者和Apache Kafka非常相像,除了常規(guī)的組件之外,免費版還包含?Schema注冊中心和REST proxy兩大功能。前者是幫助你集中管理Kafka消息格式以實現(xiàn)數(shù)據(jù)前后兼容;后者用開放HTTP接口的方式允許你通過網絡訪問Kafka的各種功能,這兩個都是Apache Kafka所沒有的。
除此之外,免費版包含了更多的連接器,都是Confluent公司開發(fā)并認證過的,可以免費使用。至于企業(yè)版,則提供更多功能。最有用的當屬跨數(shù)據(jù)中心備份和集群監(jiān)控兩大功能了。多個數(shù)據(jù)中心之間數(shù)據(jù)的同步以及對集群的監(jiān)控歷來是Kafka的痛點,Confluent Kafka企業(yè)版提供了強大的解決方案。
不過Confluent公司暫時沒有發(fā)展國內業(yè)務的計劃,相關的資料以及技術支持都很欠缺,很多國內Confluent Kafka使用者甚至無法找到對應的中文文檔,因此目前Confluent Kafka在國內的普及率比較低。
如果你需要用到Kafka的一些高級特性,且沒有預算成本壓力,那么推薦使用Confluent Kafka。
總結
以上是生活随笔為你收集整理的kafka的发行版选择的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Adobe Photoshop Pro
- 下一篇: apktool+dex2jar+xjad