Confluent:在Kafka上飛馳的數據交換者
今天我們要講的大數據公司叫作Confluent,這個公司是前LinkedIn員工出來后聯合創辦的,而創業的基礎是一款叫作Apache Kafka的開源軟件。
Confluen聯合創始人Jun Rao即將在 QCon北京2018 分享Apache Kafka的前世今生和未來的相關話題。
在整個Hadoop的生態圈里,Kafka是一款非常特殊的軟件。它由LinkedIn于2011年開源,并在2012年底從阿帕奇孵化器里面畢業,正式成為阿帕奇的頂級項目。
Kafka和其他的大數據平臺都不同,它的主要目的不是數據的存儲或者處理,而是用來做數據交換的。要更好地理解它是干什么的,我先談一下數據庫的日志文件。
數據庫系統需要保證數據的穩定性,為了確保修改的數據能夠寫入庫,通常會在更改數據之前先在磁盤里寫一條日志文件,大致上的格式是“時間戳:做了什么操作”。如果此后因為故障導致數據本身沒有被更改,系統可以根據日志文件一條一條地重新執行操作,讓數據恢復到應該恢復的狀態。
后來有人意識到,這個日志的恢復功能還可以充當數據復制。簡單來說,如果兩個數據庫的初始狀態相同,又按照同樣的?順序執行了一系列操作,那么最后的狀態也相同。所以在數據庫進行數據復制的時候,系統可以把日志文件從一個系統傳輸到另外一個系統,另外一邊只要照著日志同樣地執行一遍就好。
這個想法構成了大部分數據庫的主從備份機制的核心,而Kafka則把這個機制充分發揚光大了。Kafka允許消費者和生產者注冊進Kafka,其中生產者會產生日志,而消費者則消費產生的日志。整個系統允許多個消費者和多個生產者的注冊,這就實現了公司內部不同數據源之間的數據交換。
Kafka作為開源產品是如此之成功,在整個Hadoop生態圈,乃至不用Hadoop,而是用其他數據源的產品里,它都可以用來進行數據的備份和交換。所以,我們可以看到幾乎所有的互聯網公司里都部署了Kafka。
2014年的時候,Kafka的三個主要開發人員從LinkedIn出來創業,開了一家叫?作Confluent的公司。和其他大數據公司類似,Confluent的產品叫作Confluent Platform。這個產品的核心是Kafka,分為三個版本:Confluent Open Source、Confluent Enterprise和Confluent Cloud。
Confluent Open Source是Confluent公司在Kafka上的一個增強版本,其主要增強的地方是:增加了一個REST代理,以便客戶端可以使用HTTP連接;增加了對Java以外的語言的支持,比如C++、Python和.NET;增加了對Hadoop文件系統、亞馬遜S3存儲、JDBC等的連接的支持;最重要的是一個Schema Registry,這是對Kafka一個比較大的增強,它使得Kafka的數據流必須符合注冊的Schema,從而增強了可用性。所有這些東西本身也都是開源的,這使得其他第三方在這個上面繼續開發新功能成為了可能。
Confluent Enterprise是Confluent面向企業級應用的產品,里面增加了一個叫作Confluent Control Center的非開源產品。Confluent Control Center是一個對整個產品進行管理的控制中心,最主要的功能對這個Kafka里面各個生產者和消費者的性能監控。
Kafka作為一個非常重要的產品,已經在很多互聯網企業里被作為關鍵組件部署了。而Kafka的性能監控也早就是一個非常重要的問題,Kafka本身并不自帶性能監控平臺,很多公司比如雅虎自己內部開發了這樣的系統。但是Confluent開發的控制平臺無疑應該是最可靠的,畢竟沒有人比Kafka的開發者更了解自己的產品。可惜這個是收費產品,而且不開源。Confluent Enterprise同時還自帶了數據自動負載平衡和跨數據中心數據復制的能力。
Confluent Cloud是Confluent Enterprise的云端托管服務,它增加了一個叫作云端管理控制臺的組件。除此之外,按照Confluent的說法,其實沒有什么差別。但是對于想要省心的用戶來說,這個產品無疑是更好的選擇。
Confluent的基本做法和Cloudera很像,主要的產品開源,但是控制中心這樣的東西不開源,只有買了企業版才能夠享受到。而兩者不同的地方主要在于,Confluent同時提供了云端服務的版本。加上Confluent有基于S3的連接,這使得從亞馬遜AWS讀寫數據都非常方便。
和Cloudera是Hadoop的集成商不同,Confluent主要還是圍繞著不同數據源之間數據的交換這個任務而生的服務。Kafka在整個開源產品里面是一個非常特殊的存在,它沒有什么競爭對手,又是各大企業的剛需,它在脫離了整個Hadoop生態圈以后依然非常有價值。
從這個角度來講,Confluent毫無疑問有很多客戶會買單。大部分企業都不可能只有一個數據源,當然谷歌這樣的企業?除外。而Kafka給數據源之間的數據交換提供了統一的平臺,而Confluent的企業級服務則讓這個平臺不但更好用了,而且更好管理了。
雖然說是同樣的生意模式,用在不同的產品里,產生的結果卻可能很不一樣。Confluent作為一家公司,是否能夠從Kafka這個數據交換平臺里面跳出來繼續擴張,這很難說。但是僅僅是把這一攤生意做好,也足以支撐Confluent成為一個估值不低的公司,養活自己應該是綽綽有余了。
Confluent最近拿到了5000萬美元的融資,其CEO在接受采訪的時候表示公司還將繼續擴張。像Confluent這樣的平臺,在未來物聯網的架構上,還有足夠多的空間,這大概表示了Confluent未來將重點發展的方向。
我們能看到的輝煌是目前有超過30%的世界500強公司在使用Kafka,怎樣做一個非常受歡迎的發布訂閱消息系統,未來又如何把Kafka建成實時流數據處理平臺,我想由Confluent的聯合創始人,也是Apache Kafka項目委員會主席 Jun Rao 來講再合適不過了,在4月份舉辦的 QCon全球軟件開發大會北京站 上,他將帶來相關內容的演講。無論是想采用這一技術,還是希望做出自己的軟件的技術人,應該都會有所收獲和感悟。
來自:http://www.infoq.com/cn/news/2018/01/confluent-kafka-data