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

Kafka rebalance 的幾種原因與解決方案

這篇具有很好參考價值的文章主要介紹了Kafka rebalance 的幾種原因與解決方案。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

網(wǎng)上有很多文章講述 Kafka rebalance 的原理,本文是列舉常見的幾種 rebalance 場景。

rebalance 期間,當前 consumer group 的所有 consumer 都要暫停消費,開銷較大。因此應該盡量減少 rebalance ,而 relalance 的原因通常是 consumer 數(shù)量變化,常見的幾種情況如下:文章來源地址http://www.zghlxwxcb.cn/news/detail-430348.html

  1. 如果一個 consumer 剛啟動,則會向 broker 發(fā)送 JoinGroup 請求,加入 group ,被分配一個 member id ,觸發(fā)一次 rebalance 。
  2. 如果一個 consumer 終止,不再運行。則等到 Heartbeat 超時,broker 會認為該 consumer 下線,觸發(fā)一次 rebalance 。
  3. 上述 consumer 啟動、終止的情況一般不頻繁,可以容忍它觸發(fā) rebalance 。但有的情況下,consumer 會頻繁啟動、終止,比如被 k8s HPA 改變 consumer 數(shù)量。
    • 解決方案:額外開發(fā)一個應用,稱為 dispatcher ,讓它作為唯一的 consumer 連接到 broker ,獲取消息。而原本的應用連接到 dispatcher ,間接獲取消息。
    • 使用 dispatcher 還能解決另一個問題:group 中的 consumer 數(shù)量,大于當前 topic 的 partition 數(shù)量,導致部分 consumer 空閑、不能消費。
  4. 如果一個 consumer 消費太慢,連續(xù)調(diào)用 poll() 的時間間隔超過 max.poll.interval.ms ,也會導致 Heartbeat 超時,觸發(fā) rebalance 。
    • 解決方案:增加 max.poll.interval.ms 閾值,或者優(yōu)化 consumer 客戶端代碼,例如減少每次拉取的數(shù)據(jù)量從而減少消費耗時、更快地開始下一次消費,例如從同步消費改為異步消費。
  5. 如果一個 consumer 終止,然后又重啟。則不記得自己之前的 member id ,依然會發(fā)送 JoinGroup 請求,加入 group ,被分配一個新的隨機 member id ,觸發(fā)一次 rebalance 。
    • 而舊的 member id 不再使用,等到 Heartbeat 超時,又會觸發(fā)一次 rebalance 。因此 consumer 重啟時會觸發(fā)兩次 rebalance 。
    • 解決方案:Kafka v2.3 開始,consumer 增加了配置參數(shù) group.instance.id ,用于避免 consumer 重啟時觸發(fā) rebalance 。
      • 給該參數(shù)賦值為非空字符串時,consumer 會從默認的 Dynamic Member 類型變成 Static Member 類型,并采用該參數(shù)的值作為 client.id。
        當 consumer 重啟之后發(fā)送 JoinGroup 請求時,Coordinator 會識別出它是 Static Member ,屬于 rejoin ,因此分配一個新 member id ,并刪除舊的 member id 。
        這樣不會觸發(fā) rebalance ,除非 consumer 重啟太慢,導致 Heartbeat 超時。
      • 日志示例:
        INFO	[GroupCoordinator 1]: Static member Some(static_member_1) of group test_group_1 with unknown member id rejoins, assigning new member id static_member_1-cdf1c4ea-2f1c-4f4d-bc46-bf443e5f7322, while old member id static_member_1-8b5d89b3-0757-4441-aeaa-50e7f9f55cee will be removed.
        INFO	[GroupCoordinator 1]: Static member which joins during Stable stage and doesn't affect selectProtocol will not trigger rebalance.
        
      • 如果一個 group 中只運行了一個 consumer ,則用戶可以配置一個固定的 group.instance.id 值。
      • 如果一個 group 中運行了多個 consumer ,則用戶需要在客戶端增加一些代碼,給每個 consumer 配置一個互不相同的、長期不變的 group.instance.id 值。
        例如以 k8s StatefulSet 方式部署多個 consumer ,它們的 Pod 名稱會從 0 開始編號??勺屆總€ consumer 通過環(huán)境變量讀取自己的 POD_NAME ,用作 group.instance.id 。

