中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Kafka核心中的偏移量機制Offset是怎么樣的

發布時間:2021-12-15 10:22:54 來源:億速云 閱讀:462 作者:柒染 欄目:云計算

這篇文章給大家介紹Kafka核心中的偏移量機制Offset是怎么樣的,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

    Kafka是由LinkIn開源的實時數據處理框架,目前已經更新到2.3版本。不同于一般的消息中間件,Kafka通過數據持久化和磁盤讀寫獲得了極高的吞吐量,并可以不依賴Storm,SparkStreaming的流處理平臺,自己進行實時的流處理。

Kakfa的Offset機制是其最核心機制之一,由于API對于部分功能的實現,我們有時并沒有手動去設置Offset,那么Kafka到底有幾個Offset呢?

一、生產者Offset

首先,我們先來看生產者的offset,我們知道Kafka是通過生產者將消息發送給某一個topic,消費者再消費這個topic的消息,當然可能有多個生產者,多個消費者,還可能有消費者組的概念,這個稍后在討論。

當生產者將消息發送給某一個topic時,要看有多少個分區,因為kafka是通過分區機制實現分布式的。


Kafka核心中的偏移量機制Offset是怎么樣的

圖  生產者offset

通過此圖可以清晰的看到生產者的offset原理,不管是多少個生產者,還是我們規定了他們會寫入哪一個分區,但只要他們寫入的時候,一定是每一個分區都有一個offset,這個offset就是生產者的offset,同時也是這個分區的最新最大的offset。

有些時候我們在開發生產者代碼時并沒有指定某一個分區的offset,可能是我們使用的單分區,或者默認均勻的寫入多個分區,這個工作kafka幫我們完成了。

二、消費者Offset

再來看消費者端offset,要稍微復雜一些。

Kafka核心中的偏移量機制Offset是怎么樣的

圖 消費者offset

這是某一個分區的offset情況,我們已經知道生產者寫入的offset是最新最大的值也就是12,而當Consumer A進行消費時,他從0開始消費,一直消費到了9,他的offset就記錄在了9,Consumer B就紀錄在了11。等下一次他們再來消費時,他們可以選擇接著上一次的位置消費,當然也可以選擇從頭消費,或者跳到最近的記錄并從“現在”開始消費。

這樣即使有多個分區,消費者也能靈活使用。

Kafka核心中的偏移量機制Offset是怎么樣的

圖 消費者組

消費者組的概念其實并不影響對offset的理解,上面的情況Consumer A,Consumer B如果是同組就不能同時消費一個分區的消息,不同組的消費者可以同時消費一個分區的消息。

還有一種offset的說法,就是consumer消費未提交時,本地是有另外一個offset的,這個offset不一定與集群中記錄的offset一致。

所以,kafka每一個topic分區和生產者,消費者不同,是有多個offset的。

offset是指某一個分區的偏移量。

topic partition offset 這三個唯一確定一條消息。

生產者的offset其實就是最新的offset。

消費者的offset是他自己維護的,他可以選擇分區最開始,最新,也可以記住他消費到哪了。

消費者組是為了不同組的消費者可以同時消費一個分區的消息。

關于Kafka核心中的偏移量機制Offset是怎么樣的就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

咸丰县| 申扎县| 南宫市| 西平县| 辽源市| 襄城县| 上饶市| 贺兰县| 天柱县| 花莲市| 海晏县| 竹山县| 上犹县| 句容市| 成都市| 静海县| 平阳县| 陆河县| 沈阳市| 昌黎县| 合肥市| 仪征市| 神池县| 齐齐哈尔市| 永修县| 柳州市| 镇康县| 鹤庆县| 新田县| 揭西县| 瓦房店市| 辽源市| 临汾市| 邹平县| 兰西县| 吴桥县| 鄂托克前旗| 通榆县| 通河县| 理塘县| 尚志市|