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

Kafka消費(fèi)者不消費(fèi)數(shù)據(jù)

這篇具有很好參考價(jià)值的文章主要介紹了Kafka消費(fèi)者不消費(fèi)數(shù)據(jù)。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

背景:

工作往往是千篇一律,真正能學(xué)到點(diǎn)知識(shí)都是在上線后。使用Skywalking+Kafka+ES進(jìn)行應(yīng)用監(jiān)控。

現(xiàn)象:

公司使用Skywalking在開發(fā)測試環(huán)境中Kafka順利消費(fèi)數(shù)據(jù),到了UAT環(huán)境一開始還正常,后面接入了更多的應(yīng)用后出現(xiàn)了問題:OAP服務(wù)正常但是ES里不再有數(shù)據(jù)。

排查:

通過查看消費(fèi)者消費(fèi)Kafka數(shù)據(jù)的情況可以看到,數(shù)據(jù)出現(xiàn)了積壓。

Kafka消費(fèi)者不消費(fèi)數(shù)據(jù)

?由于沒有設(shè)置消費(fèi)者的參數(shù),所以使用的是默認(rèn)值max.poll.interval.ms是5分鐘、?max.poll.records是500

Kafka消費(fèi)者不消費(fèi)數(shù)據(jù)

?目前積壓數(shù)據(jù)遠(yuǎn)大于一次拉取消費(fèi)的500,所以判斷是因?yàn)橄M(fèi)者無法在等待時(shí)間內(nèi)消費(fèi)完數(shù)據(jù),?Consumer ?Group Coordination消費(fèi)組判定當(dāng)前消費(fèi)者不在消費(fèi)組內(nèi),所以查詢消費(fèi)者狀態(tài)會(huì)出現(xiàn)消費(fèi)者組不存在消費(fèi)成員(如圖符合判斷)

Kafka消費(fèi)者不消費(fèi)數(shù)據(jù)

?目前解決方法:

max.poll.records改小或者?request.timeout.ms改大或者?request.timeout.ms改大,因?yàn)槟壳皵?shù)據(jù)不穩(wěn)定后續(xù)也只能通過數(shù)據(jù)量進(jìn)行修改參數(shù)調(diào)優(yōu)。重新開始消費(fèi),待后續(xù)觀察。

結(jié)論:

由于數(shù)據(jù)量變大,消費(fèi)者長時(shí)間不再請求數(shù)據(jù),未向Group Coordinator發(fā)送心跳請求,所以kafka認(rèn)為消費(fèi)者已從消費(fèi)組下線。所以不再進(jìn)行消費(fèi)。

學(xué)習(xí):

之前知識(shí)淺淺了解了Rebalance,但沒碰到過。所以借此好好學(xué)習(xí)一下。

一、什么是Rebalance

  • Rebalance本質(zhì)上是一種協(xié)議, 規(guī)定了一個(gè)Consumer Group下的所有consumer如何達(dá)成一致,來分配訂閱Topic的每個(gè)分區(qū)。

  • Rebalance發(fā)生時(shí), 所有的Consumer Group都停止工作, 直到Rebalance 成。

二、觸發(fā)條件

① 組成員個(gè)數(shù)發(fā)生變化

  • 新的消費(fèi)者加入到消費(fèi)組

  • 消費(fèi)者主動(dòng)退出消費(fèi)組

  • 消費(fèi)者被動(dòng)下線。比如消費(fèi)者長時(shí)間的GC, 網(wǎng)絡(luò)延遲導(dǎo)致消費(fèi)者長時(shí)間未向Group Coordinator發(fā)送心跳請求, 均會(huì)認(rèn)為該消費(fèi)者已經(jīng)下線并踢出(本次問題出現(xiàn)的原因)

② 訂閱的Topic的Consumer Group個(gè)數(shù)發(fā)生變化

③ Topic 的分區(qū)數(shù)發(fā)生變化

