精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

RocketMQ 消息積壓千萬級如何快速恢復 生產環境踩坑實錄

開發 前端
回顧這次戰斗,我最大的感悟是:處理積壓不是“頭痛醫頭腳痛醫腳”,而是要從“生產 - 存儲 - 消費”全鏈路分析。比如這次我們只盯著消費者擴容,卻忽略了 Producer 端的流量控制,以及 Broker 端的磁盤 IO 瓶頸。

兄弟們,凌晨三點,手機像被扔進了洗衣機,在枕邊瘋狂震動。我摸索著接起電話,運維小哥帶著哭腔:“哥,訂單系統的 RocketMQ 集群炸了,積壓量直奔兩千萬,現在支付回調全堵著,客服已經收到二十多個商家投訴了!”  

我騰地坐起來,腦子還沒完全清醒,手指已經條件反射地打開監控頁面。好家伙,Consumer 集群的平均消費速度只有 500 條/秒,而堆積量正以肉眼可見的速度往上竄。再看 Producer 端,TPS 倒是穩如老狗——問題出在消費者這邊,典型的“生產快、消費慢”導致的積壓慘案。  

這不是我第一次跟 RocketMQ 積壓打交道,但千萬級的規模還是頭一回。摸著鍵盤的手有點抖,廢話不多說,咱們邊復盤邊聊,看看這種級別的積壓到底該怎么破。  

一、先別急著“重啟服務器”,先把積壓原因盤清楚

很多同學遇到積壓第一反應是“擴容消費者”,但盲目擴容前必須先搞清楚:到底是什么卡住了消費速度? RocketMQ 的消費鏈路就像一條流水線,任何一個環節“堵車”都會導致積壓,咱們得先給這條流水線做個“CT 掃描”。  

1. 第一步:排查 Consumer 是不是“假死”狀態

打開 RocketMQ Dashboard(沒有的同學趕緊裝,運維必備神器),先看 Consumer 分組的“在線客戶端”列表。如果發現某臺服務器的 Consumer 長時間沒有上報心跳(LastHeartbeatTime 超過 2 分鐘),恭喜你,大概率遇到了“消費者假死”。  

這種情況通常是因為消費者線程被 Full GC 卡住,或者代碼里有死循環。我這次就碰到一臺服務器,因為日志打印太猛(沒錯,就是某個同事在循環里寫了 System.out.println),導致 CPU 100%,Consumer 線程直接卡死,積壓量像滾雪球一樣越滾越大。  

踩坑提醒:記得給 Consumer 加上 JVM 監控,重點看 GC 頻率和耗時。我后來發現那臺假死機器的 Young GC 耗時居然超過 500ms,老年代頻繁 Full GC,這種情況下 Consumer 能正常工作才怪。  

2. 第二步:檢查隊列負載是否均衡

RocketMQ 的 Consumer 采用“隊列均分”策略,每個 Consumer 會分配多個 Message Queue(以下簡稱 MQ)。如果某臺 Consumer 分配了 100 個 MQ,另一臺只分配了 10 個,那肯定是“忙的忙死,閑的閑死”。  

怎么看負載情況?Dashboard 里每個 Consumer 實例的“已分配隊列數”一目了然。我這次就發現,有三臺新擴容的服務器因為網絡配置問題,沒連上 NameServer,導致老服務器承擔了 80% 的隊列,消費能力直接被壓垮。  

實操技巧:如果發現隊列分配不均,先重啟 Consumer 實例(觸發重新負載均衡),如果還不行,檢查 Consumer 分組的配置,確保 consumeFromWhere 和 messageModel 設置正確(默認 CLUSTERING 模式下會自動均衡)。  

3. 第三步:看看消費線程是不是“摸魚”

RocketMQ Consumer 的默認消費線程數是 20(對,沒錯,就是這個藏得很深的參數 consumeThreadMin 和 consumeThreadMax)。如果你的業務邏輯比較復雜,比如需要查數據庫、調接口,20 個線程可能根本不夠用,導致大量線程在排隊等待處理。  

