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

消息隊列-Kafka-消費方如何分區(qū)與分區(qū)重平衡

這篇具有很好參考價值的文章主要介紹了消息隊列-Kafka-消費方如何分區(qū)與分區(qū)重平衡。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

消費分區(qū)

資料來源于網(wǎng)絡
消費者訂閱的入口:KafkaConsumer#subscribe
消費者消費的入口:KafkaConsumer#poll
處理流程:
對元數(shù)據(jù)重平衡處理:KafkaConsumer#updateAssignmentMetadataIfNeeded
消息隊列-Kafka-消費方如何分區(qū)與分區(qū)重平衡,消息隊列,kafka,消息隊列
協(xié)調(diào)器的拉取處理:onsumerCoordinator#poll
消息隊列-Kafka-消費方如何分區(qū)與分區(qū)重平衡,消息隊列,kafka,消息隊列

執(zhí)行已完成的【消費進度】提交請求的回調(diào)函數(shù):invokeCompletedOffsetCommitCallbacks()重平衡之前提交自己當前消費的信息:
消息隊列-Kafka-消費方如何分區(qū)與分區(qū)重平衡,消息隊列,kafka,消息隊列
更新發(fā)送心跳相關的時間:pollHeartbeat

確保消費者組活躍:AbstractCoordinator#ensureActiveGroup
是否需要加入組:joinGroupIfNeeded(timer);
發(fā)送入組請求:initiateJoinGroup、AbstractCoordinator#sendJoinGroupRequest
消息隊列-Kafka-消費方如何分區(qū)與分區(qū)重平衡,消息隊列,kafka,消息隊列

處理入組響應:JoinGroupResponseHandler
消息隊列-Kafka-消費方如何分區(qū)與分區(qū)重平衡,消息隊列,kafka,消息隊列
入組成功,自己被選為分配分區(qū)的 leader:AbstractCoordinator#onJoinComplete
重新分配分區(qū):AbstractPartitionAssignor#performAssignment,AbstractPartitionAssignor.assign

拉取消息:
拉取消息:org.apache.kafka.clients.consumer.KafkaConsumer#pollForFetches
本地拉?。篺etcher.collectFetch()
遠程拉?。簊endFetches();、client.poll
攔截返回:interceptors.onConsume
消息隊列-Kafka-消費方如何分區(qū)與分區(qū)重平衡,消息隊列,kafka,消息隊列

重平衡

作用是讓組內(nèi)所有的消費者知道自己應該消費那個分區(qū)或者它可以不用消費分區(qū),或者消費多個分區(qū),都是由重平衡機制來保證的。
也就是相當于是消費者的管家,給他派發(fā)消費那個分區(qū)的任務。
這下面這些時刻會觸發(fā):

  • 組員變化:加入,退出,閃退
  • 主題數(shù)量變化
  • 主題分區(qū)數(shù)變化

要想實現(xiàn)消費者的重平衡勢必要和broker進行通信,在Kafka中是通過心跳機制來實現(xiàn)的,平衡的步驟:

  • JoinGroup
    在發(fā)送請求的時候:

請求當broker 告訴broker我要消費那個主題,并且協(xié)調(diào)器會收到以后會放入隊列。
當所以的消費者都發(fā)送JoinGroup以后,這個時候所有信息已經(jīng)收集到協(xié)調(diào)者,然后協(xié)調(diào)者來選一個leader。

協(xié)調(diào)者的響應:
協(xié)調(diào)者會選一個leader一般是先發(fā)起JoinGroup的消費者,這個時候協(xié)調(diào)器會告訴這個消費者去進行分區(qū)方案的生成。文章來源地址http://www.zghlxwxcb.cn/news/detail-851473.html

  • SyncGroup
    在發(fā)送請求的是時候有下面這兩種情況:
    1 如果是leader 將分配好的方案給到協(xié)調(diào)器。
    2 如果是非leader 只是要就協(xié)調(diào)者告訴自己應該消費那些分區(qū)。
    協(xié)調(diào)者響應:
    告訴消費者消費那些分區(qū)
    圖片源于網(wǎng)絡
    消息隊列-Kafka-消費方如何分區(qū)與分區(qū)重平衡,消息隊列,kafka,消息隊列