三、Rebalance的弊端

  1. rebalance的時(shí)候消費(fèi)組內(nèi)的所有消費(fèi)者都不能處理消息
  2. 消費(fèi)組內(nèi)的消費(fèi)者越多rebalance時(shí)間越長
  3. Rebalance 效率不高。當(dāng)前 Kafka 的設(shè)計(jì)機(jī)制決定了每次 Rebalance 時(shí),Consumer Group 下的所有成員都要參與進(jìn)來,而且通常不會(huì)考慮局部性原理,但局部性原理對提升系統(tǒng)性能是特別重要的。

四、如何避免Rebalance

從觸發(fā)條件可以看到,① 、?② 、③基本都是可以認(rèn)為盡量避免也就是提前根據(jù)數(shù)據(jù)量規(guī)劃好消費(fèi)者數(shù)量,主要是① 中的第三個(gè),需要靠kafka的參數(shù)去調(diào)整

#?心跳相關(guān)
session.timeout.ms?=?6s
heartbeat.interval.ms?=?2s
#?消費(fèi)數(shù)量(默認(rèn)500)
max.poll.records


#?消費(fèi)時(shí)間(默認(rèn)300000)
request.timeout.msmax.poll.interval.ms=300000

Kafka消費(fèi)者不消費(fèi)數(shù)據(jù)

Kafka消費(fèi)者不消費(fèi)數(shù)據(jù)

?Kafka消費(fèi)者不消費(fèi)數(shù)據(jù)

Kafka消費(fèi)者不消費(fèi)數(shù)據(jù)

Kafka消費(fèi)者不消費(fèi)數(shù)據(jù)

五、Rebalance過程

Coordinator服務(wù)

  • Group Coordinator 是一個(gè)服務(wù), 每個(gè) Broker 在啟動(dòng)的時(shí)候都會(huì)啟動(dòng)一個(gè)該服務(wù) Group Coordinator 的作用是用來存儲(chǔ) Group 的相關(guān) Meta 信息, 并將對應(yīng) Partition 的 Offset 信息記錄到 Kafka 內(nèi)置 Topic(__consumer_offsets)中

  • Kafka 在0.9之前是基于 Zookeeper 來存儲(chǔ)Partition的 offset 信息(consumers/{group}/offsets/{topic}/{partition}), 因?yàn)?Zookeeper 并不適用于頻繁的寫操作, 所以在0.9之后通過內(nèi)置 Topic 的方式來記錄對應(yīng) Partition 的 offset。

Rebalance過程分為兩步:Join Group和 Sync Group

Join Group

① 概述

  • Join Group 顧名思義就是加入組。

  • 這一步中, 所有成員都向 Coordinator 發(fā)送 JoinGroup 請求, 請求加入消費(fèi)組。

  • 一旦所有成員都發(fā)送了 JoinGroup 請求, Coordinator 會(huì)從中選擇一個(gè) Consumer 擔(dān)任 Leader 的角色, 并把組成員信息以及訂閱信息發(fā)給 Consumer Leader。

  • 注意Consumer Leader 和 Coordinator不是一個(gè)概念。Consumer Leader負(fù)責(zé)消費(fèi)分配方案的制定。

② 流程圖

Kafka消費(fèi)者不消費(fèi)數(shù)據(jù)

?Sync Group

① 概述

  • Consumer Leader 開始分配消費(fèi)方案,即哪個(gè) Consumer 負(fù)責(zé)消費(fèi)哪些 Topic 的哪些 Partition。

  • 一旦完成分配,Consumer Leader 會(huì)將這個(gè)方案封裝進(jìn)SyncGroup請求中發(fā)給 Coordinator。

  • 非 Consumer Leader 也會(huì)發(fā) SyncGroup 請求, 只是內(nèi)容為空。

  • Coordinator 接收到分配方案之后會(huì)把方案塞進(jìn)SyncGroup的Response中發(fā)給各個(gè)Consumer。

  • 這樣組內(nèi)的所有成員就都知道自己應(yīng)該消費(fèi)哪些分區(qū)了。

② 流程圖

Kafka消費(fèi)者不消費(fèi)數(shù)據(jù)

參考:Kafka學(xué)習(xí)筆記 NO.004 Kafka的Rebalance(重平衡) - 墨天輪文章來源地址http://www.zghlxwxcb.cn/news/detail-413284.html