我這次查看 Consumer 日志,發現線程池里的任務堆積量超過 1000,而實際在工作的線程只有可憐的 10 個——原來同事在初始化 Consumer 時,手滑把 consumeThreadMin 寫成了 10,Max 也設成 10,相當于固定只有 10 個線程在干活,面對突然暴增的流量,自然頂不住。  

劃重點:消費線程數不是越多越好,要看 CPU 核心數(一般設置為 CPU 核心數的 2 - 3 倍)。如果是 IO 密集型任務,可以適當多開,比如設到 50;如果是 CPU 密集型,超過 32 基本沒意義,反而會因為線程上下文切換拖慢速度。  

二、千萬級積壓的“急救三連招”,先把積壓量壓下來

搞清楚原因后,接下來就是“急救階段”。記住:千萬級積壓時,任何微小的優化乘以千萬都會放大成顯著效果。咱們分步驟來,先讓消費速度追上生產速度,再慢慢“消化”歷史積壓。  

1. 第一招:臨時擴容 Consumer,先把“車道”拓寬

這是最直接的辦法,相當于給高速公路多開幾條車道。RocketMQ 的 Consumer 是“無狀態”的,理論上可以無限擴容,但要注意兩個關鍵點:  

(1)擴容數量不超過 MQ 總數

每個 MQ 同一時間只能被一個 Consumer 消費,比如集群有 100 個 MQ,最多開 100 個 Consumer 實例(每個實例分配 1 個 MQ)。我這次集群有 200 個 MQ,當前只有 10 個 Consumer,理論上可以先擴容到 50 個實例,把隊列分配率拉滿。  

(2)別踩“IP 不對等”的坑

之前擴容時,運維小哥直接復制了老服務器的配置,結果新服務器的 clientIP 被錯誤設置成了內網 IP,而 NameServer 在公網,導致 Consumer 注冊時,其他實例根本找不到它。最后不得不手動加上 rocketmq.client.endpoint 參數,指定公網地址才解決。  

 實操步驟:  

  • 臨時創建一個新的 Consumer 分組(比如加個后綴 -tmp),避免和原有消費者搶資源  
  • 啟動時指定 --consumerThreadMin 50 --consumerThreadMax 50(臨時調高線程數)  
  • 觀察 Dashboard 上的“消費速度”,理想情況下,每臺新服務器能分到 4 - 5 個 MQ,消費速度能提升 3 - 5 倍  

2. 第二招:開啟批量消費,讓消費者一次“搬多箱貨”

RocketMQ 支持批量消費,默認每次拉取 1 條消息(參數 consumeMessageBatchMaxSize 默認為 1)。如果你的業務邏輯允許,可以改成一次拉 10 - 32 條,減少網絡交互次數,提升吞吐量。  

我這次把這個參數改成 16,配合前面的擴容,消費速度從 500 條/秒直接跳到 8000 條/秒——相當于原來每次跑一趟搬 1 箱貨,現在搬 16 箱,效率自然飆升。但要注意:  

(1)批量處理時保持冪等性

因為可能會重復消費(比如處理到第 10 條時消費者掛了,重啟后這 16 條會重新消費),所以業務代碼必須支持冪等(比如用唯一 ID 去重)。我們當時就吃了虧,沒做冪等,導致數據庫出現重復訂單,最后不得不寫腳本去重,血的教訓!  

(2)別貪心設太大的值

超過 32 之后,吞吐量提升不明顯,反而會增加內存壓力(每條消息都會存到內存里)。我們試過設成 100,結果 Consumer 內存使用率瞬間超過 80%,差點觸發 OOM,最后穩定在 16 - 32 之間最佳。  

3. 第三招:暫停 Producer 或限流,先“掐斷源頭”

如果積壓量實在太大,比如像我們這次已經到兩千萬,而消費速度一時半會兒追不上,可以考慮暫時讓 Producer 停止發消息,或者降低發送頻率。  

注意:暫停 Producer 前一定要和業務方溝通,我們當時是電商大促期間,暫停支付回調消息會影響商家收款,最后只能和前端商量,在用戶支付成功頁增加“稍后刷新”提示,同時對 Producer 做限流(從 2000 TPS 降到 500 TPS),給消費者爭取緩沖時間。  

