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

全國(guó)咨詢(xún)/投訴熱線:400-618-4000

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

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

Kafka是由Apache軟件基金會(huì)開(kāi)發(fā)的一個(gè)開(kāi)源流平臺(tái),由Scala和Java編寫(xiě)。Kafka的Apache官網(wǎng)是這樣介紹Kakfa的。
Apache Kafka是一個(gè)分布式流平臺(tái)。一個(gè)分布式的流平臺(tái)應(yīng)該包含3點(diǎn)關(guān)鍵的能力:
1. 發(fā)布和訂閱流數(shù)據(jù)流,類(lèi)似于消息隊(duì)列或者是企業(yè)消息傳遞系統(tǒng)
2. 以容錯(cuò)的持久化方式存儲(chǔ)數(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.
更多請(qǐng)參考:http://kafka.apache.org/documentation/#introduction
什么是Kafka

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

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


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

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

特性

ActiveMQ

RabbitMQ

Kafka

RocketMQ

所屬社區(qū)/公司

Apache

Mozilla Public License

Apache

Apache/Ali

成熟度

成熟

成熟

成熟

比較成熟

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

支持

支持

支持

支持

發(fā)布-訂閱

支持

支持

支持

支持

REQUEST-REPLY

支持

支持

-

支持

API完備性

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

多語(yǔ)言支持

支持JAVA優(yōu)先

語(yǔ)言無(wú)關(guān)

支持,JAVA優(yōu)先

支持

單機(jī)呑吐量

萬(wàn)級(jí)(最差)

萬(wàn)級(jí)

十萬(wàn)級(jí)

萬(wàn)級(jí)(最高)

消息延遲

-

微秒級(jí)

毫秒級(jí)

-

可用性

高(主從)

高(主從)

非常高(分布式)

消息丟失

-

理論上不會(huì)丟失

-

消息重復(fù)

-

可控制

理論上會(huì)有重復(fù)

-

事務(wù)

支持

不支持

支持

支持

文檔的完備性

提供快速入門(mén)

無(wú)

首次部署難度

-


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

什么是Kafka







猜你喜歡:

什么是Apache Kafka?

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

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

Kafka基準(zhǔn)測(cè)試怎樣進(jìn)行?

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

0 分享到:
和我們?cè)诰€交談!