到了這里,關(guān)于Kafka消費(fèi)者不消費(fèi)數(shù)據(jù)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Kafka消費(fèi)者無法消費(fèi)數(shù)據(jù),解決

    作為一個(gè)在項(xiàng)目中邊學(xué)邊用的實(shí)習(xí)生,真的被昨天還好好的今天就不能消費(fèi)數(shù)據(jù)的kafka折磨到了,下面提供一點(diǎn)建議,希望能對大家有所幫助。 //操作前集群都關(guān)了 1.首先去kafka-home的config目錄下找到server.properties文件, 加入advertised.listeners=PLAINTEXT://ip:9092? ? 如果有配置liste

    2024年02月17日
    瀏覽(21)
  • 【云原生進(jìn)階之PaaS中間件】第三章Kafka-4.4-消費(fèi)者工作流程

    【云原生進(jìn)階之PaaS中間件】第三章Kafka-4.4-消費(fèi)者工作流程

    1.1.1 消費(fèi)者群組 ????????Kafka 里消費(fèi)者從屬于消費(fèi)者群組,一個(gè)群組里的消費(fèi)者訂閱的都是同一個(gè)主題,每個(gè)消費(fèi)者接收主題一部分分區(qū)的消息。 ????????如上圖,主題 T 有 4 個(gè)分區(qū),群組中只有一個(gè)消費(fèi)者,則該消費(fèi)者將收到主題 T1 全部 4 個(gè)分區(qū)的消息。 ?????

    2024年02月22日
    瀏覽(31)
  • Kafka3.0.0版本——消費(fèi)者(獨(dú)立消費(fèi)者消費(fèi)某一個(gè)主題數(shù)據(jù)案例__訂閱主題)

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

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

    2024年02月09日
    瀏覽(26)
  • Kafka入門,漏消費(fèi)和重復(fù)消費(fèi), 消費(fèi)者事務(wù),數(shù)據(jù)積壓(二十四)

    Kafka入門,漏消費(fèi)和重復(fù)消費(fèi), 消費(fèi)者事務(wù),數(shù)據(jù)積壓(二十四)

    重復(fù)消費(fèi):已經(jīng)消費(fèi)了數(shù)據(jù),但是offset沒提交。 漏消費(fèi):先提交offset后消費(fèi),有可能會(huì)造成數(shù)據(jù)得漏消費(fèi) 如果向完成consumer端得進(jìn)準(zhǔn)一次性消費(fèi),那么需要Kafka消費(fèi)端將消費(fèi)過程和提交offset過程做原子綁定。此時(shí)我們需要將kafka的offset保存到支持事務(wù)的自定義介質(zhì)(比如MySQ

    2024年02月15日
    瀏覽(23)
  • Kafka3.0.0版本——消費(fèi)者(獨(dú)立消費(fèi)者消費(fèi)某一個(gè)主題中某個(gè)分區(qū)數(shù)據(jù)案例__訂閱分區(qū))

    Kafka3.0.0版本——消費(fèi)者(獨(dú)立消費(fèi)者消費(fèi)某一個(gè)主題中某個(gè)分區(qū)數(shù)據(jù)案例__訂閱分區(qū))

    1.1、案例需求 創(chuàng)建一個(gè)獨(dú)立消費(fèi)者,消費(fèi)firstTopic主題 0 號(hào)分區(qū)的數(shù)據(jù),所下圖所示: 1.2、案例代碼 生產(chǎn)者往firstTopic主題 0 號(hào)分區(qū)發(fā)送數(shù)據(jù)代碼 消費(fèi)者消費(fèi)firstTopic主題 0 分區(qū)數(shù)據(jù)代碼 1.3、測試 在 IDEA 中執(zhí)行消費(fèi)者程序,如下圖: 在 IDEA 中執(zhí)行生產(chǎn)者程序 ,在控制臺(tái)觀察

    2024年02月09日
    瀏覽(34)
  • springboot kafka消費(fèi)者啟動(dòng)/停止監(jiān)聽控制,啟動(dòng)時(shí)只消費(fèi)此時(shí)之后的數(shù)據(jù)

    在springboot項(xiàng)目中,使用spring-kafka消費(fèi)kafka數(shù)據(jù)。希望能夠控制消費(fèi)者(KafkaConsumer)啟動(dòng)或停止消費(fèi),并且在啟動(dòng)消費(fèi)時(shí)只消費(fèi)當(dāng)前時(shí)刻以后生產(chǎn)的數(shù)據(jù)(最新生產(chǎn)的數(shù)據(jù)),也就是說,啟動(dòng)消費(fèi)之前未消費(fèi)的數(shù)據(jù)不再消費(fèi)。 按照官方文檔創(chuàng)建一個(gè)監(jiān)聽。 官方文檔地址 Kafka

    2023年04月15日
    瀏覽(26)
  • 第3、4章 Kafka 生產(chǎn)者 和 消費(fèi)者 ——向 Kafka 寫入數(shù)據(jù) 和讀取數(shù)據(jù)

    第3、4章 Kafka 生產(chǎn)者 和 消費(fèi)者 ——向 Kafka 寫入數(shù)據(jù) 和讀取數(shù)據(jù)

    重要的特性: 消息通過 隊(duì)列來進(jìn)行交換 每條消息僅會(huì)傳遞給一個(gè)消費(fèi)者 消息傳遞有先后順序,消息被消費(fèi)后從隊(duì)列刪除(除非使用了消息優(yōu)先級) 生產(chǎn)者或者消費(fèi)者可以動(dòng)態(tài)加入 傳送模型: 異步即發(fā)即棄:生產(chǎn)者發(fā)送一條消息,不會(huì)等待收到一個(gè)響應(yīng) 異步請求、應(yīng)答:

    2024年02月20日
    瀏覽(21)
  • 大數(shù)據(jù)開發(fā)之Kafka(broker、消費(fèi)者、eagle監(jiān)控、kraft模式)

    大數(shù)據(jù)開發(fā)之Kafka(broker、消費(fèi)者、eagle監(jiān)控、kraft模式)

    4.1.1 Zookeeper存儲(chǔ)的Kafka的信息 1、查看zookeeper中的kafka節(jié)點(diǎn)所存儲(chǔ)的信息 啟動(dòng)Zookeeper客戶端 通過ls命令列出kafka節(jié)點(diǎn)內(nèi)容 2、zookeeper中存儲(chǔ)的kafka信息 在zookeeper的服務(wù)端存儲(chǔ)的Kafka相關(guān)信息: 1)/kafka/brokers/ids [0,1,2] 記錄有哪些服務(wù)器 2)/kafka/brokers/topics/first/partitions/0/state {“l(fā)

    2024年01月21日
    瀏覽(25)
  • java:Kafka生產(chǎn)者推送數(shù)據(jù)與消費(fèi)者接收數(shù)據(jù)(參數(shù)配置以及案例)

    bootstrap.servers :Kafka集群中的Broker列表,格式為host1:port1,host2:port2,…。生產(chǎn)者會(huì)從這些Broker中選擇一個(gè)可用的Broker作為消息發(fā)送的目標(biāo)Broker。 acks :Broker對消息的確認(rèn)模式。可選值為0、1、all。0表示生產(chǎn)者不會(huì)等待Broker的任何確認(rèn)消息;1表示生產(chǎn)者會(huì)等待Broker的Leader副本確認(rèn)

    2024年02月16日
    瀏覽(36)
  • 13、Kafka ------ kafka 消費(fèi)者API用法(消費(fèi)者消費(fèi)消息代碼演示)

    13、Kafka ------ kafka 消費(fèi)者API用法(消費(fèi)者消費(fèi)消息代碼演示)

    消費(fèi)者API的核心類是 KafkaConsumer,它提供了如下常用方法: 下面這些方法都體現(xiàn)了Kafka是一個(gè)數(shù)據(jù)流平臺(tái),消費(fèi)者通過這些方法可以從分區(qū)的任意位置、重新開始讀取數(shù)據(jù)。 根據(jù)KafkaConsumer不難看出,使用消費(fèi)者API拉取消息很簡單,基本只要幾步: 1、創(chuàng)建KafkaConsumer對象,創(chuàng)建

    2024年04月11日
    瀏覽(30)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包