到了這里,關于消息隊列-Kafka-消費方如何分區(qū)與分區(qū)重平衡的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關文章

  • 全網(wǎng)最詳細地理解Kafka中的Topic和Partition以及關于kafka的消息分發(fā)、服務端如何消費指定分區(qū)、kafka的分區(qū)分配策略(range策略和RoundRobin策略)

    全網(wǎng)最詳細地理解Kafka中的Topic和Partition以及關于kafka的消息分發(fā)、服務端如何消費指定分區(qū)、kafka的分區(qū)分配策略(range策略和RoundRobin策略)

    最近在學習kafka相關的知識,特將學習成功記錄成文章,以供大家共同學習。 首先要注意的是, Kafka 中的 Topic 和 ActiveMQ 中的 Topic 是不一樣的。 在 Kafka 中, Topic 是一個存儲消息的邏輯概念,可以認為是一個消息集合。每條消息發(fā)送到 Kafka 集群的消息都有一個類別。 物理上

    2024年01月25日
    瀏覽(35)
  • Kafka3.0.0版本——消費者(分區(qū)的分配以及再平衡)

    Kafka3.0.0版本——消費者(分區(qū)的分配以及再平衡)

    1.1、消費者分區(qū)及消費者組的概述 一個consumer group中有多個consumer組成,一個 topic有多個partition組成。 1.2、如何確定哪個consumer來消費哪個partition的數(shù)據(jù) Kafka有四種主流的分區(qū)分配策略: Range、RoundRobin、Sticky、CooperativeSticky。 可以通過配置參數(shù) partition.assignment.strategy ,修改分

    2024年02月07日
    瀏覽(28)
  • Kafka3.0.0版本——消費者(Sticky分區(qū)分配策略以及再平衡)

    Kafka3.0.0版本——消費者(Sticky分區(qū)分配策略以及再平衡)

    粘性分區(qū)定義:可以理解為分配的結果帶有“粘性的”。即在執(zhí)行一次新的分配之前,考慮上一次分配的結果,盡量少的調(diào)整分配的變動,可以節(jié)省大量的開銷。 粘性分區(qū)是 Kafka 從 0.11.x 版本開始引入這種分配策略, 首先會盡量均衡的放置分區(qū)到消費者上面, 在出現(xiàn)同一消

    2024年02月09日
    瀏覽(45)
  • Kafka3.0.0版本——消費者(RoundRobin分區(qū)分配策略以及再平衡)

    Kafka3.0.0版本——消費者(RoundRobin分區(qū)分配策略以及再平衡)

    RoundRobin 針對集群中 所有Topic而言。 RoundRobin 輪詢分區(qū)策略,是把 所有的 partition 和所有的consumer 都列出來 ,然后 按照 hashcode 進行排序 ,最后通過 輪詢算法 來分配 partition 給到各個消費者。 2.1、創(chuàng)建帶有7個分區(qū)的sixTopic主題 在 Kafka 集群控制臺,創(chuàng)建帶有7個分區(qū)的sixTopi

    2024年02月07日
    瀏覽(22)
  • 分布式 - 消息隊列Kafka:Kafka 消費者消息消費與參數(shù)配置

    分布式 - 消息隊列Kafka:Kafka 消費者消息消費與參數(shù)配置

    01. 創(chuàng)建消費者 在讀取消息之前,需要先創(chuàng)建一個KafkaConsumer對象。創(chuàng)建KafkaConsumer對象與創(chuàng)建KafkaProducer對象非常相似——把想要傳給消費者的屬性放在Properties對象里。 為簡單起見,這里只提供4個必要的屬性:bootstrap.servers、key.deserializer 和 value.deserializer。 ① bootstrap.servers 指

    2024年02月12日
    瀏覽(27)
  • 分布式 - 消息隊列Kafka:Kafka 消費者的消費位移

    分布式 - 消息隊列Kafka:Kafka 消費者的消費位移

    01. Kafka 分區(qū)位移 對于Kafka中的分區(qū)而言,它的每條消息都有唯一的offset,用來表示消息在分區(qū)中對應的位置。偏移量從0開始,每個新消息的偏移量比前一個消息的偏移量大1。 每條消息在分區(qū)中的位置信息由一個叫位移(Offset)的數(shù)據(jù)來表征。分區(qū)位移總是從 0 開始,假設一

    2024年02月12日
    瀏覽(27)
  • 分布式 - 消息隊列Kafka:Kafka生產(chǎn)者發(fā)送消息的分區(qū)策略

    分布式 - 消息隊列Kafka:Kafka生產(chǎn)者發(fā)送消息的分區(qū)策略

    01. Kafka 分區(qū)的作用 分區(qū)的作用就是提供負載均衡的能力,或者說對數(shù)據(jù)進行分區(qū)的主要原因,就是為了實現(xiàn)系統(tǒng)的高伸縮性。不同的分區(qū)能夠被放置到不同節(jié)點的機器上,而數(shù)據(jù)的讀寫操作也都是針對分區(qū)這個粒度而進行的,這樣每個節(jié)點的機器都能獨立地執(zhí)行各自分區(qū)的

    2024年02月13日
    瀏覽(32)
  • 分布式 - 消息隊列Kafka:Kafka消費者和消費者組

    分布式 - 消息隊列Kafka:Kafka消費者和消費者組

    1. Kafka 消費者是什么? 消費者負責訂閱Kafka中的主題,并且從訂閱的主題上拉取消息。與其他一些消息中間件不同的是:在Kafka的消費理念中還有一層消費組的概念,每個消費者都有一個對應的消費組。當消息發(fā)布到主題后,只會被投遞給訂閱它的每個消費組中的一個消費者

    2024年02月13日
    瀏覽(28)
  • 分布式 - 消息隊列Kafka:Kafka 消費者消費位移的提交方式

    分布式 - 消息隊列Kafka:Kafka 消費者消費位移的提交方式

    最簡單的提交方式是讓消費者自動提交偏移量,自動提交 offset 的相關參數(shù): enable.auto.commit:是否開啟自動提交 offset 功能,默認為 true; auto.commit.interval.ms:自動提交 offset 的時間間隔,默認為5秒; 如果 enable.auto.commit 被設置為true,那么每過5秒,消費者就會自動提交 poll() 返

    2024年02月12日
    瀏覽(31)
  • JAVA實時獲取kafka各個主題下分區(qū)消息的消費情況

    通過指定 主題 和 消費者組 調(diào)用方法,實時查看主題下分區(qū)消息的消費情況(消息總數(shù)量、消費消息數(shù)量、未消費的消息數(shù)量)。

    2024年02月13日
    瀏覽(26)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領取紅包

二維碼2

領紅包