国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Kafka - 主題Topic與消費者消息Offset日志記錄機制

這篇具有很好參考價值的文章主要介紹了Kafka - 主題Topic與消費者消息Offset日志記錄機制。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

Kafka Topic

可以根據(jù)業(yè)務類型,分發(fā)到不同的Topic中,對于每一個Topic,下面可以有多個分區(qū)(Partition)日志文件:
Kafka - 主題Topic與消費者消息Offset日志記錄機制
kafka 下的Topic的多個分區(qū),每一個分區(qū)實質上就是一個隊列,將接收到的消息暫時存儲到隊列中,根據(jù)配置以及消息消費情況來對隊列消息刪除。

Partition是一個有序的message序列 這些message按順序添加到一個叫做commit log的文件中。每個partition中的消息都有一個唯一的編號,稱之為offset,用來唯一標示某個分區(qū)中的message。 
每個partition,都對應一個commit log文件。一個partition中的message的offset都是唯一的,但是不同的partition中的message的offset可能是相同的。

可以這么來理解Topic,Partition和Broker

一個topic,代表邏輯上的一個業(yè)務數(shù)據(jù)集,比如按數(shù)據(jù)庫里不同表的數(shù)據(jù)操作消息區(qū)分放入不同topic,訂單相關操作消息放入訂單topic,用戶相關操作消息放入用戶topic,
對于大型網(wǎng)站來說,后端數(shù)據(jù)都是海量的,訂單消息很可能是非常巨量的,比如有幾百個G甚至達到TB級別,如果把這么多數(shù)據(jù)都放在一臺機器上可定會有容量限制問題,
那么就可以在topic內(nèi)部劃分多個partition來分片存儲數(shù)據(jù),不同的partition可以位于不同的機器上,每臺機器上都運行一個Kafka的進程Broker。

為什么要對Topic下數(shù)據(jù)進行分區(qū)存儲?

1、commit log文件會受到所在機器的文件系統(tǒng)大小的限制,分區(qū)之后可以將不同的分區(qū)放在不同的機器上,相當于對數(shù)據(jù)做了分布式存儲,理論上一個topic可以處理任意數(shù)量的數(shù)據(jù)。
2、為了提高并行度。

消費者消費消息的offset記錄機制

每個consumer會定期將自己消費分區(qū)的offset提交給kafka內(nèi)部
topic:__consumer_offsets,提交過去的時候,
key是 consumerGroupId+topic+分區(qū)號,value就是當前offset的值,kafka會定期清理topic里的消息,最后就保留最新的那條數(shù)據(jù)。
因為__consumer_offsets可能會接收高并發(fā)的請求,kafka默認給其分配50個分區(qū)(可以通過offsets.topic.num.partitions設置),這樣可以通過加機器的方式抗大并發(fā)

kafka 日志存儲

查看指定topic信息

bin/kafka-topics.sh --describe --bootstrap-server node02:9092  --topic test

Kafka - 主題Topic與消費者消息Offset日志記錄機制可以進入kafka的數(shù)據(jù)文件存儲目錄查看test和test1主題的消息日志文件:默認log目錄 /tmp/kafka-logs
Kafka - 主題Topic與消費者消息Offset日志記錄機制
消息日志文件主要存放在分區(qū)文件夾里的以log結尾的日志文件里,如下是test-1主題對應的分區(qū)0的消息日志:
Kafka - 主題Topic與消費者消息Offset日志記錄機制

kafka一般不會刪除消息,不管這些消息有沒有被消費。只會根據(jù)配置的日志保留時間(log.retention.hours)確認消息多久被刪除,
默認保留最近一周的日志消息。kafka的性能與保留的消息數(shù)據(jù)量大小沒有關系,
因此保存大量的數(shù)據(jù)消息日志信息不會有什么影響。

每個consumer是基于自己在commit log中的消費進度(offset)來進行工作的。
在kafka中,消費offset由consumer自己來維護;一般情況下我們按照順序逐條消費commit log中的消息,
當然我可以通過指定offset來重復消費某些消息,或者跳過某些消息。
這意味kafka中的consumer對集群的影響是非常小的,添加一個或者減少一個consumer,
對于集群或者其他consumer來說,都是沒有影響的,因為每個consumer維護各自的消費offset。

