Apache-Kafka簡介

王知無發表於2019-03-23

您可能感興趣的文章:

Apache-Kafka簡介

Apache Kafka安裝和使用

Apache-Kafka核心概念

Apache-Kafka核心元件和流程-協調器

Apache-Kafka核心元件和流程(副本管理器)

Apache-Kafka 核心元件和流程-控制器

Apache-Kafka核心元件和流程-日誌管理器

....

kafka的定位

提到kafka,不太熟悉或者稍有接觸的開發人員,第一想法可能會覺得它是一個訊息系統。其實Kafka的定位並不止於此。

Kafka官方文件介紹說,Apache Kafka是一個分散式流平臺,並給出瞭如下解釋:

流平臺有三個關鍵的能力:

  • 釋出訂閱記錄流,和訊息佇列或者企業新訊息系統類似。
  • 以可容錯、持久的方式儲存記錄流
  • 當記錄流產生時就進行處理

Kafka通常用於應用中的兩種廣播型別:

  • 在系統和應用間建立實時的資料管道,能夠可信賴的獲取資料。
  • 建立實時的流應用,可以處理或者響應資料流。

由此可見,kafka給自身的定位並不只是一個訊息系統,而是通過釋出訂閱訊息這種機制實現了流平臺。

其實不管kafka給自己的定位如何,他都逃脫不了釋出訂閱訊息的底層機制。本文講解的重點,也是kafka釋出訂閱訊息的特性。

Kafka和大多數訊息系統一樣,搭建好kafka叢集后,生產者向特定的topic生產訊息,而消費者通過訂閱topic,能夠準實時的拉取到該topic新訊息,進行消費。如下圖:

Apache-Kafka簡介


Kafka特性

kafka和有以下主要的特性:

  • 訊息持久化
  • 高吞吐量
  • 可擴充套件性

尤其是高吞吐量,是他的最大賣點。kafka之所以能夠實現高吞吐量,是基於他自身優良的設計,及叢集的可擴充套件性。後面章節會展開來分析。

Kafka應用場景

  • 訊息系統
  • 日誌系統
  • 流處理


Apache-Kafka簡介