初識(shí)kafka

大部分內(nèi)容是翻譯至Kafka The Definitive Guide,有翻譯不好的地方請(qǐng)見諒,因?yàn)槔斫鈫栴}翻譯錯(cuò)誤的地方希望指出,我會(huì)及時(shí)改進(jìn)

每個(gè)企業(yè)都由數(shù)據(jù)驅(qū)動(dòng)。我們收集信息,分析信息,操縱信息并創(chuàng)造更多信息作為輸出。 每個(gè)應(yīng)用程序都會(huì)創(chuàng)建數(shù)據(jù),無論它是日志消息,度量標(biāo)準(zhǔn),用戶活動(dòng),傳出消息還是其他內(nèi)容。 數(shù)據(jù)的每個(gè)字節(jié)都有一個(gè)要講的故事,重要的事情將告知下一步要做的事情。 為了知道這是什么,我們需要從創(chuàng)建它的地方到可以分析的地方獲取數(shù)據(jù)。

Apache Kafka是一個(gè)旨在解決這個(gè)問題的發(fā)布/訂閱消息傳遞系統(tǒng)。它經(jīng)常被描述為“分布式提交記錄”,或者最近稱為“分布式流式傳輸平臺(tái)”。文件系統(tǒng)或數(shù)據(jù)庫提交日志旨在提供持久記錄 的所有交易,以便它們可以重播以持續(xù)建立系統(tǒng)狀態(tài)。 同樣,卡夫卡內(nèi)的數(shù)據(jù)按順序保存,并可以確定性地讀取。 另外,數(shù)據(jù)可以在系統(tǒng)內(nèi)分布以提供額外的保護(hù)以防止故障,這對(duì)于云平臺(tái)有著跟重要的意義。

kafka是一個(gè)分布式流平臺(tái),流平臺(tái)又三個(gè)主要的功能

  • 發(fā)布和訂閱記錄流,類似于消息隊(duì)列或企業(yè)消息傳遞系統(tǒng)
  • 以容錯(cuò)持久的方式存儲(chǔ)記錄流。
  • 處理記錄發(fā)生的流

幾個(gè)概念:

  • kafka作為一個(gè)集群運(yùn)行在一臺(tái)或多臺(tái)可以跨越多個(gè)數(shù)據(jù)中心的服務(wù)器上。
  • kafka存儲(chǔ)記錄流存在topic中。
  • 每個(gè)記錄由一個(gè)鍵,一個(gè)值和一個(gè)時(shí)間戳組成。

Kafka 四個(gè)主要的Api:

  • The Producer API allows an application to publish a stream of records to one or more Kafka topics.
  • The Consumer API allows an application to subscribe to one or more topics and process the stream of records produced to them.
  • The Streams API allows an application to act as a stream processor, consuming an input stream from one or more topics and producing an output stream to one or more output topics, effectively transforming the input streams to output streams.
  • The Connector API allows building and running reusable producers or consumers that connect Kafka topics to existing applications or data systems. For example, a connector to a relational database might capture every change to a table.

kafkat特點(diǎn):

  • Persistent messaging:
    為了從大數(shù)據(jù)中推導(dǎo)出真正的價(jià)值,無法提供任何類型的信息損失。 Apache Kafka采用O(1)磁盤結(jié)構(gòu)設(shè)計(jì),即使存儲(chǔ)的消息大量存儲(chǔ)在TB中,也可以提供恒定的性能。 通過Kafka,郵件可以保存在磁盤上,也可以在群集中復(fù)制以防止數(shù)據(jù)丟失。

  • High throughput
    保存大數(shù)據(jù),Kafka被設(shè)計(jì)運(yùn)行在可伸縮的硬件上,并能夠處理來自大量客戶端的每秒數(shù)百M(fèi)B的讀寫。

  • Distributed
    Apache Kafka的集群中心設(shè)計(jì)明確支持Kafka服務(wù)器上的消息分區(qū),并在消費(fèi)者機(jī)器集群上分配消耗,同時(shí)保持每分區(qū)排序語義。Kafka集群可以彈性且透明地工作而不會(huì)出現(xiàn)任何停機(jī)

  • Real time
    生產(chǎn)者線程產(chǎn)生的消息應(yīng)該立即對(duì)消費(fèi)者線程可見;此功能對(duì)基于事件的系統(tǒng)(如復(fù)雜事件處理(CEP)系統(tǒng))至關(guān)重要。

kafka
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容