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

Kafka中產(chǎn)生數(shù)據(jù)積壓的原因以及解決方案

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

Kafka中產(chǎn)生數(shù)據(jù)積壓的原因以及解決方案

1、kafka中數(shù)據(jù)積壓的原因

kafka作為消息隊(duì)列,其中數(shù)據(jù)積壓也是經(jīng)常遇到的問題之一。

我們都知道,數(shù)據(jù)積壓的直接原因,一定是系統(tǒng)中的某個(gè)部分出現(xiàn)了性能問題,來不及處理上游發(fā)送的數(shù)據(jù),才會導(dǎo)致數(shù)據(jù)積壓。

那么我們就需要分析在使用kafka時(shí),如何通過優(yōu)化代碼以及參數(shù)配置來最大程度的避免數(shù)據(jù)積壓來對業(yè)務(wù)中的影響。

2、kafka中數(shù)據(jù)積壓的解決方案

	首先我們在上面分析得出,是由于上游生產(chǎn)者producer發(fā)送數(shù)據(jù)過快,以及下游消費(fèi)者consumer拉取數(shù)據(jù)過慢,實(shí)質(zhì)上就是,生產(chǎn)者生產(chǎn)數(shù)據(jù)速度>>消費(fèi)者消費(fèi)數(shù)據(jù)速度。那么就可以把問題定位到生產(chǎn)者producer以及消費(fèi)者consumer這兩方面上。

1、生產(chǎn)者producer:吞吐量
	可以通過修改以下參數(shù)配置提提升生產(chǎn)者的吞吐量:
	
	1)batch.memory修改緩沖區(qū)大小
	
	設(shè)置發(fā)送消息的緩沖區(qū),默認(rèn)值是33554432,就是32MB

	如果發(fā)送消息出去的速度小于寫入消息進(jìn)去的速度,就會導(dǎo)致緩沖區(qū)寫滿,此時(shí)生產(chǎn)消息就會阻塞住,所以說這里就應(yīng)該多做一些壓測,盡可能保證說這塊緩沖區(qū)不會被寫滿導(dǎo)致生產(chǎn)行為被阻塞住。
	
	2)compression.type壓縮格式
	
	默認(rèn)是none,不壓縮,但是也可以使用lz4壓縮,效率還是不錯(cuò)的,壓縮之后可以減小數(shù)據(jù)量,提升吞吐量,但是會加大producer端的cpu開銷。
	
	3)batch.size批次大小
	
	設(shè)置merge batch合并批次消息的大小
	
	如果 batch 批次太小,會導(dǎo)致頻繁網(wǎng)絡(luò)請求,吞吐量下降;

	如果batch批次太大,會導(dǎo)致一條消息需要等待很久才能被發(fā)送出去,而且會讓內(nèi)存緩沖區(qū)有很大壓力,過多數(shù)據(jù)緩沖在內(nèi)存里。

	默認(rèn)值是:16384,就是16kb,也就是一個(gè)batch批次滿了16kb就發(fā)送出去,一般在實(shí)際生產(chǎn)環(huán)境,這個(gè)batch批次的值可以增大一些來提升吞吐量,可以自己壓測一下。
	
	4)linger.ms等待時(shí)長
	
	這個(gè)值默認(rèn)是0,意思就是消息必須立即被發(fā)送,但是這是不對的。

	一般設(shè)置一個(gè)100毫秒之類的,這樣的話就是說,這個(gè)消息被發(fā)送出去后進(jìn)入一個(gè)batch批次,如果100毫秒內(nèi),這個(gè)batch批次滿了16kb,自然就會發(fā)送出去。

	但是如果100毫秒內(nèi),batch沒滿,那么也必須把消息發(fā)送出去了,不能讓消息的發(fā)送延遲時(shí)間太長,也避免給內(nèi)存造成過大的一個(gè)壓力。

2、消費(fèi)者consum	:擴(kuò)容,擴(kuò)分區(qū);增加consumer

	1)提升消費(fèi)者組中的消費(fèi)者數(shù)以及Topic中的分區(qū)數(shù),讓二者相等,假設(shè)設(shè)置為3個(gè)分區(qū) = 3CPU。
	
	2)提高消費(fèi)者拉取數(shù)據(jù)的能力,比如Flume每次拉取的數(shù)據(jù)可以由1000條改為3000條、Spark中將限流的參數(shù)增大、Flink中保證數(shù)據(jù)的處理效率等。

