kafka入門

kafka是一個消息隊列,使用模型如下:

一個基本的消息隊列需要保證如下功能:

1,消息傳輸

2,數(shù)據(jù)存儲

3,如何消費(fèi)

如何進(jìn)行消息傳輸?

kafka有有個對應(yīng)topic概念。就是生成者與消費(fèi)者之間進(jìn)行通信,需要先在kafka上面建立一個topic。模型如下:

不過由于可能會有很多的消費(fèi)者,很多生成者,這樣就會對kafka性能產(chǎn)生影響,所以kafka又有了區(qū)(partition)的概念,就是可以對topic再進(jìn)行劃分,劃分多個區(qū),可以理解為對一個消息隊列有分了很多的段,每段去維護(hù)自己的數(shù)據(jù)。模型如下。

如何實現(xiàn)數(shù)據(jù)存儲?

首先應(yīng)該知道任何主機(jī)有可能宕機(jī),這樣發(fā)送到該消息隊列上面的數(shù)據(jù)就會丟失。如何保證消息隊列的高可用性?需要對數(shù)據(jù)做贅余或存儲。kafka會對partition進(jìn)行備份。并且會對本機(jī)上面的partition進(jìn)行落盤存儲。kafka對partition進(jìn)行備份的方式如下:

kafka的落盤方式并不是一有數(shù)據(jù)就進(jìn)行落盤,是當(dāng)有一批數(shù)據(jù)的時候,批量進(jìn)行落盤。而且數(shù)據(jù)并不是消費(fèi)者接收到就銷毀。而是數(shù)據(jù)會有一個定時時間,時間到了才會對數(shù)據(jù)進(jìn)行刪除。

kafka實現(xiàn)消費(fèi)的方式是什么?

一般消費(fèi)模式有兩個,一種是隊列方式,隊列中的一條消息被隊列中的一個消費(fèi)者處理掉。另一種方式是發(fā)布訂閱模式,每條消息對應(yīng)多個消費(fèi)者。前提是消費(fèi)者需要對消息提前進(jìn)行訂閱。

kafka同時具備以上兩種消費(fèi)模式,所以kafka中抽象出一個Consumer Group來。group的使用方式如下:

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

相關(guān)閱讀更多精彩內(nèi)容

  • 1 Kafka概述 1.1 定義 Kafka是一個分布式的基于發(fā)布/訂閱模式的消息隊列,主要應(yīng)用于大數(shù)據(jù)實時處理領(lǐng)...
    djm猿閱讀 748評論 0 4
  • 為獲得更好的閱讀體驗,建議您訪問原文地址:傳送門前言:在之前的文章里面已經(jīng)了解到了「消息隊列」是怎么樣的一種存在(...
    我沒有三顆心臟閱讀 4,860評論 4 99
  • 本文為小馬閱讀《再談基于 Kafka 和 ZooKeeper 的分布式消息隊列原理》一文的筆記摘要記錄,便于日后復(fù)...
    小馬過河R閱讀 708評論 4 8
  • 以下內(nèi)容部分翻譯至 http://kafka.apache.org/intro kafka介紹 我們認(rèn)為,一個流處...
    若與閱讀 8,859評論 0 22
  • Kafka Kafka 核心概念 什么是 Kafka Kafka是由Apache軟件基金會開發(fā)的一個開源流處理平臺...
    janlle閱讀 797評論 0 0

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