亚洲有码Av一区二区三区_国产高清啪啪免费视频_69色视频国产_国产成人人人爆出白浆_国产精品自在线拍国_一本久久伊人热热精品无码_午夜性刺激在线看免费带字幕_助力高品质欧美狂喷水_亚洲精品日韩无码_精品无码一区二区三区蜜臀_麻豆高清国产AV_熟妇人素无码中文字幕_亚洲a级片在线观看_国产欧美日韩三区_99国产成人高清在线观看

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營的一線實(shí)戰(zhàn)洞察。

RocketMQ消息堆積排查與治理:從原理到實(shí)戰(zhàn)

RocketMQ消息堆積排查與治理:從原理到實(shí)戰(zhàn) 面試時候被問到“RocketMQ 消息堆積怎么辦”其實(shí)真正想聽的未必是標(biāo)準(zhǔn)操作而是你有沒有獨(dú)立處理過線上壓測和真實(shí)故障。因?yàn)橄⒍逊e背后的坑太典型了消費(fèi)速度跟不上、隊(duì)列并發(fā)配錯、死信沒人管、監(jiān)控看不到積壓趨勢。這篇文章不打算背八股我會把排查思路、應(yīng)急手段、治本方案、還有我實(shí)際踩過的坑全部攤開講一遍適合正在準(zhǔn)備面試的研發(fā)同學(xué)也適合已經(jīng)上了 RocketMQ 但還沒遭過大堵車的運(yùn)維和架構(gòu)師。先說一下我的態(tài)度消息堆積本身不可怕可怕的是堆積之后你還在亂加機(jī)器。很多人一看到積壓數(shù)字變紅第一反應(yīng)就是擴(kuò)容消費(fèi)者實(shí)例結(jié)果加了 20 臺上去積壓一點(diǎn)沒降。為什么因?yàn)?RocketMQ 的消費(fèi)并行度根本不由機(jī)器數(shù)量決定隊(duì)列數(shù)量才是上限。這些底層機(jī)制不搞明白后續(xù)所有操作都是盲人摸象。這篇內(nèi)容從堆積發(fā)生的原理講起再給出一套完整的排查命令和監(jiān)控指標(biāo)然后按“應(yīng)急、優(yōu)化、擴(kuò)容、治本”四個層次拆解解決方案最后附上真實(shí)案例復(fù)盤和日常預(yù)防體系。你可以把它當(dāng)作一張消息堆積處理的地圖線上出了狀況照著走至少不會慌。1. 消息堆積的本質(zhì)先搞清楚消息積壓在哪里1.1 一條消息從生產(chǎn)到消費(fèi)堆積到底發(fā)生在哪個環(huán)節(jié)我特別喜歡用一個比喻來解釋 RocketMQ 的消息流轉(zhuǎn)生產(chǎn)者是擰開的水龍頭消費(fèi)者是下水道地漏Broker 是中間的蓄水池。正常情況下水龍頭進(jìn)水速度和地漏排水速度差不多水池水位穩(wěn)定一旦進(jìn)水速度超過排水速度或者地漏本身堵了水位就開始漲。RocketMQ 里的“水位”就是消費(fèi)位點(diǎn)ConsumerOffset和最大位點(diǎn)MaxOffset的差值也就是我們常說的積壓量。你手上有這么一條鏈路Producer 把消息寫到 BrokerBroker 把消息順序追加到 CommitLog同時按照 Topic 隊(duì)列生成邏輯索引 ConsumeQueue然后等消費(fèi)者來拉取。消息一旦進(jìn)了 CommitLog它就穩(wěn)穩(wěn)地躺在 Broker 磁盤上不存在“弄丟”的可能唯一的問題是消費(fèi)者有沒有及時把它消費(fèi)掉并提交位點(diǎn)。所以嚴(yán)格來說消息堆積不是消息在 Producer 端堵住而是 Broker 里的消息沒有被消費(fèi)者按照正常速度取走屬于消費(fèi)側(cè)問題。這里有一個很多人容易忽略的細(xì)節(jié)Broker 上的“積壓”其實(shí)分兩塊一塊是正常業(yè)務(wù) Topic 下每個隊(duì)列里未被消費(fèi)的消息另一塊是消費(fèi)失敗后進(jìn)入的重試隊(duì)列和死信隊(duì)列。當(dāng)你打開 Dashboard 看某個消費(fèi)組的積壓數(shù)量時統(tǒng)計(jì)口徑通常是所有隊(duì)列位點(diǎn)差值的總和但如果業(yè)務(wù)里消費(fèi)失敗率很高你會發(fā)現(xiàn)重試隊(duì)列里其實(shí)還壓著一批“隱形積壓”主隊(duì)列看著還好實(shí)際消息已經(jīng)從主隊(duì)列挪到重試隊(duì)列了消費(fèi)滯后依舊無法緩解。這個視角很重要因?yàn)楹芏嗯挪槭侄蔚谝徊蕉级⒅麝?duì)列結(jié)果忽略了重試和死信。還要注意Broker 側(cè)每個 Topic 默認(rèn)會劃分成多個隊(duì)列比如默認(rèn)創(chuàng)建 4 個寫隊(duì)列和 4 個讀隊(duì)列。消息會按照選擇策略分配到不同隊(duì)列里而消費(fèi)端同一個消費(fèi)組的消費(fèi)者實(shí)例會瓜分這些隊(duì)列。水位到底是均勻上漲還是某個隊(duì)列單獨(dú)暴漲這是判斷瓶頸位置的第一張圖。1.2 消費(fèi)并發(fā)模型和重試機(jī)制決定了你能怎么處理堆積RocketMQ 的客戶端雖然叫 PushConsumer但底層其實(shí)是長輪詢拉取模式。消費(fèi)者啟動后每個實(shí)例會啟動拉取線程向 Broker 拉取一批消息然后提交到消費(fèi)線程池里執(zhí)行業(yè)務(wù)邏輯處理成功就上報(bào)位點(diǎn)處理失敗就會觸發(fā)重試。這個“拉一批、處理一批、上報(bào)位點(diǎn)”的過程有個關(guān)鍵含義消費(fèi)并行度是由隊(duì)列數(shù)量和消費(fèi)線程數(shù)共同決定的但隊(duì)列數(shù)量是天花板。我打個比方隊(duì)列就像是傳送帶上的工位每個工位同時只能站一個工人消費(fèi)者實(shí)例就是工人數(shù)量。傳送帶只有 8 條你哪怕喊來 100 個工人同一時刻能上手處理的也只有 8 條傳送帶上的 8 份工作。在 RocketMQ 這里一個隊(duì)列同一時刻只分配到一個消費(fèi)者實(shí)例一個消費(fèi)者實(shí)例內(nèi)部才能多個線程并行消費(fèi)它擁有的隊(duì)列所以消費(fèi)者實(shí)例再多的只要 Topic 隊(duì)列數(shù)不增加并行度就上不去。這就是“加了 20 臺機(jī)器但積壓紋絲不動”的根本原因。重試機(jī)制也得拎出來說清楚。業(yè)務(wù)消費(fèi)拋異常時RocketMQ 會按延遲級別重試默認(rèn) 16 次間隔從 1 秒逐步拉長到最長 10 分鐘以上。重試期間消息不在原隊(duì)列里而是進(jìn)入 ConsumerGroup 對應(yīng)的重試隊(duì)列。如果重試全失敗消息會進(jìn)入死信隊(duì)列等待人工處理。這套機(jī)制保護(hù)了消息不丟但也帶來一個副作用如果業(yè)務(wù)邏輯處于“一直失敗”狀態(tài)重試隊(duì)列會不斷吞噬積壓主隊(duì)列積壓數(shù)字看著上漲不明顯但消費(fèi)位點(diǎn)就是不動。所以排查積壓問題時重試次數(shù)、消費(fèi)失敗率、死信隊(duì)列積壓三項(xiàng)必須一起看任何一個異常都可能導(dǎo)致“水龍頭正常、地漏卻堵了”。了解完這些底層機(jī)制你就能理解為什么我不主張一上來就重啟服務(wù)。重啟消費(fèi)者只是讓進(jìn)程恢復(fù)那些已經(jīng)掛在 Broker 上的消息依然在消費(fèi)邏輯沒變重啟一百遍也消不完。正確做法是先分清是“水龍頭放水變快”還是“地漏排水變慢”再決定下一步動作。2. 排查消息堆積的完整思路從監(jiān)控到定位瓶頸2.1 第一步先確認(rèn)這是不是真的堆積線上遇到積壓告警先別急著操作第一步是確認(rèn)告警本身是否可靠。所謂“偽堆積”指的是消費(fèi)位點(diǎn)其實(shí)在正常推進(jìn)但由于監(jiān)控系統(tǒng)數(shù)據(jù)延遲、消費(fèi)組名寫錯、Dashboard 統(tǒng)計(jì)口徑異常等原因展示出一個虛高的積壓數(shù)字。我在實(shí)際工作中就見過監(jiān)控系統(tǒng)每 5 分鐘拉一次 Broker 數(shù)據(jù)在消費(fèi)位點(diǎn)尚未刷新到最新時算出來的差值偏大誤報(bào)了好幾次。最原始也最可靠的辦法是用命令行工具查看真實(shí)位點(diǎn)。找到你部署 RocketMQ 的機(jī)器直接執(zhí)行# 查看某個消費(fèi)組的消費(fèi)進(jìn)度的簡單命令具體參數(shù)以你安裝的版本為準(zhǔn) mqadmin consumerProgress -g 你的消費(fèi)組名 -n 你的nameserver地址輸出里會列出每個 Topic 每個隊(duì)列的最大位點(diǎn)、消費(fèi)位點(diǎn)以及兩者差值。如果差值是 0 或者在一個很小的區(qū)間內(nèi)波動說明消費(fèi)速度是跟得上的當(dāng)前告警大概率是誤報(bào)如果差值持續(xù)變大這個積壓才是真積壓。同時還要確認(rèn)消費(fèi)組名字別搞錯。RocketMQ 里消費(fèi)進(jìn)度是按消費(fèi)組維度存儲的你明明有一套新的消費(fèi)者示例在跑但如果 group 名和監(jiān)控面板里配的不是同一個監(jiān)控自然顯示積壓原消費(fèi)組卻已經(jīng)把消息消費(fèi)完了。這種低級問題在微服務(wù)化改造后特別常見不同團(tuán)隊(duì)各建一套 group 卻不更新監(jiān)控配置。此外建議一上來就把三個面板拉出來看實(shí)時積壓量、積壓變化趨勢、消費(fèi) TPS。積壓量是存量變化趨勢是速度消費(fèi) TPS 是能力。只看積壓量會誤判嚴(yán)重程度比如積壓 10 萬條但消費(fèi) TPS 有 5000理論上 20 秒就能追平真不用慌反之積壓只有 5000 條但消費(fèi) TPS 為 0那才叫真故障。2.2 判斷“能消化”還是“消化不動”消費(fèi)能力和耗時是關(guān)鍵確認(rèn)積壓真實(shí)之后先分清楚一個核心問題當(dāng)前消費(fèi)能力有沒有在正常輸出如果消費(fèi) TPS 接近正常水平只是生產(chǎn)峰值更高導(dǎo)致積壓這是“流量壓差型”積壓處理起來相對容易如果消費(fèi) TPS 掉到 0 或者極低這是“消費(fèi)故障型”積壓必須立刻找消費(fèi)端哪里出了問題。判斷消費(fèi)能力用命令行工具看消費(fèi)狀態(tài)同時觀察消費(fèi)者進(jìn)程本身運(yùn)行是否正常。消費(fèi)狀態(tài)里可以看到每個客戶端實(shí)例的消費(fèi)位點(diǎn)、拉取位點(diǎn)、隊(duì)列分配情況以及在線的消費(fèi)者列表。如果某個實(shí)例遲遲沒有上報(bào)位點(diǎn)同時隊(duì)列分配集中在剩余幾個實(shí)例上大概率是某個消費(fèi)者實(shí)例已經(jīng)掛掉或者卡死觸發(fā)了隊(duì)列的重新分配Rebalance而新分配的實(shí)例還沒來得及追上。接下來要確認(rèn)消費(fèi)耗時。一個常見的排查姿勢是在業(yè)務(wù)代碼里給消費(fèi)邏輯加上埋點(diǎn)日志打印單條消息的處理耗時。別小看這個動作很多積壓的根源就是消費(fèi)邏輯里某個環(huán)節(jié)從平均 50ms 漲到了 800ms比如下游數(shù)據(jù)庫出現(xiàn)慢查詢、Redis 熱點(diǎn)鍵超時、外部 RPC 接口抖動。耗時一長線程池被占滿新消息拉出來了也排不上隊(duì)整體消費(fèi) TPS 自然往下掉。這里我分享一個我自己的排查習(xí)慣先把消費(fèi)線程池核心數(shù)和最大數(shù)、當(dāng)前活躍線程數(shù)、隊(duì)列長度這些指標(biāo)用 JMX 或可視化工具拉出來看一眼。如果活躍線程數(shù)始終等于最大線程數(shù)并且阻塞隊(duì)列一直有等待任務(wù)說明你的消費(fèi)線程已經(jīng)被卡住了消費(fèi)耗時變大是果線程耗盡才是表象。這時再去逐層排查消費(fèi)邏輯里是什么拖慢了速度。我遇到過最典型的一次是業(yè)務(wù)方在消費(fèi)邏輯里同步調(diào)了下游的“用戶等級判定”接口平時就 30ms 左右結(jié)果那天數(shù)據(jù)庫連接池被打滿接口耗時漲到 5 秒消費(fèi)線程很快全部卡住。最后那個系統(tǒng)的積壓從 0 漲到 30 萬只用了不到半小時。所以排查積壓一定要先看消費(fèi)鏈路上游的健康度而不是一上來就調(diào) RocketMQ 參數(shù)。2.3 逐個環(huán)節(jié)掃描實(shí)例、隊(duì)列、消費(fèi)組一個都不漏確認(rèn)消費(fèi)能力有問題之后就開始做系統(tǒng)性掃描我習(xí)慣按“實(shí)例層、隊(duì)列層、消費(fèi)組層”三步走。實(shí)例層排查消費(fèi)者進(jìn)程的資源占用和健康度CPU 利用率是否長期跑滿、JVM GC 是否頻繁、線程池有沒有大量拒絕任務(wù)、機(jī)器網(wǎng)絡(luò)吞吐有沒有異常。這一步可以用 Arthas 或者 jstack 直接抓線程??纯聪M(fèi)線程到底阻塞在哪個調(diào)用點(diǎn)上。我得提醒一句很多開發(fā)者會忽略機(jī)器網(wǎng)絡(luò)本身消費(fèi)組所在機(jī)器的帶寬打滿也會讓拉取速度急劇下降這種積壓你光看業(yè)務(wù)日志完全看不出來。隊(duì)列層排查從 Broker 側(cè)看每個 Topic 隊(duì)列的積壓分布。用命令或者 Dashboard 把每個隊(duì)列的位點(diǎn)差單獨(dú)列出來如果積壓均勻分布在所有隊(duì)列大概率是整體消費(fèi)能力不夠如果積壓集中在一兩個隊(duì)列就要考慮消息分配是否不均勻或者有沒有某個隊(duì)列對應(yīng)的消費(fèi)者實(shí)例出問題。我在實(shí)戰(zhàn)里見過最離譜的情況是某個消費(fèi)者實(shí)例所在機(jī)器磁盤滿了ReBalance 之后它的隊(duì)列遲遲分配不出去結(jié)果積壓全堆在少數(shù)隊(duì)列上。消費(fèi)組層排查要看有沒有多個消費(fèi)者實(shí)例訂閱了同一個消費(fèi)組但它們實(shí)際處理邏輯卻不一樣。由于 RocketMQ 中同一個消費(fèi)組內(nèi)消息會被負(fù)載均衡地分到所有實(shí)例上如果某個實(shí)例的代碼邏輯有問題比如它消費(fèi)失敗率高或者處理特別慢整體消費(fèi)能力就會被這個“木桶短板”拉低。這類問題尤其容易出現(xiàn)在沒有做灰度隔離、新老版本共存一段時間的系統(tǒng)里。3. 解決消息堆積的四個層次優(yōu)化、擴(kuò)容、兜底、治本3.1 消費(fèi)端優(yōu)化先把單條消息的消費(fèi)速度提上去在擴(kuò)容和重置位點(diǎn)之前我強(qiáng)烈建議先做一輪消費(fèi)端優(yōu)化因?yàn)橥瑯右粭l消息你要是能把它處理得更快積壓自然就消化得快。第一個可以動的是消費(fèi)線程數(shù)。RocketMQ 的 DefaultMQPushConsumer 默認(rèn)消費(fèi)線程數(shù)在 20 左右你可以按實(shí)際 CPU 核數(shù)和業(yè)務(wù)邏輯調(diào)整。設(shè)置方式是在代碼里指定consumer.setConsumeThreadMin(20); consumer.setConsumeThreadMax(64);注意線程數(shù)不是越大越好如果業(yè)務(wù)邏輯里有鎖、有數(shù)據(jù)庫行鎖競爭、有外部接口阻塞線程數(shù)拉高反而會增加等待和上下文切換TPS 未必上行。一般建議先從 30 到 50 之間開始調(diào)整觀察消費(fèi) TPS 和 CPU 使用率找到一個拐點(diǎn)。第二個是批量消費(fèi)。RocketMQ 的 DefaultMQPushConsumer 默認(rèn)一次拉取的消息數(shù)不多如果你每條消息的處理邏輯都包含網(wǎng)絡(luò) IO可以考慮開啟批量消費(fèi)。設(shè)置參數(shù)是consumer.setConsumeMessageBatchMaxSize(8);批量消費(fèi)適合那種可以攢一批再處理的消息類型比如批量寫數(shù)據(jù)庫、批量調(diào)批量接口。但如果一條消息本身的處理就涉及事務(wù)性操作批量反而難處理因?yàn)槟阋约罕WC批內(nèi)消息部分失敗時的重試語義。這一步?jīng)]有萬金油需要按業(yè)務(wù)形態(tài)取舍。第三個優(yōu)化點(diǎn)才是重點(diǎn)消費(fèi)邏輯本身。把消費(fèi)邏輯里的外部 RPC 調(diào)用從串行改成并行能走本地緩存的一定要走緩存能合并到批量查詢的不要一條一條查數(shù)據(jù)庫能異步化的非關(guān)鍵步驟丟到獨(dú)立線程池里執(zhí)行不讓它卡消費(fèi)主流程。很多時候消費(fèi)耗時的瓶頸根本不在 RocketMQ 上而是業(yè)務(wù)代碼自己把鏈路拉長了。你要記住消息積壓只是表象消費(fèi)端處理能力才是真正的核心瓶頸。3.2 擴(kuò)容的正確姿勢別只盯著機(jī)器數(shù)量消費(fèi)端優(yōu)化做完還不夠如果積壓量很大比如幾十萬上百萬條光靠提高單機(jī)消費(fèi)速度可能需要幾個小時才能消化這時候就得考慮擴(kuò)容。但擴(kuò)容前先記住一句話RocketMQ 的消費(fèi)并行度由隊(duì)列數(shù)量決定機(jī)器數(shù)量只影響單臺機(jī)器上的并發(fā)線程數(shù)機(jī)器再多也突破不了隊(duì)列總數(shù)的上限。具體來說如果你 Topic 的讀隊(duì)列數(shù)是 8當(dāng)前有 8 臺消費(fèi)者實(shí)例那么每臺實(shí)例各消費(fèi) 1 個隊(duì)列擴(kuò)容到 16 臺實(shí)例也只能讓 8 臺實(shí)例干活剩下 8 臺不會有任何消費(fèi)行為。所以擴(kuò)容集群前先確認(rèn) Topic 的隊(duì)列數(shù)量是否足夠。查看和修改隊(duì)列數(shù)的辦法是利用管理工具或者 Dashboard 更新 Topic 配置把讀隊(duì)列數(shù)從 8 調(diào)整到 16、32甚至更多。但是有一個極其重要的坑如果業(yè)務(wù)里用到了順序消息你就不能隨意改動隊(duì)列數(shù)。因?yàn)轫樞蛳⒁蕾囅㈥?duì)列選擇規(guī)則比如按業(yè)務(wù)主鍵 hash 到固定隊(duì)列一旦隊(duì)列數(shù)變化hash 分布就會重新洗牌原來同一個業(yè)務(wù)鍵的消息可能被分配到不同隊(duì)列破壞局部順序。這種情況下擴(kuò)容消費(fèi)者實(shí)例并不能提升并行度因?yàn)橥粋€隊(duì)列同時只允許一個消費(fèi)者實(shí)例消費(fèi)而順序消息又不能讓多個線程并發(fā)消費(fèi)同一個隊(duì)列。遇到這種場景更合理的方案是業(yè)務(wù)層面拆分 Topic把不同業(yè)務(wù)域的訂單消息拆到不同 Topic每個 Topic 可以有獨(dú)立的隊(duì)列數(shù)和消費(fèi)者實(shí)例這樣既保證業(yè)務(wù)內(nèi)順序又提升了鏈路整體并行度。還要注意擴(kuò)容消費(fèi)實(shí)例之后一定要重啟或者觸發(fā) rebalance讓新實(shí)例能真正分到隊(duì)列。很多團(tuán)隊(duì)給容器平臺擴(kuò)容了 Pod 數(shù)量但因?yàn)?RocketMQ 客戶端實(shí)例注冊有延遲新實(shí)例沒有及時拿到隊(duì)列分配舊實(shí)例依然在扛壓力。通過 consumerStatus 命令可以確認(rèn)每個實(shí)例當(dāng)前分到的隊(duì)列數(shù)量看到分配均衡后再下結(jié)論。3.3 緊急兜底重置位點(diǎn)、死信處理和臨時降級有些積壓場景時間緊、任務(wù)重比如大促時積壓了幾百萬條消息但業(yè)務(wù)要求 10 分鐘之內(nèi)恢復(fù)這時候免不了要做一些“非常規(guī)”操作。必須說清楚這類操作有副作用一定要在確認(rèn)業(yè)務(wù)可接受、并且有人審批的情況下才能執(zhí)行。最直接的兜底操作是重置消費(fèi)位點(diǎn)也就是把消費(fèi)組的消費(fèi)進(jìn)度直接調(diào)到最新位點(diǎn)。這樣積壓的歷史消息就不消費(fèi)了相當(dāng)于放棄了舊消息只從當(dāng)前時間點(diǎn)往后消費(fèi)新消息。具體命令# 重置消費(fèi)位點(diǎn)到一個較早或較新的時間點(diǎn)需要用時間戳單位毫秒 mqadmin resetOffsetByTime -g 消費(fèi)組名 -t Topic名 -s 當(dāng)前時間戳 -n nameserver地址這個操作一旦執(zhí)行消費(fèi)進(jìn)度就跳到指定時間點(diǎn)歷史消息不會進(jìn)入正常消費(fèi)流程。所以你一定要問清楚業(yè)務(wù)方這些積壓消息里有沒有必須處理的訂單、扣款、補(bǔ)償類消息如果丟棄會造成數(shù)據(jù)不一致那絕對不能盲目跳過。我見過有的團(tuán)隊(duì)為了快速恢復(fù)系統(tǒng)直接 reset 了一大堆交易消息事后發(fā)現(xiàn)大量訂單狀態(tài)沒更新只能靠人工跑批補(bǔ)償折騰了整整兩天。死信隊(duì)列的處理也需要配套進(jìn)行。積壓期間很多消息會經(jīng)歷 16 次重試最終進(jìn)入死信隊(duì)列這些消息如果業(yè)務(wù)上還有價值就要寫一個專門掃死信隊(duì)列的程序把消息撈出來重新投遞到正常 Topic 或者直接調(diào)用補(bǔ)償接口。我在后面會專門講到死信排查這里想強(qiáng)調(diào)的是死信不是終點(diǎn)務(wù)必清零。臨時降級指的是在消費(fèi)端代碼上做個方案開關(guān)把非核心邏輯臨時關(guān)閉。比如消費(fèi)訂單消息時原本需要同步調(diào)用積分服務(wù)、短信服務(wù)、審計(jì)服務(wù)在堆積嚴(yán)重時只保留訂單狀態(tài)更新這個核心動作其余全部降級或異步化。這種做法能迅速把單條消息的處理耗時降下來相當(dāng)于給地漏臨時加大排水口徑先把水位降下去等活動峰值過去再恢復(fù)完整鏈路。這個思路在電商大促場景下非常常用前提是業(yè)務(wù)方同意非核心邏輯的延時執(zhí)行并且有補(bǔ)償機(jī)制。3.4 治本容量規(guī)劃、隔離與鏈路治理應(yīng)急處理完更要回頭思考一個問題為什么這次會堆積如果只是流量突然翻倍那下一次流量再翻倍怎么辦消息堆積治理的治本方案其實(shí)就是容量規(guī)劃和系統(tǒng)性隔離。容量規(guī)劃層面要對核心 Topic 做生產(chǎn)流量峰值的預(yù)估并按照這個峰值預(yù)留消費(fèi)能力。一般建議消費(fèi)端的處理能力要比預(yù)估峰值高出 30% 到 50%再加上彈性擴(kuò)容的能力保證突發(fā)流量增長時能快速補(bǔ)充消費(fèi)實(shí)例。這里我推薦定期對消費(fèi)端做壓測用壓測工具向指定 Topic 灌入平時流量的 2 到 3 倍消息觀察消費(fèi) TPS、積壓曲線和消費(fèi)耗時把每個業(yè)務(wù)鏈路的容量基準(zhǔn)摸出來。有了基線后面再談擴(kuò)容和告警閾值才有參考意義。隔離層面我提倡把一個大的 Topic 按業(yè)務(wù)重要性拆開。比如訂單系統(tǒng)可以拆成“訂單核心狀態(tài)消息 Topic”和“訂單營銷通知消息 Topic”前者消費(fèi)端配備了更高的機(jī)器規(guī)格和更完善的監(jiān)控后者消費(fèi)端即便堆積也不影響主流程。這種拆分的本質(zhì)是把資源隔離和治理邊界劃清楚避免一條慢業(yè)務(wù)拖垮所有消費(fèi)組。你如果做過 RocketMQ 選型對比就會發(fā)現(xiàn)類似這種基于 Topic 進(jìn)行業(yè)務(wù)隔離的能力RocketMQ 相比另一些消息隊(duì)列更靈活這也是當(dāng)時很多人選它的原因之一。鏈路治理層面要把消費(fèi)端對下游的依賴做分級。能降級的降級能異步的異步能做成輪詢補(bǔ)償?shù)木蛣e用同步強(qiáng)依賴。我在一家公司做技術(shù)負(fù)責(zé)人那會兒團(tuán)隊(duì)約定所有消費(fèi)邏輯不能超過三個依賴調(diào)用每多一個依賴就得寫一個獨(dú)立降級方案。這個約定后來挽救了無數(shù)個大促夜因?yàn)檎嬲鸱e壓的從來不是消息中間件自己而是消費(fèi)邏輯里那些脆弱的遠(yuǎn)程調(diào)用。4. 實(shí)戰(zhàn)案例復(fù)盤和日常預(yù)防體系4.1 一次大促消息堆積處置流程復(fù)盤講一個很典型的場景。某次大促預(yù)熱期訂單系統(tǒng)流量瞬間翻了三倍用 Dashboard 看消息積壓數(shù)字從個位數(shù)一路漲到近 80 萬消費(fèi)組的消費(fèi) TPS 卻在持續(xù)探底。當(dāng)時負(fù)責(zé)的同學(xué)第一反應(yīng)是給消費(fèi)者集群擴(kuò)容但擴(kuò)容完 15 分鐘積壓不但沒降反而還在漲。后來排查發(fā)現(xiàn)Topic 隊(duì)列數(shù)只有 8擴(kuò)容后的 20 個應(yīng)用實(shí)例有一大半是空閑的真正干活的只有 8 個實(shí)例。處置過程我盡量還原大家看這個順序先看 Dashboard 確認(rèn)積壓分布發(fā)現(xiàn)每個隊(duì)列積壓都很高排除單個隊(duì)列異常再查消費(fèi)者實(shí)例狀態(tài)發(fā)現(xiàn)部分實(shí)例 CPU 使用率長時間超過 80%消費(fèi)線程大量阻塞隨后抓線程棧定位到消費(fèi)邏輯中調(diào)用的庫存服務(wù)接口耗時飆升單次調(diào)用從 50ms 漲到了 2 秒以上。這時候做兩件事一是在配置中心打開降級開關(guān)讓消費(fèi)端跳過幾個非核心的校驗(yàn)邏輯和營銷同步二是把 Topic 隊(duì)列數(shù)提升到 32然后給消費(fèi)者集群擴(kuò)容觸發(fā)一次平滑 rebalance。降級開關(guān)一打開單條消息耗時就降下來了消費(fèi) TPS 從 200 漲到接近 1500。隊(duì)列擴(kuò)容后32 個消費(fèi)者實(shí)例各占一個隊(duì)列整體并行能力也上來了。差不多 40 分鐘以后80 萬積壓被徹底消化完系統(tǒng)恢復(fù)平穩(wěn)。這次復(fù)盤讓我拿到的教訓(xùn)很深刻擴(kuò)容前不看隊(duì)列數(shù)等于白花錢消費(fèi)邏輯里的非核心依賴在流量尖峰時要能一鍵摘除。4.2 日??陕涞氐谋O(jiān)控告警和預(yù)防措施處理完了一次事故接下來要做的是不讓同樣的問題在下次發(fā)生。消息堆積的監(jiān)控體系我建議至少包含三個維度積壓量、消費(fèi)能力、異常率。RocketMQ 自身提供的 Dashboard 可以看消費(fèi)組的 diff 數(shù)據(jù)但更推薦把指標(biāo)接入 Prometheus搭配 rocketmq-exporter 采集 Broker 端的消息積壓、生產(chǎn)速率、消費(fèi)速率等指標(biāo)。rocketmq-exporter 的安裝其實(shí)不復(fù)雜準(zhǔn)備好 nameserver 地址和 exporter 的配置文件部署成一個單獨(dú)服務(wù)然后在 Prometheus 里添加抓取任務(wù)即可。這個過程官網(wǎng)文檔挺清楚照著做基本沒坑唯一要注意的是 exporter 版本和 RocketMQ 服務(wù)端版本最好保持一個大版本內(nèi)一致否則偶爾會出現(xiàn)指標(biāo)抓取不到的兼容問題。監(jiān)控面板搭好之后告警規(guī)則要定得有層次。最核心的幾條我通常這樣配消費(fèi)組積壓量超過 5000 條且持續(xù) 5 分鐘告警一次消費(fèi)組消費(fèi) TPS 掉到 0 時秒級告警消費(fèi)失敗率或重試次數(shù)在短時間內(nèi)翻倍時告警。積壓量這種指標(biāo)不要設(shè)置太低的閾值否則系統(tǒng)一抖動就告警告警轟炸反而讓人麻木消費(fèi) TPS 為 0 這種指標(biāo)則必須配置秒級或分鐘級告警因?yàn)檫@意味著消費(fèi)鏈路完全癱瘓。除了監(jiān)控告警日常也要做定期的存量巡檢。我建議每周挑一個業(yè)務(wù)低峰時段自動跑一遍主題消費(fèi)組位點(diǎn)巡檢腳本把積壓量超過閾值的消費(fèi)組列表拉出來給研發(fā)同學(xué)確認(rèn)原因。這么做的好處是很多小問題在變成事故前就被發(fā)現(xiàn)了比如某個消費(fèi)組由于代碼發(fā)布失敗一直沒啟動如果沒有巡檢它可能會在你大促前幾天才被注意到那種被動局面大家都不想經(jīng)歷。4.3 消息堆積問題速查表最后整理一個速查表大家可以把這張表貼在團(tuán)隊(duì)文檔里線上出問題時照著對一遍能省不少排查時間?,F(xiàn)象常見原因快速處理建議整體積壓持續(xù)上漲消費(fèi)TPS正常生產(chǎn)流量峰值超過消費(fèi)能力擴(kuò)容消費(fèi)者或增加隊(duì)列做好流量預(yù)估整體積壓上漲消費(fèi)TPS接近為0消費(fèi)端故障、線程池阻塞或?qū)嵗礄C(jī)抓線程棧、查日志先恢復(fù)消費(fèi)能力積壓集中在單個或少量隊(duì)列消息分配不均、對應(yīng)實(shí)例異常查看隊(duì)列分配情況檢查實(shí)例健康度積壓數(shù)字一直波動但實(shí)際消費(fèi)正常監(jiān)控統(tǒng)計(jì)延遲或消費(fèi)組名配置錯誤用命令行查看真實(shí)位點(diǎn)校準(zhǔn)監(jiān)控配置消費(fèi)失敗率高重試隊(duì)列積壓上升下游依賴異常、業(yè)務(wù)邏輯拋錯檢查異常堆棧隔離或降級失敗邏輯擴(kuò)容消費(fèi)者實(shí)例后積壓沒下降Topic隊(duì)列數(shù)不足或rebalance未觸發(fā)增加隊(duì)列數(shù)確認(rèn)實(shí)例都分配到了隊(duì)列死信隊(duì)列消息越積越多重試次數(shù)耗盡仍未成功查死信消息內(nèi)容寫補(bǔ)償程序人工處理這張表不可能覆蓋所有場景但覆蓋了我在實(shí)際運(yùn)維中遇到的大多數(shù)問題。大家在做技術(shù)方案、寫復(fù)盤文檔時也可以把類似表格放進(jìn)去讓新人接到告警時知道從哪里入手。最后再分享一個經(jīng)驗(yàn)。消息堆積處理得多了之后你會發(fā)現(xiàn)真正需要你直接用“重置位點(diǎn)跳過消息”來救場的場景很少絕大多數(shù)情況下是消費(fèi)邏輯本身有退化點(diǎn)或者容量預(yù)估遠(yuǎn)遠(yuǎn)不足。所以與其練一手騷操作不如老老實(shí)實(shí)把消費(fèi)鏈路做可靠把監(jiān)控做靈敏把預(yù)案做細(xì)。RocketMQ 消息堆積這道面試題能回答到“從原理分析到應(yīng)急處理、再到預(yù)防體系”這個顆粒度面試官看到的就不只是你會用工具而是你在真實(shí)系統(tǒng)里扛得住事。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
日韩无码黄色片| 欧美成人精品A片免费一区99| 亚洲欧美激情小说| 免费伦费视频在线观看| 91在线丝袜视频| 久9九综合在线| 国产aⅴ无码片毛片一级网站| 密桃99999| 人人澡人人澡人人| 五月天婷精品激情| 久久久久久久久久黄色网| 国产精品乱码久久久久| 日本韩高清无砖码22o| 大香网站| 91人妻在线视频| 丁香五月天堂| 女人久久久| 麻豆天美国美国产| 欧美色图 人妻| 黑人娇小av在线播放| 丁香五月婷婷基地| 欧美亚洲手机在线| 久久男人网| 人人操人人摸人人骑| 99综合网| 免费的很黄很污的全部视频| 久操影视| 久久久五月天| 一区二区三区高清| 狠狠狠狠狠| 久久岛国| 1区2区3区在线视频| 国产又黄又粗又猛大片| 欧美精品三区| www.色婷婷色综合| 亚洲天天在线| 91最新综合| 制度丝袜99| 国产精品不卡一区二区三区| 丝袜剧情| 日韩猛交| 熟妇人妻一区二区| 一区在线国产播放| 妇女一区二区三区| 日韩精品大香蕉伊人在线| 精品人妻av在线播放| 日日做夜狠狠爱欧美黑人| 日韩欧美aⅴ综合网站发布| 亚洲综合图文| 人妻日日干| 亚洲色图8| www.久久| 日韩丰满熟妇| 亚洲天堂女优在线| 99久久婷婷丁香| 青青草华人在线欧美在线| 日本午夜福利影院| 青青草国产一区二区三区| 操逼逼无码| 欧美色图20p| 国产日韩人人| 五月大香蕉| 秋霞网无码| 天操老女人| 色噜噜人妻丝袜a∨先锋影| 午夜操一操| 今日头条成人一区二区三区四虎精品| 成人AV在线电影| 91精品91久久久久77777俄罗斯老妇姓x| www.操| 久久激情亚洲精品无码?V| 人妻熟女一区二区在线视频| 91精品免费| 精品久久久无码| 亚洲色婷婷久久91| 欧美性爱一区二区三区| 情色五月天网| 青青草色情网站视频| 在线啊v一区| 放黄片放3级黄片没穿衣服| 91爱看| 九九热精品在线| 国产精品宅男免费| 秋霞网—男女啪啪亚洲免费体验区| 青青草一本道福利视频| 亚洲综合贴图91| 国产操逼逼网| 人妻 中文 日韩| 欧美亚洲中文| 亚洲高清视频在线免费观看| 超碰美国| 九九九九精品视频| 丁香7月婷婷| 麻豆久久久久久久久丝袜 | 男人的天堂三级| 暖暖精品二区三区观看| 五月激情小说| 日本精品不卡一二三区| 欧美日韩国产高清在线一二三区| 韩日性爱av| 秋霞一集毛片观看| 牛牛AV人人夜夜澡人人爽| 国产精品禁久久久精品| 亚av顶级裸体一区二区三区四区五区| 国产AV天美| 亚洲.欧美.丝袜.中文.综合| 天天天天干| 留下AⅤ黄色片| 国产传媒午夜理伦精品| 精品久久久高清无码| 天天欧美| 色欲Av人妻精品一区二| 美女操逼A A| 欧美一级在线观看成人 | 高潮内射在线| 日韩人妻少妇中文字幕| 99久久这里只有精品| 99操99| 亚洲砖码砖专无区2023| 另类小色呦| 全免费a敌肛交毛片免费| 无码逼| 国产一进一出视频网站| 91麻豆va国产精品| 乱色视频中文字幕| 97色婷婷| 日本熟妇熟色97一本在线观看| 99热这里都是精品| 精品乱子一区二区三区99| 欧美熟妇视频| 久久久久ab| 欧亚久久偷拍视频| 破处bbq| 精品国产乱码久久久久久久| 黄页网站成人免费| 性色A∨91| 91综合色噜噜| se吧提供国产乱老熟视频胖女人| japan日本高清乱xxxx| 91c色| 一区二区娱乐网站| 五月综合色| 男女91| 熟女网站最新| 亚洲丝袜99| 激情小说激情视频| 日本中文字幕不卡视频| 操逼网站地址| 亚洲天堂人妻一区二区| 乱操9999| 大色综合| 插日本熟女视频| 久久东京国产精品视频| 九九99久久| 91热情品| 亚洲欧美在线丝袜| 美国一区二区免费视频| 色综合中文字幕不卡| 大肉棒导航| 乱人乱色一区二区三区免费| 亚洲影院无码在线| 国产精品国产自产拍高清AV| 超碰视97中文| 无码不卡亚洲成?人片| 黄色区免费观看中文字幕| 狠狠干综合| 男人的天堂.com| 少妇人妻无码| 麻豆国产97在线| 无码逼| 99热99re超碰精品| 国产97/欧美| 素人一区二区三区日韩| 青青草视频这里只有精品| 国产一区二区三区久久精品太古里| 亚洲美女高潮喷水视频| 懂色中文一区二区三区| 欧美色五月| 91 丝袜在线观看| 成人激情无码在线视频| 欧美制服另类丝袜| 久久午夜神马| 芊芊操逼视频无码| 人人综合| 韩国免费播放一级毛片| 性吧在线视频| 国产一级高清免费观看| 狠狠狠狠狠狠| 亚洲男人天堂网| 三级片网站在线播放| 中文字幕啊啊啊在线观看视频| 蜜桃色院一区久久| 久久中文字幕不卡人妻| 亚洲天堂人妻一区二区| 人妻天堂三区| 正在播放:深夜激情大战,自带黑丝袜全力输出骚穴 | 尤物黄色在线观看网站| 97综合国产精品高潮久久| 91色欧美| 性爱视频久久| 91东北熟女| 人妻嗯啊啊在线播放| 亚洲涩图欧美| 国产91会所女技师在线观看| 91在线限制级| 美国日韩黄片| 久插综合| 人人做天天爱| 情色五月天网| 老熟妇一区二区三区…| 1.igao73.com 加入收藏 免费专区 国产精品 中文字幕 日韩精品 欧美精品 精彩 | 黄片免费看黄片免费看| 九九九成人| 欧美精品999| 欧美日韩精品久久久久东北老熟妇| 亚洲国产一级精品毛一级精品看免费视频 | 懂色AV一区二区三区| 舔足天天操天天射| 九九九九久久久| 亚洲无码日韩电影| 无码免费一区二区三区啪啪| 天堂v无码免费视频| 爆乳免费黄网站| 国产一区在线播放| 在线观看午夜婷婷久久久久清性观看| 精品偷拍13p欧美dodk视频| 中文字幕、久久精品国产2020、久久综合久久自在自线精品自、亚洲 | 萌白酱自拍视频| 大香蕉手机在线| 国产亚洲精品农村妇女 | 1区2区3区在线视频| 亚洲自拍97| 色婷婷综合久久久久中文一区二区| 麻豆久久精品亚洲精品88| 97久久久久久久精| 亚洲天堂中文字| 国模91| 人妻少妇久久久| 超碰97欧美| 啊啊啊好大好湿| 一区二区三区免费岛国片| 嗯嗯啊啊啊好爽| 花野真衣| 在线中文字幕极品av| 国产999精品久久久| 亚洲熟女国产综合另类| 久久精品中文字幕无码l| 嫩草 我啊~嗯~在线| 久久色人体| 欧美极品美女aaaaaa级黄片| 国产日韩欧美| 免费看污网站| 丁香五月大香蕉| 熟女这里只有精品6| 国产99999久久精品| 五月天激情小说| 无码免费在线观看黄色片| 男人的天堂在线 | 久久性爱精品一区| 欧美写真视频一区| 免费99精品国产自在在线| 欧美熟女少妇| 亚欧性爱ab| 久久久久久网址| 97天天插| 国产精品密臀网在线观看| 久久精品亚洲成a人天堂| 百度百度日本操逼| 四虎av在线| 免费啊啊啊| 中文字幕在线观看视频www| 青青操综合网| 亚洲欧美成人网站AAA| 色大香蕉97N| 人妻天天爽夜夜爽爽| 无码免费精品高清| 国产精品毛片?v一区二区三区| 超碰97COm中文| A男人的天堂| 日韩二级| 日韩欧美成人大香蕉| 欧美一区二区日韩三区| 97国产超碰| 久久久国产精品亚洲精品| 美腿色图| 亚洲无套久久嗯嗯| 日本一本一区二区三区四区五区欧美日韩中文字幕 | 四虎免费在线播放| 久热伊人| 又黄又硬又粗又长国产视频| 四虎884| 中国小夫妻勾搭露脸淫荡对白| 久久侵犯人妻爽爽爽| 国产精品交换一区二区| 自拍偷拍2025在线观看| 黄色性爱网网| 男人的天堂一区三区| 成人 日本A片无码8888| 国语国产操逼伊人AV网| 亚洲啪AⅤ永久无码| 自拍偷拍草一草| 欧美v日韩v亚洲v最新在线| 99色网| 国产综合久久久麻桃个| AV天堂因数| 欧美色乱| 免费成人自拍视频在线| 亚洲电影中字一区二区| 国产无码三级视频在线观看| 热久久国产| 先锋影音av先锋一区| 日本免费人成视频播放120秒| 69视频入口| 97中文字幕九区| 亚洲色阁| 国产无吗在线播放| 中文字幕123| 性爱乱伦一区| 美女尤物福利视频| n1038 一二三区| 26uuu最新| 97九色| 久久久性| 波多野42部无码喷潮在线观看| 黄页| 熟女少妇一区二区三区| 国产免费一区2区3区| av网站免费线看| 色就色综合| 日人妻视频91| 欧美亚洲玖玖玖| 老熟妇综合| 97精品中文字幕| 天天综合青苹果| 精品熟女呻吟久久91| 日本黄色精品专区网站| 国产av又色又爽又黄| 亚洲国产欧美中文永久| 操人妻少妇中文| 91处女视频在线观看| 青女在线| 好吊色青靑草| 成人免费看吃奶视频网站| 这里只有精品视频在线观看麻豆| 色色五月天婷婷| 国产97色在线| 天天cao在线| 欧美五十路熟| 久久精品国产亚洲AV片多多| 亚洲天堂区| 欧美亚洲国产自久久| 呦女网站| 亚洲天天操| 日韩性爱电影一区 | 97Ai亚洲| 亚洲国产婷婷在线播放| 国产在线76页| 啊啊啊轻点在线观看| 综合亚洲欧美精品日韩?v| 人妻一区视频| 天美传媒Av在线| 黑人性欧美| 国产美女91| 蜜乳视频网站| 国产超碰人人操| 欧美日韩婷婷中文| 亚洲图片欧美| 亚洲图片 91| 好吊爽好吊爽在线视频,中文字幕精品一区二区日本,国产良妇出轨视频在线观看, | 另类亚洲一区二区三区| 婷婷亚洲综合| 啊啊啊轻点在线观看| 大象AV在线| 五月天偷拍| 内射卯月麻衣| 无码国产Av| 伊人综合色网| 亚洲丝袜诱惑| 十八禁视频网站| 国产精品久久久九九九| 国产高清午夜成人在线观看| 91 国产丝袜在线播放-百度| 久久精品人人做人人看| 大香蕉伊人色偷偷在线| 俞拍久久国应视频| 中文字幕在线日亚州9| av线电影| 日韩无码操逼片| 超碰97玖玖爱| 精品欧美老熟女一二区| 天美传媒国产原创中文字幕亚洲欧美另类 | 综合婷婷| 亚洲情色 自拍| 免费精品无码一级毛片牛牛影视| 一本道综合色图| 人妻丰满熟妇av无码区蜜桃| 亚洲欧美自拍偷拍| 久久久久9| 久久欲| 久久久久网站-538在线视频-欧美永久乱码| 火箭成精品视频884必出精品| 亚洲AV无码翔田千里网站| 久操大香蕉超碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰 | 黑白配性爱AV成| 在线看免费无码AV天堂的| 中文字幕人乱码中文字的预防方法 | 诱惑人妻欧美一区在线播放| 亚洲蜜乳av| 1204金沙人妻懂旧版免费| 精品成人无码| 国产视频小说| 国产一区自拍欧美日韩| 91久久国外网| 国内精品伊人久久久久影院会| 欧洲一区二区| 色综合五月天| 熟女这里只有精品6| 高清肉丝中文无码| 久久香蕉影院| 嗯……啊…嗯嗯…啊…好舒服| 2019精品国产无码成人| 中文字幕在线2| 麻豆啪啪啪视频| 亚洲九九视频| 操美女人妻| 一级@啪啪视频| 午夜福利一区二区三区四区五区色婷婷| 在线视频免费播放一区| 夜夜国自区| 亚洲精品丝袜-不卡成人免费……| 99久久精品国产系列| 黄色十八禁网站| 日韩黄片影院| 国产路线专区| 97视频在线免费播放| 91久久久久久久久18| 亚洲?V高清一区二区三区尤物| 青青草在线视频欧美| 亚洲偷拍自拍在线视频| 国产传媒日韩| 日韩在线观看AV| 日韩伦理久 久久 清纯| 亚洲制服欧美另类内射| 精品九九| av2014 日韩在线中文字幕| 久操高青| 国产一级黄色片在线观看| 亚洲在线欧美| 国产夫妻性生活视频| 又大又长又爽| 综合色色婷婷| 操www| 男人精品区| 黄色不卡视频| 日韩天堂av电影在线观看| 温婉少妇玩3p| 一区不卡在线观看av| 蜜臀Av一区二区三区| 97免费免费视频网| 亚洲av在线免费观看| 国产精品蜜乳AV| 女色综合| 人妻丝袜日本| 天天影视之亚洲综合网| 欧美熟女妇同| 91黑丝在线播放| 黄色免费网页无码| 久久久久久亚洲Av无码| 又粗又长又大国产不卡| 亚州色图欧美色图| 激情视频图片| 亚洲国内精品成人不卡| 最新av在线| 天天干2区3区| 18一区二区三区| 操碰91| 大香蕉五月天婷婷| 亚洲一区二区精品福利| 脫衣舞一区二区三区| 2024年最新色情网站在线观看| 欧美热图99| 大香蕉92| 国产精品一区二区三区在线| 熟女熟妇伦久久影院毛片一区二区 | 日韩性爱小视频在线观看| 国产成人自拍视频视频| 久思思热视频在线观看| 大屁股人妻女教师撅着屁股| 欧美日韩国产一区二区小黄片大全| 高颜值美女口爆高潮浪叫| 婷婷激情五月综合| 久久久78| 亚洲Av诱惑| 粉嫩AV一区二区夜夜| 加勒比久久av| 99性爱视频| 香蕉婷婷| 欧美综合骚| 日韩久久三区| 免费的av网| 91网站18在线观看| 夜夜狼人妻| 亚洲宗合电影| 亚洲丝袜99| 综合性视频99| 91色夜| 欧美色视| 亚洲性爱乱操x| 人人摸.人人色| 国产操伦| 自拍偷拍2025在线观看| 五月天婷婷久久| 亚洲小电影免费涩涩成人在线高清| 26UUU欧美激情一区二区| 中文字幕一区二区日韩网| 成人无码电影在线观看网| 在线观看无码三级少妇| 日韩人妻制服丝袜av| 国产AV久久野战精品| 久久亚洲欧美中文字幕国语| AV污污污污| 国产福利精品最新在线 | 欧美一二三级精品在线| 国产欧美日韩一区二区三区| 久久性爱网站| 91操操| 蜜桃视频精品一区二区| 日本人妻天堂网站在线播放| 91九九九吃| 国产一线二线三线av| 91性高朝久久久久久久久| 台湾成人无码AV| 97任你吞精| 五月婷婷深深爱| 91人妻视频在线| 夜夜骑操视频| 婷婷伊人五月| 色爱三区| 蜜桃在线观看一区二区三区| 国产AV线| 精品国产一区探花在线观看| 亚洲欧美中文一区二区三| 日韩 欧美 另类 人妻| 日韩亚洲美女一区久久| 小草av不卡亚洲二区 | 成人综合网 欧美| 亚洲精品 欧美97色色| 极品国产内射| 亚洲第一在线视频| 久婷婷一区| 国产夫妻性生活视频| 欧州一区二区三区四区| 国模私拍一区二区三区神乳| 吻戏激情性巴克| 后入式在线免费观看60秒| 欧美日韩色| 欧洲亚洲国产综合在线| 亚洲五月丁香花狠狠干一区二区三区| 日日A∨| 欧美亚洲特P| 日韩中文字幕人妻视频| 天美麻豆精品视频99| 激情四射五月天| 日韩免费一级性爱视频| 丁香婷婷久久| 99精品综合久久久久五月天| 午夜视频久久久久一区| 97超碰jingpin| 爱丝福利| 亚洲精品无码成人久久久99| 91在线视频免费中出| 丰满人妻-区二区三区免费看 | 777AV电影| 欧美少妇第一页| 亚洲伊人成综合成人网| 亚洲国产欧美日韩人妻日中文| 久久精品国产97欧美精品亚洲| 色操逼网| 男人的天堂色偷偷青青草视频婷婷网| 亚洲综合20p| 欧美极度丰满熟妇hd| 婷婷五月天无码 | 蜜臀99久| 国产免费永久精品无码| 一二三卡欧美日韩人妻免费精品| 一区不卡在线观看av| 国产精品2020| 亚瑟国产精品久久无码| 91jk色拍| 亚洲精品白浆高清久久久久久| 好淫网一二三视区| 2017大香蕉| 噜噜噜无码AV一级一级久久影院| 香蕉精品二区二区| 欧美在线播放aaaa| 中文字幕免费在线观看| 90后性网国产欧美| 美女黄页网站| 五月婷婷啪啪| 99在线精品视频| 啊啊啊啊嗯嗯嗯用力好爽| 国产麻豆91欧美一区二区久久婷婷国产精品| 404操逼福利视频| 自拍亚洲综合| 五月天综合网| 亚洲激情视频| 嗯嗯嗯啊啊啊在线免费观看| 男女一进一出视频久久| 欧洲免费一区二| 精品无码久久久久久久杏吧| 日韩美女高潮喷水视频| 一类无码操逼视频| 一本色道久久综合狠狠操| 日本中文字幕在线视频| 成人性生活高清视频在线播放| 亚洲欧美精品一区天堂久久| 色综合国产在线观看| 天操老女人| 午夜福利视频在线一区| 国产丝袜啪啪| 亚洲妇色| 天久久久噜噜噜久久国产精品爽爽 | 欧美翘臀视频网站一区二区三区| 老色69| 日韩极品无码B| 久久视频少妇美女| 亚洲欧洲偷拍一区| 精品国产91av一区二区三区| 国产成人精品一区| 69精品少妇一区二区三区蜜桃| 97超碰站| 三级网站超变态精品| 丁香六月婷婷综合| 97无码视频在线播放| 蘋果手機免費看成人Av| 九九综合久久| 国产美女自拍AV| 综合欧美色图| 国厂麻豆77q4| 婷婷五月天成人网| 亚洲,日韩,欧美,成人播放| 蜜桃视频一区二区三区| 九九热在线视频| 国产精品久久久久无码A√| 啊啊啊 在线| 熟女一区二区| · —级AA伦aa坐爱午夜极速ⅴA一区天天噪天天噪天天噪 | 97天天爽| 免费簧片在线观看| 国产精品美女视频诱惑| 91国精产品| 超碰激情808| www.色综合| av三级电影在线播放| 91热色| 黄总AV色图| 一区二区 韩日AV| 99re公开精品免费视频| 2025年A片视频精品| 夜夜久久久| 欧美熟女丝袜| 欧美亚洲影视| 亚洲不卡AV在线| 九九色婷婷| 欧美成人四级在线播放| 亚洲欧洲激情卡通另类文学四射小说网站 | 亚洲日韩美国人妻| 亚洲欧美国产中文视频| 亚洲狠| 九九人妻| 日韩天天本| 五月丁香婷婷综合| 成人AV在线电影| 美女写真| 国产女人与拘做受视频免费| 超碰免费人妻人人| 精品少妇99| 无码粉嫩白虎一线天b区| 91日日夜夜| 久草在| 日韩中文字幕av在线播放| 欧美性爱五月天| 亚洲精品成人| 欧美亚洲日本激情在线| 色成人Www精品永久观看| 91人精品妻入口| 91国产操逼视频| 内射夫妻三片| 伊人专区一区二区三区| 日韩AV无码网站| 免费观看成人www精品视频| 97在线免费观看| 欧美91精品国产自产| 97视频在线播放| 97在线观| 国产一区在线播放| 91精片| 久久精品国产亚洲AV高清演员表| 99久国产精品午夜性色福利| 欧美日韩大黄片| 国产99精品一区二区三区免费| 超碰精品日韩欧美国产| 精品人妻一区二区三区四区石在线| 92性色国产午夜福利在线661| 浓厚中出中文字幕在线| 密乳AV免费观看| 777AV电影| 午夜福利国产欧美日韩夜夜| A级片日韩欧美国产欧美视频精选观看 | www.久久久久| 婷婷五月成人| 欧美性暴力猛交XXXX| 亚洲视频小说| 热的中文 热的有码 热的国产| 欧美传媒一区| 久久精品无码熟妇一区二区三区视频导航 | 亚洲色欲一区二区三区| 99re69| 欧美青青草视频| 综合亚州欧美| 亚洲精品成人动漫在线| 欧美强奸乱| 啪啪91| 96AV久久久| 欧美日韩另类字幕中文| 91n欧美| 性饥渴少妇av无码毛片| 色婷婷九月天天综合| 99九九久久| 又大又黄国产| 男人的天堂在线| 91四海无码日韩欧美| 亚洲图片激情小说| 欧美性爱日韩性爱| 天天欧美色| 久久久专区| 天天狂操夜夜狂日| 国产操逼视频在线观看| 99热超碰| 久久久专区| 人人妻人人爽| 日本免费一级AAA大片器| 91精品国产麻豆国产自产在| 亚洲天堂第一页| 97综合激情| 国产女人操逼视频| 热久久九九热| 中国人高清www色视频免费| 国产无码一二三区| 天天综合网入口~91| 亚洲综合九九| www色色com| 亚洲精品 欧美精品| 欧美日韩亚洲天堂| 亚洲av无码成人精品国产| 婷婷激情一区二区三区俺也去| 狠狠操狠狠燥| 亚洲成人精品在线一区| 91蜜臀熟女| 夜夜国自区| 51久久夜色精品国产麻豆| 丁香五月天堂网| 色香综合天天影视综合 | 又黄又硬又粗又长国产视频| 亚洲欧洲综合av在线| 亚洲不卡AV在线| 国产三级中文字幕粉嫩| 亚洲色图日韩精品| 二对二中文字幕。| 校园春色亚洲| 久热久| 蜜屁av| 午夜国产成人福利视频| 亚洲国产精品久久久男人的天堂| 东京热双插| 婷婷色一区| 日韩欧美麻豆| 精品性爱一区二区| 欧美青青视频| 综合在线导航一区| 天天天天做夜夜夜夜做| 中文字幕97| 天堂蜜桃无码视频一区二区| 欧美色图电影| 欧美99| 少妇精品| 香蕉综合网| 女人久久久| 五月婷婷综合激情| 日逼97| 天天射影院| 亚洲av青草久久一区二区| 九色97| 久久超碰网| 九九热九九热| 无码操逼视频一下| 久久綜合很很很| 中文字幕日韩电影人妻| 人妻社区男人天堂| 一级特级aaaa毛片免费观看| 加勒比少妇AV婷婷六月天超碰超碰| 免费一级黄色录像影片| 久久九精品| 九九aV| 免费视频97| 超碰亚洲欧美日韩无| 麻豆精品一区二区三区四区免费观看| 天天淫人人妻日日色| 无码人妻1727| 91+欧美| 亚洲精品乱码线路中文字幕| 后入福利视频| 你想操日本小逼吗| 精品免费成人久久| 伊人成人中文字幕久久网| 成·人免费午夜在线观看| 伊人久久亚洲中文字幕| 狠狠色伊人亚洲综合网站色| 亚州综合色图| www.国产高潮精品| 91中出视频| 成人精品电影| 岛国在线免费视频| 夜夜爽爽夜夜精品视频| 十八禁视频网站| 精品999999| 老汉网| 亚洲无码99| 亚洲综合另类| 亚洲精品1区| 天天色天天干天天爱| 好湿好紧视频| 欧美老妇综合网| 日本一级二级三级网站| 九九九热| 久久AV色| 精品少妇后入一区二区三区四区人妻巨乳 | 青青草在线成人视频| 亚洲导航深夜福利| 色图四区| 欧美乱妇狂野欧美在线视频| 99热99在线| 韩国手机不卡无码三级视频| www久久精品| 有码人妻系列| 亚洲成熟国产精品美女| 国产熟妇 码视频户外直播| 一区| 婷婷丁香六月天| 国产 无码 一区二区| 欧美成人性爱视频在线播放| 久久久啊啊啊| 天天干1区2区在线| 97 国产一区| 人人喜人人妻| 人妻久久久| www.av在线观看| 中国一级操逼视频| 欧美日韩在线小说| 超碰到97情色| 新视频sss国产| 啊啊啊用力在线观看| 天天躁日日躁AAA片李宗瑞| 影视综合无码少妇| 97国产人人| 天天综合网合集91| 欧美91在线+|+欧美| 久久久com| 影视综合无码少妇| 亚洲加勒比| www欧美91| 天天影视之亚洲综合网| 亚洲欧美日韩有码| 蜜桃色色网站视频三区| 久99| 亚洲精品精品一区二区| 亚洲欧洲综合成人av一区| 一级性爱视频免费在线| 九热中文字幕| 欧美综色欧| 裸体美女久久久| 亚洲色图欧美色图制服丝袜| 99热9| 欧美性爱十八禁| 18禁网站在线播放| 国产一区二区三区免费视频在性观看| 风月影院十八禁| 欧美资源| 99999re| 久操国产在线| 青青草福利视频| 色淫网站优优视频| 黄色成年| 五月天久久人妻| 粉嫩AV一区二区夜夜| 久久成人东京热人妻| 大香蕉色欲AV| 久久久性少妇| 99精品综合久久久久五月天| 欧美色图97| 超碰导航97| 亚洲日精品| 国产午夜精品一区二区三区牛牛| 亚洲高清91| 一本色道综合久久欧美日韩精品| 亚洲清纯综合| 91国精产品| 999岛国大片| 一块操欧美性爱| 亚洲av综合色区无码一| 强奸乱伦αv片| 偷看洗澡一二三区美女| aaa一级黄片| 91狠狠综合久久久久久| 热天堂一区二区| 久久久99久9| 精品九九九九九九九九九| 91久久国产综合精品| 超碰久在线天天做| 久久香蕉国产线看观看亚洲女人 | 国产丝袜美女诱惑| 九九九久千久久激情蜜桃在线看| 亚洲在高跟鞋自慰久久在色线| 久久婷婷热| 99色在线| 首页亚洲国产高跟丝袜诱惑视频| 欧美精品成人一区二区在线观看| 香伊人在线| 久久久久成人蜜桃精品| 天天干18禁| 精品精品精品| 97视频在线| 色综合中文字幕不卡| 男人天堂2017| 久操操| 亚洲伊人a线观看视频| 欧美熟女妇同| 午夜福利视频在线一区| 亚洲欧美天| 午夜男女爽爽爽在线视频| 亚洲天堂男| 成人贴图日韩欧美| 69视频入口| 亚洲性猛交| 亚洲av影音先锋| 欧美第一页| 五月天综合| 91亚州| 欧美精品丝袜久久久中文字幕| 国产日韩精品人妻久久久久色欲网站| 99精品人人爽| 天天做日日爱夜夜爽| 加勒比海人人操超碰在线| 女同在线视频一区| 91av熟女人妻| 超碰在线第一页| 91干熟女| 亚洲一区二区三区婷婷| 99www.bibizy香蕉资源国产一区二区三区高清 | av网站在线观看了| 西西美女视频网| 午夜影美女日鸡鸡天天视频国产| 少妇久久久免费| 色九九综合| 五月丁香六月综合缴清无码| 国产精品久久久久久夜夜夜夜| 久草五月| 影音先锋日本一区二区| 97精品视频在线| 偷窥自拍亚洲色图| 亚欧日韩成人| 91伊人| 成人久久久精品| 国产亚洲一黄| 成人性爱AV在线免费观看| 久久久久久久久久久久久女过产乱-少妇高潮一区二区三区喷水-成人AV | 国产精品久久久久亚洲av| 偷拍综合亚洲| 麻豆视频test| 中文字幕乱在线伦视频中文字幕乱码在线 | 国产第二页| 亚洲人妻一区二区三区| 欧美一区二区一级岛国大片| 麻豆 亚洲 97| 天天狠| 老熟妇一区二区三区…| 久久久草草精品| 日韩美女久久一区二区三区| 高清成年美女黄网站免费大全| 日韩欧美~中文字| 爱爱动态120秒| 91高清无码下载| 亚洲欧美综合| 亚洲欧美91√| 欧美专利1区2区3区4区5区免费| 久久久久久AⅤ无码免费肉站| 五月亭亭六月丁香| 97久久精品不卡| 中文字幕丝袜人妻| 国产精品免费视频不卡| 欧美日韩大香蕉| 91中出视频| 精品一二三区女同| 和协无码影院| 99ri在线视频| 天天草夜夜草高潮片| 伊人天天久久动态图| 蜜臀一二三区| 五月婷婷hd| 美腿色图| www.色五月| 色综合久| 天天干干天天干干| 精品九九| 久 久无码人妻AV| 天操天操夜操夜月月年年操操| 女一区二区| 久妇网| 97人人干| 国产免费一区二区在线A片视频| 国产成人欧美一区二区三区的国产| 超碰在线一区二区三区| 91女日逼| 久久久熟女一区| 伊人精品视频| 九九九九日本 | 校园春色制服丝袜中文字亚洲| 国产日韩手机视频在线| 国产女大学生AV| 熟妇无码视频三区| 粉嫩久久久久| 亚洲男人的天堂V| 日韩啪啪啪啪啪| 亚洲天堂 视频你懂的| 国产精品久久久久无码AV会牛| 强奸乱伦免费网站| 熟妇xxxxx性春色| a'v在线资源| 少妇一区二区三区| 久久久亚洲| 婷婷激情四射| 五月天亚洲色图| 亚洲欧美日韩不卡人妻| 偷窥自拍亚洲| 91欧美经典| 欧美日韩色| 国产精品96| 欧美高清色| 精品九区| 秋霞 色色| 亚洲中文字幕在线视频一区二区| 亚洲熟伦熟妇AV无码春色| 免费操逼91| 日韩性爱啪啪视频| 日本高清免费一本视频在线观看| 肏逼视频日本| 少妇一区二区三区高速| 色y情视频免费看| 亚洲无码国产探花在线观看| 巨爆乳一区二区爆乳区| 国产日韩在线播放av| blacked精品一区国产| 久久久亚洲欧美综合| 国精精品无码一二三区水多多| 欧美日韩中文亚洲v在线综合| 人妻中文字幕日韩电影| 色综合色综合网| 91操碰| 一区二区三区激情在线观看| 91久久久久久| 97资源制服丝袜| 日日AV加勒比| 欧美亚洲厕所精品偷拍91| 亚洲中文字幕一区| 99re99在线视频| 免费视频97| 麻豆国产视频精品观看| 国产亚洲女v在线观看| 亚洲精品日韩国产欧美| 99热91| 99热最新网址| 久久超碰爱| 人妻精品一区二区全免费| 亚洲日本天堂| 欧美同性恋 的搜索结果 - 91n| 啊啊啊好想要| 成人无遮挡毛片免费看| 三男一女不戴套的A片| 在免费jIzzjIzz在线视频| 桃花色涩综合影院| 欧美少妇一区二区三区| 91天美传媒在线观看| 春色91| 久久伊人最新网址视频| 成人性爱av| 狼人久草| 一道本东京热加勒比一区二区三区| 东北操逼| 大香蕉人妻久久| 强奸国产精品视频| 爱媛媛久久国产福利| 亚洲成人免费电影| 欧美日韩一干二干| 国产suv精品一区二六| 欧美性爽xyxOOOO| 国产精品色片一区二区| 性欧美另类高清| 中国小夫妻勾搭露脸淫荡对白 | 久久久久亚洲| 亚洲少妇综合在线播放| 激情文学网伊人| 91伊人久久在线| 综合第一页| 伊人女女资源在线观看| 日韩亚洲美女一区久久| 青久操| 亚洲有码视频二区| 黄色片,com| 夜夜肏2021| 美女丝袜激情小说| 韩国免费播放一级毛片| 日本精品一区二区中文字幕| 伊人网在线观看| 伊人欧美大香蕉视频| 97精品熟女少妇一区 | 伊人国产av| 色香网| 国产中文精品一区二区在线观看| 欧美色五月| 精品人妻一区二区三区夜夜| 人妻精品一区二区| 一区二区三区视频| 色婷婷成人综合| 国产少妇内射| 人人做,人人操,人人摸| 日韩中文字幕视频在线观看| av操操不卡| 97色碰| 天天躁日日躁XXXXYY| 亚洲男人的天堂一区二区| 另类图片五月天| 欧美AB在线| 亚洲五月婷婷| 美女黑人91神马| 飘花国产午夜精品不卡| 狠狠久久亚洲欧美专区| 91碰碰| 人人干黄色| 人妻密肉在线观看| 男女啊啊啊| 91中文在线| 色综合加勒比四四季| 97综合| 五月丁香色婷婷| 亚洲欧洲日韩中文字幕一区| 一二三区操逼国产91| 色情婷婷| 好涩综合| 婷婷深爱五月| 久久久涩|