3、數(shù)據(jù)積壓分析V2.0

	日常系統(tǒng)正常運(yùn)轉(zhuǎn)的時(shí)候,沒有積壓或者只有少量積壓很快就消費(fèi)掉了,但是某一個(gè)時(shí)刻,突然就開始積壓消息并且積壓持續(xù)上漲。

	這種情況下需要你在短時(shí)間內(nèi)找到消息積壓的原因,迅速解決問題才不至于影響業(yè)務(wù)。

	導(dǎo)致突然積壓的原因肯定是多種多樣的,不同的系統(tǒng)、不同的情況有不同的原因,不能一概而論。

	但是,我們排查消息積壓原因,是有一些相對固定而且比較有效的方法的。

	能導(dǎo)致積壓突然增加,最粗粒度的原因,只有兩種:

	1、要么是發(fā)送變快了,2、要么是消費(fèi)變慢了。

	大部分消息隊(duì)列都內(nèi)置了監(jiān)控的功能,只要通過監(jiān)控?cái)?shù)據(jù),很容易確定是哪種原因。

	如果是單位時(shí)間發(fā)送的消息增多,比如說是趕上大促或者搶購,短時(shí)間內(nèi)不太可能優(yōu)化消費(fèi)端的代碼來提升消費(fèi)性能,唯一的方法是通過擴(kuò)容消費(fèi)端的實(shí)例數(shù)來提升總體的消費(fèi)能力。

	如果短時(shí)間內(nèi)沒有足夠的服務(wù)器資源進(jìn)行擴(kuò)容,沒辦法的辦法是,將系統(tǒng)降級,通過關(guān)閉一些不重要的業(yè)務(wù),減少發(fā)送方發(fā)送的數(shù)據(jù)量,最低限度讓系統(tǒng)還能正常運(yùn)轉(zhuǎn),服務(wù)一些重要業(yè)務(wù)。

	還有一種不太常見的情況,你通過監(jiān)控發(fā)現(xiàn),無論是發(fā)送消息的速度還是消費(fèi)消息的速度和原來都沒什么變化,這時(shí)候你需要檢查一下你的消費(fèi)端,是不是消費(fèi)失敗導(dǎo)致的一條消息反復(fù)消費(fèi)這種情況比較多,這種情況也會拖慢整個(gè)系統(tǒng)的消費(fèi)速度。

	如果監(jiān)控到消費(fèi)變慢了,你需要檢查你的消費(fèi)實(shí)例,分析一下是什么原因?qū)е孪M(fèi)變慢。

	優(yōu)先檢查一下日志是否有大量的消費(fèi)錯(cuò)誤,如果沒有錯(cuò)誤的話,可以通過打印堆棧信息,看一下你的消費(fèi)線程是不是卡在什么地方不動了,比如觸發(fā)了死鎖或者卡在等待某些資源上了。