Kafka 一個分區(qū)的消息數(shù)據(jù)對應存儲在一個文件夾下,以topic名稱+分區(qū)號命名,消息在分區(qū)內(nèi)是分段(segment)存儲,
每個段的消息都存儲在不一樣的log文件里,這種特性方便old segment file快速被刪除,kafka規(guī)定了一個段位的 log 文件最大為 1G,做這個限制目的是為了方便把 log 文件加載到內(nèi)存去操作:

部分消息的offset索引文件,kafka每次往分區(qū)發(fā)4K(可配置)消息就會記錄一條當前消息的offset到index文件,
如果要定位消息的offset會先在這個文件里快速定位,再去log文件里找具體消息
00000000000009936472.index

消息存儲文件,主要存offset和消息體
00000000000009936472.log

消息的發(fā)送時間索引文件,kafka每次往分區(qū)發(fā)4K(可配置)消息就會記錄一條當前消息的發(fā)送時間戳與對應的offset到timeindex文件,
如果需要按照時間來定位消息的offset,,會先在這個文件里查找
00000000000009936472.timeindex

這個 9936472 之類的數(shù)字,就是代表了這個日志段文件里包含的起始 Offset,也就說明這個分區(qū)里至少都寫入了接近1000 萬條數(shù)據(jù)了。

Kafka Broker 有一個參數(shù),log.segment.bytes,限定了每個日志段文件的大小,最大就是 1GB。
一個日志段文件滿了,就自動開一個新的日志段文件來寫入,避免單個文件過大,影響文件的讀寫性能,這個過程叫做 log rolling,正在被寫入的那個日志段文件,叫做 active log segment。文章來源地址http://www.zghlxwxcb.cn/news/detail-438600.html

