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