天天看點

【Kafka】之 簡介(一)

文章目錄

  • ​​一、簡介​​
  • ​​(1)問題​​
  • ​​1. 什麼是 `Kafka`?​​
  • ​​2. `Kafka`核心功能是什麼?​​
  • ​​3. `Kafka`有什麼用?​​
  • ​​4. `Kafka`有什麼特性?​​
  • ​​5. 适用場景?​​
  • ​​二、參考資料​​

一、簡介

​​https://kafka.apache.org/intro​​

(1)問題

1. 什麼是 ​

​Kafka​

​?

Apache Kafka® is a distributed streaming platform.

​Kafka​

​是一個分布式流處理平台。

  1. 可當作消息引擎系統(Message System)
引擎:具備某種傳輸和處理的能力

其實不管是消息引擎還是流式處理平台,​

​Kafka​

​的處理流程從未發生質的變化:

如圖:

【Kafka】之 簡介(一)
  1. 可作為 存儲系統
寫入到 ​

​kafka​

​​中的資料是落地到了磁盤上,并且有備援備份,​

​kafka​

​​允許​

​producer​

​​等待确認,通過配置,可實作直到所有的​

​replication​

​完成複制才算寫入成功,這樣可保證資料的可用性。

2. ​

​Kafka​

​核心功能是什麼?

  1. 高性能的消息發送
  2. 高性能的消息消費

3. ​

​Kafka​

​有什麼用?

  1. 解耦
生産者與消費者解耦
  1. 備援
具有持久化能力,可規避消息處理前丢失的風險
  1. 擴充
消息系統是統一的資料接口,各系統可獨立擴充
  1. 峰值處理能力
支援峰值流量,業務系統可根據處理能力從消息系統中擷取并處理對應量的請求
  1. 可恢複性
系統中部分元件失效并不會影響整個系統,它恢複後仍然可以從消息系統中擷取并處理資料
  1. 異步通信
在不需要立即處理請求的場景下,可以将請求放入消息系統,合适的時候再處理

4. ​

​Kafka​

​有什麼特性?

​Kafka​

​設計之初旨在提供3個方面的功能特性:

  • 為生産者和消費者提供一套簡單 API
  • 降低網絡傳輸和磁盤存儲開銷
  • 具有高伸縮性架構
A streaming platform has three key capabilities:
  • Publish and subscribe to streams of records, similar to a message queue or enterprise messaging system.
  • Store streams of records in a fault-tolerant durable way.
  • Process streams of records as they occur.

流處理系統有這三種能力:

  • 釋出和訂閱流式資訊,近似于消息隊列或企業消息傳遞系統
  • 在容錯環境下存儲流式資訊
  • 處理流式資訊

5. 适用場景?

  1. 消息傳輸

    解耦和生産者和消費者、緩存消息等。

    代替傳統的消息總線(message bus)或消息代理(message broker)

  2. 網站行為日志追蹤

    ​​

    ​Kafka​

    ​​經常被用來記錄​

    ​web​

    ​​使用者或者​

    ​app​

    ​使用者的各種活動,如浏覽網頁、搜尋、點選等活動,這些活動資訊被各個伺服器釋出到kafka的topic中,然後訂閱者通過訂閱這些topic來做實時的監控分析,或者裝載到hadoop、資料倉庫中做離線分析和挖掘。
  3. 審計資料收集

    便捷地對多路消息進行實時收集,同時持久化。

    滿足對關鍵的操作和運維進行監控和審計。

  4. 日志收集

    一個公司可以用​​

    ​Kafka​

    ​​可以收集各種服務的 log,通過​

    ​kafka​

    ​​以統一接口服務的方式開放給各種 ​

    ​consumer​

    ​​,例如​

    ​Hadoop​

    ​​、​

    ​HBase​

    ​​、​

    ​Solr​

    ​​等。

    同時保持了低延時的特點。

  5. Event Sourcing(事件源)

    ​​

    ​Event Sourcing​

    ​實際上是領域驅動設計(DDD)的名稱,使用事件序列來表示狀态變更。
  6. 流式處理

    比如​​

    ​spark streaming​

    ​​和 ​

    ​storm​