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