文章來源地址http://www.zghlxwxcb.cn/news/detail-512178.html

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

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(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消息積壓的原因和處理的方法

    ? ? ? ? Kafka作為目前主流的消息中間件,被廣泛的應(yīng)用在了生產(chǎn)環(huán)境中。消息積壓是日常生產(chǎn)經(jīng)常遇到的問題,下面我們來展開了說一下。 上游數(shù)據(jù)激增(生產(chǎn)側(cè)原因):由于業(yè)務(wù)系統(tǒng),訪問量徒增,如熱點(diǎn)事件,熱門活動等,導(dǎo)致了大量的數(shù)據(jù)涌入業(yè)務(wù)系統(tǒng),有可能導(dǎo)致

    2024年02月11日
    瀏覽(22)
  • Kafka順序消費(fèi)以及消息積壓問題

    什么場景下需要順序消費(fèi)? 比如說:訂單有很多狀態(tài),比如:下單(未支付)、完成(已支付)、撤銷等,不可能下單的消息都沒讀取到,就先讀取支付或撤銷的消息吧,要保證消息順序消費(fèi) 如何保證順序消費(fèi)? kafka的topic是無序的,但是一個(gè)topic包含多個(gè)partition, 每個(gè)pa

    2024年04月29日
    瀏覽(29)
  • kafka亂序消費(fèi)可能的原因和解決方案

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

    2024年01月25日
    瀏覽(62)
  • Kafka rebalance 的幾種原因與解決方案

    網(wǎng)上有很多文章講述 Kafka rebalance 的原理,本文是列舉常見的幾種 rebalance 場景。 rebalance 期間,當(dāng)前 consumer group 的所有 consumer 都要暫停消費(fèi),開銷較大。因此應(yīng)該盡量減少 rebalance ,而 relalance 的原因通常是 consumer 數(shù)量變化,常見的幾種情況如下: 如果一個(gè) consumer 剛啟動,

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

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

    2024年02月03日
    瀏覽(25)
  • Kafka消息丟失:原因、解決方案和零丟失的配置

    在使用Apache Kafka作為分布式消息系統(tǒng)時(shí),消息丟失是一種常見的問題。消息丟失可能會導(dǎo)致數(shù)據(jù)不一致或功能故障,因此對于許多應(yīng)用程序來說是不可接受的。本文將介紹Kafka消息丟失的原因、解決方案以及如何配置Kafka以實(shí)現(xiàn)零丟失。 Kafka消息丟失可能由多種原因引起。下面

    2024年02月13日
    瀏覽(18)
  • #詳細(xì)介紹!?。?造成死鎖的原因以及解決方案!

    #詳細(xì)介紹?。。?造成死鎖的原因以及解決方案!

    本篇主要是介紹什么是死鎖,已經(jīng)死鎖產(chǎn)生的原因,如果避免死鎖。根據(jù)上述的幾個(gè)問題讓我們來閱讀本篇文章。 目錄 1. 什么是死鎖 2. 形成死鎖的原因(四個(gè)必要條件) 3. 如果有效避免死鎖 ? 死鎖主要是鎖彼此間進(jìn)行鎖等待,導(dǎo)致每個(gè)鎖都不能正常執(zhí)行的情況 例子1:多個(gè)

    2023年04月20日
    瀏覽(28)
  • 浪涌電流Inrush Current產(chǎn)生原因以及解決方案

    浪涌電流Inrush Current產(chǎn)生原因以及解決方案

    1、對Inrush Current電流的直觀感受 當(dāng)電燈在電路中工作時(shí),如果突然啟動馬達(dá)或者變壓器時(shí),會出現(xiàn)電燈暗一下,此時(shí)電燈出現(xiàn)暗的情況就是因?yàn)轳R達(dá)或者變壓器啟動時(shí),在電路中產(chǎn)生較大Inrush Current,具體分析可以參考下圖: 當(dāng)馬達(dá)剛開始上電時(shí),轉(zhuǎn)子是靜止的,處于正要啟

    2024年02月03日
    瀏覽(27)
  • Redis中的緩存穿透、雪崩、擊穿的原因以及解決方案

    Redis中的緩存穿透、雪崩、擊穿的原因以及解決方案

    是指用戶查詢數(shù)據(jù),在數(shù)據(jù)庫沒有,自然在緩存中也不會有。這樣就導(dǎo)致用戶查詢的時(shí)候,在緩存中找不到,每次都要去數(shù)據(jù)庫再查詢一遍,然后返回空(相當(dāng)于進(jìn)行了兩次無用的查詢)。這樣請求就繞過緩存直接查數(shù)據(jù)庫,這也是經(jīng)常提的緩存命中率問題。 我們可以簡單的

    2024年02月12日
    瀏覽(21)
  • 安卓之導(dǎo)致ANR的原因分析,問題定位以及解決方案

    ????????在Android應(yīng)用開發(fā)中,Application Not Responding(ANR)是一種常見的性能問題,它直接關(guān)系到用戶體驗(yàn)的質(zhì)量。當(dāng)應(yīng)用在特定時(shí)間段內(nèi)無法及時(shí)響應(yīng)用戶的交互或者系統(tǒng)事件時(shí),系統(tǒng)將會拋出ANR錯(cuò)誤,提示用戶應(yīng)用已停止響應(yīng)。為了確保應(yīng)用的流暢性和用戶滿意度,理解

    2024年03月13日
    瀏覽(36)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包