教育行業(yè)A股IPO第一股(股票代碼 003032)

全國咨詢/投訴熱線:400-618-4000

什么是Kafka?Kafka誕生的背景是什么?

更新時間:2021年10月06日10時59分 來源:傳智教育 瀏覽次數(shù):

Kafka是由Apache軟件基金會開發(fā)的一個開源流平臺,由Scala和Java編寫。Kafka的Apache官網(wǎng)是這樣介紹Kakfa的。
Apache Kafka是一個分布式流平臺。一個分布式的流平臺應該包含3點關鍵的能力:
1. 發(fā)布和訂閱流數(shù)據(jù)流,類似于消息隊列或者是企業(yè)消息傳遞系統(tǒng)
2. 以容錯的持久化方式存儲數(shù)據(jù)流
處理數(shù)據(jù)流

英文原版

 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.
更多請參考:http://kafka.apache.org/documentation/#introduction
什么是Kafka

我們重點關鍵三個部分的關鍵詞:
1. Publish and su·bscribe:發(fā)布與訂閱
2. Store:存儲
3. Process:處理

我們通常將Apache Kafka用在兩類程序:
1. 建立實時數(shù)據(jù)管道,以可靠地在系統(tǒng)或應用程序之間獲取數(shù)據(jù)
2. 構建實時流應用程序,以轉換或響應數(shù)據(jù)流
什么是Kafka
上圖,我們可以看到:
1. Producers:可以有很多的應用程序,將消息數(shù)據(jù)放入到Kafka集群中。
2. Consumers:可以有很多的應用程序,將消息數(shù)據(jù)從Kafka集群中拉取出來。
3. Connectors:Kafka的連接器可以將數(shù)據(jù)庫中的數(shù)據(jù)導入到Kafka,也可以將Kafka的數(shù)據(jù)導出到數(shù)據(jù)庫中。
4. Stream Processors:流處理器可以Kafka中拉取數(shù)據(jù),也可以將數(shù)據(jù)寫入到Kafka中。


Kafka誕生背景:kafka的誕生,是為了解決linkedin的數(shù)據(jù)管道問題,起初linkedin采用了ActiveMQ來進行數(shù)據(jù)交換,大約是在2010年前后,那時的ActiveMQ還遠遠無法滿足linkedin對數(shù)據(jù)傳遞系統(tǒng)的要求,經(jīng)常由于各種缺陷而導致消息阻塞或者服務無法正常訪問,為了能夠解決這個問題,linkedin決定研發(fā)自己的消息傳遞系統(tǒng),當時linkedin的首席架構師jaykreps便開始組織團隊進行消息傳遞系統(tǒng)的研發(fā)。
提示:
1. Linkedin還是挺牛逼的
Kafka比ActiveMQ牛逼得多

前面我們了解到,消息隊列中間件有很多,為什么我們要選擇Kafka?

特性

ActiveMQ

RabbitMQ

Kafka

RocketMQ

所屬社區(qū)/公司

Apache

Mozilla Public License

Apache

Apache/Ali

成熟度

成熟

成熟

成熟

比較成熟

生產(chǎn)者-消費者模式

支持

支持

支持

支持

發(fā)布-訂閱

支持

支持

支持

支持

REQUEST-REPLY

支持

支持

-

支持

API完備性

低(靜態(tài)配置)

多語言支持

支持JAVA優(yōu)先

語言無關

支持,JAVA優(yōu)先

支持

單機呑吐量

萬級(最差)

萬級

十萬級

萬級(最高)

消息延遲

-

微秒級

毫秒級

-

可用性

高(主從)

高(主從)

非常高(分布式)

消息丟失

-

理論上不會丟失

-

消息重復

-

可控制

理論上會有重復

-

事務

支持

不支持

支持

支持

文檔的完備性

提供快速入門

首次部署難度

-


在大數(shù)據(jù)技術領域,一些重要的組件、框架都支持Apache Kafka,不論成成熟度、社區(qū)、性能、可靠性,Kafka都是非常有競爭力的一款產(chǎn)品。綜上,Kafka是一款非常優(yōu)秀的平臺,那么都有哪些公司在使用Kafka呢?

什么是Kafka







猜你喜歡:

什么是Apache Kafka?

Kafka的常用API介紹[大數(shù)據(jù)培訓]

為什么選擇kafka采集數(shù)據(jù)?

Kafka基準測試怎樣進行?

傳智教育python大數(shù)據(jù)開發(fā)培訓

0 分享到:
和我們在線交談!