踩坑提醒:暫停 Producer 后,記得監控 Consumer 的“堆積量”是否開始下降(理想情況下每分鐘下降 10 - 20 萬)。如果沒變化,可能是消費者有重試邏輯在反復投遞(比如消息處理失敗后進入重試隊列,導致積壓量“假死”),這時候需要檢查 maxReconsumeTimes 參數(默認 16 次,超過后進入死信隊列)。  

三、積壓消化中的“連環坑”,每一步都可能翻車

當積壓量開始下降,千萬別掉以輕心,這時候往往會遇到各種“隱性炸彈”。我們這次就踩了三個大坑,每個都讓我在凌晨四點的會議室里冒冷汗。  

1. 坑一:消費過快導致“內存溢出”

前面提到我們把批量消費設成 16,線程數開到 50,消費速度確實上去了,但半小時后,一臺 Consumer 突然掛掉,日志里寫著“java.lang.OutOfMemoryError: GC overhead limit exceeded”。  

原因分析:  

  • 批量消費時,每條消息都會解析成 Java 對象,16 條一批,每秒處理 500 批,每秒產生 8000 個對象  
  • Consumer 堆內存默認只有 1G(很多同學不知道,RocketMQ 的 Consumer 啟動腳本默認堆大小是 -Xms1g -Xmx1g),新生代很快被占滿,觸發頻繁 Full GC  

解決方案:  

  • 給 Consumer 增加內存,改成 -Xms4g -Xmx4g(根據服務器配置調整,建議不超過物理內存的 70%)  
  • 調整 JVM 參數,比如 -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m,避免元空間溢出  
  • 最重要的:在業務代碼里及時釋放對象引用,比如處理完消息后把對象設為 null,幫助 GC 回收  

2. 坑二:網絡帶寬成了“最后一公里瓶頸”

當積壓量降到 500 萬時,消費速度突然卡住,無論怎么擴容都上不去。檢查服務器監控,發現網卡吞吐量達到 90%(我們用的是 1G 帶寬的服務器)。  

解決思路:  

RocketMQ 的消費流程是“拉取消息”→“處理消息”→“提交消費位點”,其中“拉取消息”是網絡密集型操作。當批量拉取 16 條消息時,每條消息平均 1KB,一次拉取就是 16KB,每秒 500 次拉取就是 8MB/s,50 個 Consumer 實例就是 400MB/s,接近 1G 帶寬的極限。

實操方案:  

  • 給部分 Consumer 實例更換成 10G 帶寬的服務器(臨時采購,有錢任性)  
  • 調整拉取策略,比如增加 pullBatchSize 參數(默認 32,我們設成 64,減少拉取次數)  
  • 對消息體進行壓縮(Producer 發送時啟用 GZIP 壓縮,Consumer 自動解壓縮),我們的消息體從平均 1KB 壓縮到 300 字節,帶寬占用直接降了 70%  

3. 坑三:死信隊列突然“爆炸”,積壓量反彈

當積壓量降到 100 萬時,運維小哥突然喊:“死信隊列里的消息怎么突然多了 50 萬?” 原來是很多消息重試 16 次后仍失敗,自動進入死信隊列,而我們沒有配置死信隊列的消費者,導致這部分消息被“遺忘”了。  

處理步驟:  

  1. 先暫停死信隊列的自動投遞(在 RocketMQ 控制臺找到死信隊列對應的 Consumer 分組,設置 maxReconsumeTimes 為 0,停止重試)  
  2. 寫一個臨時消費者,專門消費死信隊列,把消息內容記錄到日志文件,然后人工排查失敗原因(我們發現大部分是因為數據庫連接超時,凌晨數據庫負載高導致)  
  3. 修復業務代碼后,把死信隊列的消息重新發送回原隊列(用 RocketMQ 的 sendMessageInTransaction 接口,避免重復消費)  

經驗教訓:死信隊列是“最后的防線”,平時一定要監控死信隊列的堆積量,建議設置報警閾值(比如超過 1000 條就提醒),否則等問題爆發時,又是一場硬仗。  

四、積壓恢復后的“亡羊補牢”,避免下次再掉坑

經過 6 個小時的奮戰,積壓量終于歸零,看著監控曲線慢慢 flatten 下來,我揉著酸痛的脖子,開始總結這次的教訓。其實很多問題都是可以提前預防的,以下是我梳理的“防積壓三板斧”,建議寫進運維手冊:  