到了這里,關于Kafka rebalance 的幾種原因與解決方案的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關文章

  • idea連接數(shù)據(jù)庫失敗的幾種解決方案

    idea連接數(shù)據(jù)庫失敗的幾種解決方案

    1、先進入名字為mysql的數(shù)據(jù)庫 2、找到user表 3、修改root的host為% [外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-pWeP9cRh-1677664942027)(https://img2023.cnblogs.com/blog/3103012/202302/3103012-20230227175245772-1975389509.jpg)] 方法一和方法二,都是開放root的權(quán)限為所有人可

    2024年02月04日
    瀏覽(23)
  • 抓緊收藏,Selenium無法定位元素的幾種解決方案

    抓緊收藏,Selenium無法定位元素的幾種解決方案

    01、frame/iframe表單嵌套 WebDriver只能在一個頁面上對元素識別與定位,對于frame/iframe表單內(nèi)嵌的頁面元素無法直接定位。 解決方法 : driver.switch_to.frame ( id/name/obj ) switch_to.frame()默認可以直接取表單的id或name屬性。如果沒有可用的id和name屬性,可以先定位到frame/iframe,再將定位

    2024年02月20日
    瀏覽(17)
  • IDEA自動補全&提示功能消失的幾種解決方案

    IDEA自動補全&提示功能消失的幾種解決方案

    編程工具的智能補全功能對于開發(fā)人員來說非常重要。它可以幫助節(jié)省時間和減少錯誤,提高編碼效率和質(zhì)量。 智能補全功能可以在編碼過程中自動提示可能的函數(shù)、變量、等,并提供相應的選項供開發(fā)人員選擇。這可以幫助開發(fā)人員更快速地完成代碼,避免拼寫錯誤

    2024年04月15日
    瀏覽(25)
  • Selenium無法定位元素的幾種解決方案(超詳細整理)

    Selenium無法定位元素的幾種解決方案(超詳細整理)

    ?? 視頻學習: 文末有免費的配套視頻可觀看 ??? 關注公眾號【互聯(lián)網(wǎng)雜貨鋪】,回復 1? ,免費獲取軟件測試全套資料,資料在手,漲薪更快 WebDriver只能在一個頁面上對元素識別與定位,對于frame/iframe表單內(nèi)嵌的頁面元素無法直接定位。 解決方法: driver.switch_to.frame(id/

    2024年02月20日
    瀏覽(28)
  • Kafka數(shù)據(jù)丟失原因及解決方案

    Kafka包括Producer、Broker、Consumer,因此從這三個方面分析。 丟失原因:Kafka在Producer端的消息發(fā)送采用的是異步發(fā)送的方式(還有同步發(fā)送,但是同步發(fā)送會導致消息阻塞、需要等待),丟失數(shù)據(jù)是因為消息沒有到達Broker端,原因可能是網(wǎng)絡波動導致沒有回調(diào)和數(shù)據(jù)消息太大超出

    2024年02月14日
    瀏覽(15)
  • kafka亂序消費可能的原因和解決方案

    Kafka亂序消費可能的原因有以下幾個: 分區(qū)順序:Kafka中的消息按照分區(qū)進行存儲和分發(fā),每個分區(qū)內(nèi)的消息是有序的,但不同分區(qū)之間的消息順序是無法保證的。如果消費者在多個分區(qū)上進行并行消費,并且不處理消息的順序,那么消費順序可能會混亂。 消費者并發(fā)度:當

    2024年01月25日
    瀏覽(62)
  • Kafka消息發(fā)送失敗的常見原因及解決方案

    1.1、網(wǎng)絡故障 網(wǎng)絡故障是Kafka消息發(fā)送失敗的最常見原因之一。當網(wǎng)絡出現(xiàn)故障時,Kafka就無法將消息發(fā)送到目標主題或分區(qū)。 解決方法: - 檢查網(wǎng)絡連接是否正常。 - 增加Kafka生產(chǎn)者的重試次數(shù)和超時時間。 1.2、分區(qū)副本不可用 如果Kafka生產(chǎn)者將消息發(fā)送到一個不可用的分

    2024年02月03日
    瀏覽(25)
  • kafka千萬級數(shù)據(jù)積壓原因以及解決方案

    一、原因 kafka作為消息隊列,其中數(shù)據(jù)積壓也是經(jīng)常遇到的問題之一。 我們都知道,數(shù)據(jù)積壓的直接原因,一定是系統(tǒng)中的某個部分出現(xiàn)了性能問題,來不及處理上游發(fā)送的數(shù)據(jù),才會導致數(shù)據(jù)積壓。 那么我們就需要分析在使用kafka時,如何通過優(yōu)化代碼以及參數(shù)配置來最大

    2024年02月12日
    瀏覽(24)
  • Html2canvas——圖片空白的幾種排查解決方案

    Html2canvas——圖片空白的幾種排查解決方案

    下列文章來源該篇 ? 一、工作原理 html2canvas庫的工作原理并不是真正的“截圖”,而是讀取網(wǎng)頁上的目標DOM節(jié)點的信息來繪制canvas,所以它并不支持所有的css屬性。 二、在 img標簽中加載外部圖片 前提是外部圖片允許跨域,需要服務器設置 以nginx為例,response-header內(nèi)要存在

    2024年03月20日
    瀏覽(21)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領取紅包

二維碼2

領紅包