2016-05-17 85 views
7

我想問一下我對卡夫卡的理解是否正確。你使用Apache Kafka做什麼?

對於真正的大數據流,傳統的數據庫是不夠的,所以人們使用諸如Hadoop或Storm之類的東西。卡夫卡位於所述數據庫的頂部,並提供...實時數據應該走的方向?

+0

推薦閱讀:http://www.confluent.io/blog/stream-data-platform-1/和http://www.confluent.io/blog/stream-data-platform-2/以及https: //englishering.linkedin.com/blog/topic/kafka –

回答

8

我不這麼認爲。

卡夫卡是郵件系統和它不坐在數據庫的頂部

您可以通過消息系統比較卡夫卡ActiveMQ的的RabbitMQ

從Apache文檔page

卡夫卡是一個分佈式,分區,複製的提交日誌服務。它提供了消息傳遞系統的功能,但具有獨特的設計。

關鍵要點:

  1. 卡夫卡維持稱爲主題類別的消息的飼料。
  2. 我們將調用向卡夫卡主題生產者發佈消息的進程。
  3. 我們將調用訂閱主題的進程並處理髮布的消息消費者的源。
  4. Kafka作爲由一個或多個服務器組成的集羣運行,每個服務器稱爲代理。

enter image description here

客戶端和服務器之間的通信是一個簡單的,高性能的,與語言無關的TCP協議來完成。

使用案例:

  1. 消息卡夫卡的作品還有一個更傳統的消息代理的替代品。在這個領域,Kafka與傳統的消息系統如ActiveMQ或RabbitMQ相似
  2. 網站活動跟蹤: Kafka的原始用例是能夠將用戶活動跟蹤管道重建爲一組實時發佈 - 訂閱飼料
  3. 度量:卡夫卡通常用於運行監測數據,其涉及從分佈式應用程序聚集統計,以產生操作數據
  4. 的集中飼料
  5. 日誌聚合
  6. 流處理
  7. 事件源是一種應用程序設計風格,其中狀態更改記錄爲時間排序的記錄序列。
  8. 提交日誌對於分佈式系統,Kafka可以作爲一種外部提交日誌。日誌有助於複製節點和行爲之間的數據重新同步機制,故障節點來恢復他們的數據
+0

對不起,但我不明白爲什麼我們有Kafa的任務看起來像服務器和客戶端之間的通信? –

+0

在兩個不同的企業服務/系統之間提供鬆耦合。發送者和接收者服務通過消息集成鬆散耦合。訪問此鏈接:enterpriseintegrationpatterns.com和enterpriseintegrationpatterns.com/patterns/messaging –

3

要充分認識Apache Kafka角色,你應該得到更廣泛的圖片,並知道卡夫卡用例。現代數據處理系統試圖打破傳統的應用程序架構。你可以開始形式卡帕架構概述:

在這種架構中,你不電流world state存儲在任何SQL或鍵值數據庫。所有數據都被處理並作爲一系列事件存儲在僅附加的不可變日誌中。不變事件更容易在分佈式環境中複製和存儲。 Apache Kafka是一個在其他系統組件之間進行代理和存儲這些事件的元素。