1. 事前:給 Consumer 裝“儀表盤”,實時監控關鍵指標

別只看“堆積量”,這幾個指標更重要:  

  • 消費延遲(consumeLatency):消息產生到被消費的時間差,超過 10 秒就該警覺  
  • 拉取吞吐量(pullTPS):如果突然下降 50%,可能是網絡或 Broker 有問題  
  • 消費線程池利用率:用 ThreadPoolExecutor.getActiveCount() 監控,長期接近 consumeThreadMax 說明線程不夠用   

我們后來給每個 Consumer 實例加了 Prometheus 監控,配合 Grafana 儀表盤,現在積壓預警比心跳還準。  

2. 事中:準備“應急預案模板”,讓新人也能快速上手

把這次的急救步驟寫成腳本:  

# 快速擴容消費者腳本 
for i in {1..50}; do  
  java -jar consumer.jar \ 
  --consumerGroup order_consumer_tmp \ 
  --namesrvAddr xxx:9876 \ 
  --consumeThreadMin 50 \ 
  --consumeMessageBatchMaxSize 16 \ 
  --clientIP $(curl ifconfig.me) & # 自動獲取公網 IP 
done  

# 暫停死信隊列腳本 
curl -X POST http://rocketmq-dashboard:8080/consumer/update \ 
-H "Content-Type: application/json" \ 
-d '{"groupName":"order_consumer","maxReconsumeTimes":0}'

記住:應急預案一定要定期演練,我們后來組織了一次“積壓模擬演練”,發現腳本里居然有路徑錯誤,還好提前發現,否則實戰時又要抓瞎。  

3. 事后:給消息處理加“保險絲”,防止單個消息拖垮整體

這次發現,90% 的消費延遲都是因為個別“毒消息”(比如超大消息體、格式錯誤)導致的。解決方案:  

  • 設置消息處理超時時間:用 CompletableFuture 包裝業務邏輯,超過 500ms 自動放棄,記錄到日志  
  • 隔離消費線程池:給不同類型的消息分配不同的線程池,比如訂單消息和日志消息分開處理,避免互相影響  
  • 增加本地重試機制:業務代碼里先重試 3 次,失敗后再交給 RocketMQ 的重試隊列,減少 Broker 壓力   

我們給訂單消費加了本地重試后,RocketMQ 的重試次數下降了 60%,消費速度穩定多了。  

五、總結:千萬級積壓不可怕,怕的是沒有“系統化思維”

回顧這次戰斗,我最大的感悟是:處理積壓不是“頭痛醫頭腳痛醫腳”,而是要從“生產 - 存儲 - 消費”全鏈路分析。比如這次我們只盯著消費者擴容,卻忽略了 Producer 端的流量控制,以及 Broker 端的磁盤 IO 瓶頸。  


責任編輯:武曉燕 來源: 石杉的架構筆記
相關推薦

2025-10-27 01:11:00

2024-08-02 10:55:30

2025-03-28 08:40:00

C#異步編程

2024-10-09 08:09:11

2024-11-20 18:16:39

MyBatis批量操作數據庫

2025-05-16 10:53:43

開發異步編程JavaScrip

2021-06-09 08:21:14

Webpack環境變量前端

2021-06-26 15:31:25

Dubbo應用級服務

2022-03-31 08:26:44

RocketMQ消息排查

2023-12-21 08:01:41

RocketMQ消息堆積

2022-03-14 11:05:01

RocketMQRedis緩存

2025-02-08 08:42:40

Kafka消息性能

2024-04-23 08:46:45

消息積壓KafkaMQ

2024-12-12 14:56:48

消息積壓MQ分區

2025-04-02 08:17:42

2025-06-27 07:15:30

2023-08-03 07:13:59

2025-06-03 06:30:05

2022-06-27 11:20:13

工具內存GO

2022-02-07 08:55:57

Go程序代碼
點贊
收藏

51CTO技術棧公眾號