到了這里,關于Kafka - 主題Topic與消費者消息Offset日志記錄機制的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內(nèi)容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • kafka實戰(zhàn)-消費者offset重置問題

    背景:當app啟動時,會調(diào)用 “啟動上報接口” 上報啟動數(shù)據(jù),該數(shù)據(jù)包含且不限于手機型號、應用版本、app類型、啟動時間等,一站式接入平臺系統(tǒng)會記錄該數(shù)據(jù)。 生產(chǎn)者:“啟動上報接口”會根據(jù)啟動數(shù)據(jù)發(fā)送一條kafka消息,topic“xxx” 消費者:“啟動處理模塊”會監(jiān)控

    2023年04月11日
    瀏覽(18)
  • kafka消費者api和分區(qū)分配和offset消費

    kafka消費者api和分區(qū)分配和offset消費

    消費者的消費方式為主動從broker拉取消息,由于消費者的消費速度不同,由broker決定消息發(fā)送速度難以適應所有消費者的能力 拉取數(shù)據(jù)的問題在于,消費者可能會獲得空數(shù)據(jù) Consumer Group(CG):消費者組 由多個consumer組成。形成一個消費者組的條件,是所有消費者的groupid相同

    2024年02月16日
    瀏覽(25)
  • Kafka學習---4、消費者(分區(qū)消費、分區(qū)平衡策略、offset、漏消費和重復消費)

    Kafka學習---4、消費者(分區(qū)消費、分區(qū)平衡策略、offset、漏消費和重復消費)

    1.1 Kafka消費方式 1、pull(拉)模式:consumer采用從broker中主動拉取數(shù)據(jù)。 2、push(推)模式:Kafka沒有采用這種方式。因為broker決定消息發(fā)生速率,很難適應所有消費者的消費速率。例如推送的速度是50M/s,Consumer1、Consumer2就來不及處理消息。 pull模式不足之處是如果Kafka沒有數(shù)

    2024年02月16日
    瀏覽(24)
  • Kafka3.0.0版本——消費者(自動提交 offset)

    Kafka3.0.0版本——消費者(自動提交 offset)

    官網(wǎng)文檔 參數(shù)解釋 參數(shù) 描述 enable.auto.commi 默認值為 true,消費者會自動周期性地向服務器提交偏移量。 auto.commit.interval.ms 如果設置了 enable.auto.commit 的值為 true, 則該值定義了消費者偏移量向 Kafka 提交的頻率,默認 5s。 圖解分析 消費者自動提交 offset代碼 消費者自動提交

    2024年02月09日
    瀏覽(27)
  • Kafka3.0.0版本——消費者(手動提交offset)

    Kafka3.0.0版本——消費者(手動提交offset)

    1.1、手動提交offset的兩種方式 commitSync(同步提交):必須等待offset提交完畢,再去消費下一批數(shù)據(jù)。 commitAsync(異步提交) :發(fā)送完提交offset請求后,就開始消費下一批數(shù)據(jù)了。 1.2、手動提交offset兩種方式的區(qū)別 相同點:都會將本次提交的一批數(shù)據(jù)最高的偏移量提交。 不

    2024年02月09日
    瀏覽(28)
  • Kafka3.0.0版本——消費者(獨立消費者消費某一個主題數(shù)據(jù)案例__訂閱主題)

    Kafka3.0.0版本——消費者(獨立消費者消費某一個主題數(shù)據(jù)案例__訂閱主題)

    1.1、案例需求 創(chuàng)建一個獨立消費者,消費firstTopic主題中數(shù)據(jù),所下圖所示: 注意:在消費者 API 代碼中必須配置消費者組 id。命令行啟動消費者不填寫消費者組id 會被自動填寫隨機的消費者組 id。 1.2、案例代碼 代碼 1.3、測試 在 Kafka 集群控制臺,創(chuàng)建firstTopic主題 在 IDEA中

    2024年02月09日
    瀏覽(26)
  • Kafka-Java四:Spring配置Kafka消費者提交Offset的策略

    Kafka消費者提交Offset的策略有 自動提交Offset: 消費者將消息拉取下來以后未被消費者消費前,直接自動提交offset。 自動提交可能丟失數(shù)據(jù),比如消息在被消費者消費前已經(jīng)提交了offset,有可能消息拉取下來以后,消費者掛了 手動提交Offset 消費者在消費消息時/后,再提交o

    2024年02月08日
    瀏覽(23)
  • Linux安裝Kafka,創(chuàng)建topic、生產(chǎn)者、消費者

    Linux安裝Kafka,創(chuàng)建topic、生產(chǎn)者、消費者

    1.創(chuàng)建安裝目錄/usr/local/kafka mkdir /usr/local/kafka 2.進入安裝包目錄 cd?/usr/local/kafka? 3.下載安裝包 wget https://downloads.apache.org/kafka/3.3.1/kafka_2.12-3.3.1.tgz 4.解壓安裝包 tar -zxvf kafka_2.12-3.3.1.tgz 5.進入cd kafka_2.12-3.3.1目錄 cd kafka_2.12-3.3.1/ 6.修改zookeeper配置 cat ./config/zookeeper.properties | grep

    2023年04月17日
    瀏覽(29)
  • 如何查看kafka的topic的消費者組有沒有積壓

    Kafka 自帶的命令行工具 kafka-consumer-groups.sh 來查看消費者組的消費情況,包括是否有積壓。 具體步驟如下: 打開命令行終端,進入 Kafka 安裝目錄下的 bin 文件夾。 輸入以下命令,查看消費者組的消費情況: ./kafka-consumer-groups.sh --bootstrap-server --describe --group kafka-consumer-groups.

    2023年04月18日
    瀏覽(73)
  • 消息隊列Pulsar入門(一) 生產(chǎn)者/消費者/Topic詳解,附源碼演示

    消息隊列Pulsar入門(一) 生產(chǎn)者/消費者/Topic詳解,附源碼演示

    部署問題 連接Pulsar 創(chuàng)建方式 簡單方法創(chuàng)建 loadConf自定義配置創(chuàng)建 Pulsar官網(wǎng) 發(fā)送模式 同步發(fā)送 異步發(fā)送 訪問方式/發(fā)送方式 Share模式(默認情況) 請注意: Exclusive WaitForExclusive 創(chuàng)建方式 簡單方法創(chuàng)建 監(jiān)聽器方法創(chuàng)建 loadConf自定義配置創(chuàng)建 多主題訂閱 傳入List數(shù)組的多主題訂閱

    2024年02月08日
    瀏覽(64)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包