69久久夜色精品国产69蝌蚪网| 亚洲国产岛国毛片在线| 欧美理论电影在线播放| 在线中文字日产幕| 亚洲女同志freevdieo| 国产婷婷色一区二区三区| 91精品国产综合久久久久久蜜臀| 欧产日产国产v| 久久香蕉精品香蕉| 在线观看区一区二| 国产911在线观看| 午夜视频福利在线| 国精产品一区一区三区mba视频 | 性感美女一区二区三区| 成人在线爆射| 一区二区三区四区在线免费观看 | av一区二区高清| 日韩一区二区精品葵司在线| 国产91对白刺激露脸在线观看| 香蕉视频在线看| 不卡av在线免费观看| 国产精品三级网站| 在线观看亚洲欧美| 国产韩国精品一区二区三区| 亚洲激情第一页| 亚洲18在线看污www麻豆| av资源在线| 亚洲免费在线播放| 亚洲国产精品一区二区第一页 | 国产视频一区在线| 自拍一级黄色片| 午夜精品久久久久久久久久蜜桃| 一区二区三区国产精品| 性欧美.com| 亚洲日本中文字幕在线| 国产精品一二三四| 成人黄色av网| 亚洲午夜在线播放| 久久久久久婷| 97视频在线观看网址| 91人妻一区二区三区蜜臀| 欧美一区二区性| 亚洲欧美国产一本综合首页| 97精品人妻一区二区三区蜜桃| 91精品国产一区二区在线观看| 在线这里只有精品| 男女视频一区二区三区| 亚洲国产欧美日本视频| 五月婷婷综合激情| 欧美中日韩在线| 黄色成人影院| 亚洲视频在线观看一区| 一区二区日本伦理| 日韩免费啪啪| 亚洲欧洲精品一区二区三区不卡| 亚洲精品高清国产一线久久| 国产私拍精品| 久久久精品免费免费| 久久久久久国产精品mv| 色综合久久久久久| 97se亚洲国产综合自在线不卡| 国产亚洲精品自在久久| 免费观看国产精品| av成人免费在线| 久久99精品久久久久久久青青日本 | 在线播放麻豆| 中文字幕一区二区三区四区| 亚洲一区二区三区在线观看视频| 幼a在线观看| 亚洲美女一区二区三区| 丁香色欲久久久久久综合网| 美女精品导航| 欧美日韩国产一区中文午夜| 看av免费毛片手机播放 | 国产精品高清免费在线观看| 国产一级片av| 老司机午夜精品| 亚洲一区二区三| 人人妻人人澡人人爽久久av| 久久亚洲免费视频| 亚洲精品成人久久久998| 国产欧美久久久久久久久| 亚洲愉拍自拍另类高清精品| 日韩欧美视频网站| 久久电影天堂| 欧美刺激脚交jootjob| 污污污www精品国产网站| 色老板在线视频一区二区| 亚洲性生活视频| 天堂а√在线中文在线鲁大师| 午夜精品av| 88xx成人精品| 在线免费av网| 成人激情视频网站| 日本一区免费在线观看| 一本一道波多野毛片中文在线| 樱桃视频在线观看一区| 六月丁香激情网| 久久久久久久性潮| 精品国产乱子伦一区| 欧美色图亚洲激情| 99久久精品网| 97av视频在线| 国产精品视频久久久久久| 丁香五精品蜜臀久久久久99网站 | 亚洲人视频在线观看| 国产欧美一区二区精品婷婷| 法国空姐在线观看免费| 亚洲人体视频| 日韩午夜av一区| 无遮挡aaaaa大片免费看| 欧美aaaa视频| 欧美在线视频免费播放| 国产日韩免费视频| 久久综合色鬼综合色| 国产日本欧美在线| 在线观看欧美日韩电影| 日韩欧美一级二级三级| 中文幕无线码中文字蜜桃| 欧美成人国产| 国产精品中文字幕久久久| 国产成人手机在线| 中文字幕制服丝袜一区二区三区 | 精品视频第一页| 亚洲国产日本| 亚洲xxxxx| 91在线免费看| 精品美女久久久久久免费| 中文字幕在线视频一区二区三区| 婷婷精品视频| 久久免费在线观看| 国产jzjzjz丝袜老师水多| 国产欧美一区二区三区在线看蜜臀 | 国产一二在线观看| 精品日韩视频在线观看| 亚洲美女高潮久久久| 亚洲国产精品日韩专区av有中文| 国产精品久久久久久久久免费看 | www.久久久.com| 在线观看精品国产视频| 欧产日产国产69| 99国产精品久久久久久久久久| 800av在线免费观看| 麻豆一二三区精品蜜桃| 久久激情视频久久| 91超薄丝袜肉丝一区二区| 国产日产亚洲精品系列| 国产真实乱子伦| 日韩深夜影院| 国内精品久久久久久久| 亚洲成a人片在线| 亚洲精品视频在线看| 亚洲制服中文字幕| 影音先锋日韩在线| 96pao国产成视频永久免费| 免费在线观看av| 538在线一区二区精品国产| 久久久久麻豆v国产| 奇米影视一区二区三区小说| 色综合视频二区偷拍在线| 亚洲成人短视频| 亚洲桃花岛网站| 欧美 亚洲 另类 激情 另类| 国产欧美日本一区二区三区| 精品999在线| 日韩欧美中字| 3d蒂法精品啪啪一区二区免费| 成人免费看片| 欧美xxxx在线观看| 日韩三级免费看| 2023国产一二三区日本精品2022| 欧美日韩亚洲第一| av资源久久| 91午夜在线播放| 国产高清在线a视频大全| 亚洲第一av网站| 精品国产xxx| 国产精品成人午夜| 中文字幕人妻熟女人妻a片| 黑人一区二区三区四区五区| 蜜桃av色综合| 亚洲综合视频| 欧美福利视频在线观看| 天堂资源中文在线| 欧美亚洲愉拍一区二区| www.97视频| www.欧美亚洲| 在线观看亚洲色图| 欧美日韩中文| 美女一区视频| 久久伊人久久| 青草热久免费精品视频| 好了av在线| 日韩精品在线免费播放| 91久久国语露脸精品国产高跟| 一区二区三区毛片| 亚洲一区视频在线播放| 国产麻豆精品95视频| 男人操女人逼免费视频| 日韩专区精品| 久久av一区二区三区漫画| 精品福利在线| 人体精品一二三区| mm1313亚洲国产精品美女| 亚洲欧美精品在线| 性一交一乱一精一晶| 欧美中文字幕一二三区视频| 国产一级片免费看| 国产精品婷婷午夜在线观看| 亚洲图片综合网| 国产一区视频网站| 中文字幕在线观看第三页| 红桃视频国产精品| 一区二区三区视频| 国产精品免费大片| 国产一区不卡在线观看| 亚洲在线资源| 国产精品久久国产精品99gif| 国产精品国精产品一二| 久久影院免费观看| 992tv免费直播在线观看| 日韩av一区二区在线观看| 国产日韩一级片| 欧美在线观看一区| 亚洲免费黄色网址| 亚洲综合一二区| 欧美黄色aaa| 国产精品乱码一区二区三区软件 | 欧美三级午夜理伦三级在线观看 | www.亚洲黄色| 欧美日韩在线一区二区| 欧美黄色一级大片| 欧美午夜激情在线| 国产小视频在线免费观看| 亚洲一区视频在线| 国产亚洲精品成人| 亚洲午夜激情网页| 黄色一级视频免费观看| 一区二区三区中文字幕精品精品| 日本 欧美 国产| 国产精品剧情在线亚洲| 精品日韩在线视频| 中文在线资源观看网站视频免费不卡| 四虎永久免费影院| 久久综合九色综合97婷婷| aa片在线观看视频在线播放| av欧美精品.com| 97人妻天天摸天天爽天天| 99视频精品免费视频| 日韩免费高清一区二区| 99久久99久久免费精品蜜臀| 国产伦精品一区三区精东| 99re66热这里只有精品3直播| 国产人妻黑人一区二区三区| 成人国产精品免费观看动漫| 无码成人精品区在线观看| 91尤物视频在线观看| 亚洲一区二区三区无码久久| 91免费观看视频在线| 亚洲熟妇一区二区三区| 久久久亚洲精品石原莉奈| 免费看黄色三级| 国产精品久久久久久久岛一牛影视| 99自拍偷拍视频| 17c精品麻豆一区二区免费| 欧美偷拍第一页| 亚洲国产精品久久一线不卡| 国产污视频在线观看| 精品国产成人av| 日韩欧美在线观看免费| 精品视频123区在线观看| 99久久久国产精品无码网爆| 精品国产伦一区二区三区观看体验| 亚洲色欧美另类| 中国china体内裑精亚洲片| 九义人在线观看完整免费版电视剧| 欧美人与性动交a欧美精品| 大菠萝精品导航| 国产精品老牛影院在线观看| 在线观看亚洲精品福利片| 操一操视频一区| 你懂的视频欧美| 天天做天天爱天天高潮| 亚洲精品精选| 亚洲黄色小视频在线观看| 国产成人鲁色资源国产91色综| 一级特黄a大片免费| 国产精品久久久久久久久免费樱桃 | 午夜免费福利在线| 国产成人在线视频网站| 亚洲国产精品自拍视频| 亚洲欧美综合在线精品| 久久9999久久免费精品国产| 欧美性色aⅴ视频一区日韩精品| 国产情侣av在线| 日韩电影中文字幕| 麻豆视频在线| 91av国产在线| 成人在线精品| 欧美激情第六页| 伊人久久大香线蕉综合四虎小说 | 久久uomeier| 91传媒视频免费| 精品日韩免费| av女优在线播放| 六月婷婷色综合| 成人在线视频免费播放| 国产精品每日更新| 中文字幕精品三级久久久| 在线电影院国产精品| 日韩a在线观看| 九九久久国产精品| 国产精品videossex撒尿| 国产在线资源一区| 亚洲精品一二三区区别| 欧美在线观看视频网站| 99久久精品费精品国产一区二区 | 欧美日韩免费看| av av片在线看| 中文字幕视频一区二区在线有码| 岛国av免费在线观看| 9a蜜桃久久久久久免费| 久久久久蜜桃| 污色网站在线观看| 久久久精品国产99久久精品芒果| 国产性生活网站| 91精品免费在线观看| h视频网站在线观看| 2020欧美日韩在线视频| 超碰精品在线| 日韩精品手机在线观看| 国内外成人在线| 中国美女黄色一级片| 在线观看www91| 你懂的在线观看视频网站| 性日韩欧美在线视频| 91综合精品国产丝袜长腿久久| 免费成人深夜夜行网站视频| 久久精品免费看| 亚洲女人毛茸茸高潮| 欧美性受极品xxxx喷水| 福利视频在线看| 国产精品视频中文字幕91| 精品日韩一区| 能看的毛片网站| 国产精品嫩草99a| 中文字幕一区二区人妻痴汉电车| 一区二区亚洲欧洲国产日韩| 日韩国产网站| 亚洲欧美国产一区二区| 麻豆91精品视频| 国产精品精品软件男同| 欧美一区二区三区影视| 日本在线观看高清完整版| 高清国产一区| 亚洲国产清纯| 全黄一级裸体片| 欧洲精品在线观看| 99se视频在线观看| 成人激情在线播放| 欧美久久一级| 中文字幕天堂av| 欧美日韩另类字幕中文| 精品999视频| 国产噜噜噜噜久久久久久久久| 天天综合精品| 18禁一区二区三区| 亚洲午夜久久久久久久久久久 | 四虎4545www国产精品| 日本在线观看一区二区三区| 奇米一区二区三区av| 老熟妻内射精品一区| 日韩欧美国产精品| 国产v日韩v欧美v| 日韩一区国产在线观看| 国产综合成人久久大片91| 日干夜干天天干| 亚洲色图第一页| 福利一区三区| 成人一区二区免费视频| 久久男人中文字幕资源站| 中文字幕精品无码亚| 久久综合亚洲社区| 欧美日韩大片免费观看| 国产又大又黄又粗又爽| 亚洲一线二线三线久久久| 国产主播福利在线| 91免费看网站| 免费亚洲网站| 日韩欧美国产成人精品免费| 日韩成人免费视频| 亚洲黑人在线| 国产原创中文在线观看 | 韩国精品在线观看| 日韩av电影网| 久久精品美女视频网站| 欧美挤奶吃奶水xxxxx| 亚洲另类第一页| 激情懂色av一区av二区av| 日本视频在线观看|