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

團隊冒死升級 Spring Boot 3.5,云賬單驚現(xiàn) 45% 降幅!

開發(fā) 前端
我們還在用 Spring Boot 2.7,配套的 Tomcat 9 簡直就是資源黑洞。每個 HTTP 請求都要新建一個線程,高峰期線程數(shù)輕松破千,光 JVM 線程棧就吃掉 2GB 內(nèi)存。有次做壓測,300 個并發(fā)直接把 4 核 8G 的服務(wù)器壓到 CPU 飆紅,監(jiān)控圖活像心電圖。

兄弟們,凌晨三點,運維小哥的監(jiān)控大屏突然炸開了鍋 —— 不是服務(wù)器掛了,而是阿里云賬單預(yù)警短信像過年的鞭炮似的瘋狂轟炸手機。看著當(dāng)月同比暴漲 60% 的云服務(wù)器費用,技術(shù)總監(jiān)老王的保溫杯 "咣當(dāng)" 摔在地上:"上個月剛被財務(wù)小姐姐指著鼻子罵,這個月怕不是要卷鋪蓋走人?"

就是在這種生死存亡的壓力下,我們團隊咬著牙開啟了 Spring Boot 3.5 的升級冒險。本以為會像以往版本升級那樣踩滿坑,沒想到三個月后拉賬單時,全組人都驚掉了下巴 —— 云賬單直接砍了 45%!更驚喜的是,系統(tǒng)吞吐量提升了 30%,接口平均響應(yīng)時間從 800ms 降到了 500ms 以下。這波操作堪稱技術(shù)人用代碼省出年終獎的教科書級案例,今天就把我們淌過的河、踩過的坑,還有挖到的寶藏統(tǒng)統(tǒng)抖出來。

一、升級前的靈魂三問:為什么非升不可?

其實年初做技術(shù)規(guī)劃時,我們就盯上了 Spring Boot 3.5 的新特性,但一直被 "生產(chǎn)環(huán)境穩(wěn)定第一" 的魔咒按在地上摩擦。直到云賬單爆炸式增長,我們才痛定思痛,把三個核心痛點擺到臺面上:

1. 老版本 Tomcat 像頭吞資源的笨象

我們還在用 Spring Boot 2.7,配套的 Tomcat 9 簡直就是資源黑洞。每個 HTTP 請求都要新建一個線程,高峰期線程數(shù)輕松破千,光 JVM 線程棧就吃掉 2GB 內(nèi)存。有次做壓測,300 個并發(fā)直接把 4 核 8G 的服務(wù)器壓到 CPU 飆紅,監(jiān)控圖活像心電圖。

2. 微服務(wù)調(diào)用在玩 "俄羅斯套娃"

公司搞微服務(wù)化后,一個簡單的查詢請求要穿越 5、6 個服務(wù),每個服務(wù)都用 RestTemplate 同步調(diào)用,層層阻塞像極了俄羅斯套娃。某次大促時,下游服務(wù)稍微卡頓,上游直接被拖成 "慢羊羊",整個調(diào)用鏈的吞吐量慘不忍睹。

3. 云原生時代的 "恐龍級" 配置

看著隔壁團隊用 K8s 玩得風(fēng)生水起,我們卻還在用傳統(tǒng)的 YAML 配置文件管理資源。手動配置的線程池參數(shù)永遠(yuǎn)跟不上流量變化,高峰期只能靠堆服務(wù)器硬扛,賬單能不漲嗎?用運維小哥的話說:"我們這是在用拖拉機跑高速公路。"

帶著這些痛點,我們翻開了 Spring Boot 3.5 的官方文檔,一眼就相中了幾個能救命的新特性:HTTP/2 支持、Tomcat 線程池優(yōu)化、反應(yīng)式編程增強,還有和 K8s 更絲滑的集成。但升級之路從來不是一帆風(fēng)順,光兼容性問題就差點讓我們折戟沉沙。

二、開門紅?不,是開門 "坑"!

第一個坑就埋在 Spring Boot 3.5 的最低 JDK 版本要求上 —— 必須 JDK 17+。我們老項目還在用 JDK 11,本以為升級 JDK 是小事,結(jié)果啟動時就報錯:"java.lang.UnsupportedClassVersionError: xxx has been compiled by a more recent version of the Java Runtime (class file version 61.0), this version of the Java Runtime only recognizes class file versions up to 55.0"。沒辦法,只能先花兩周時間把整個項目的 JDK 環(huán)境升級到 JDK 17,期間還解決了不少老舊依賴不兼容的問題,比如 Fastjson 1.x 在 JDK 17 下的序列化漏洞。

第二個坑是 Tomcat 容器的變化。Spring Boot 3.5 默認(rèn)啟用了 Tomcat 的 Maven 依賴管理,結(jié)果我們自定義的 Tomcat 配置文件突然失效了。原來新版本對配置文件的加載路徑做了調(diào)整,我們在 application.properties 里配置的 server.tomcat.max-threads 參數(shù)怎么都不生效,最后翻遍官方文檔才發(fā)現(xiàn),需要在 application.yml 里用 server.thread-pool.max-threads 來配置。這種細(xì)節(jié)變化真是防不勝防。

不過真正讓我們冷汗直冒的,是數(shù)據(jù)庫連接池的兼容性問題。我們用的 HikariCP 版本太低,在 Spring Boot 3.5 里和新的數(shù)據(jù)庫驅(qū)動包沖突,啟動時直接報 ClassNotFoundException。沒辦法,只能硬著頭皮升級 HikariCP 到最新版本,順便把數(shù)據(jù)庫驅(qū)動從 mysql-connector-java 8.0 升級到 8.1,這期間還修復(fù)了幾個因驅(qū)動版本差異導(dǎo)致的 SQL 語法錯誤。

避坑指南:

  1. 先用jdeps --list-dependencies命令掃描老項目依賴,提前發(fā)現(xiàn) JDK 版本不兼容的類庫
  2. 準(zhǔn)備一個干凈的測試環(huán)境,用 Docker 容器模擬生產(chǎn)環(huán)境的 JDK、中間件版本
  3. 建立兼容性問題清單,按 "阻塞升級 > 影響功能 > 性能損耗" 優(yōu)先級逐個攻克

三、省錢第一彈:HTTP/2 讓流量跑成 "高鐵"

熬過了痛苦的兼容性測試,我們迎來了第一個大招 ——HTTP/2 協(xié)議。之前用 HTTP/1.1 時,每個接口請求都要單獨建立 TCP 連接,光三次握手就浪費不少時間,趕上復(fù)雜頁面,光加載靜態(tài)資源就要發(fā)起幾十次請求,瀏覽器的并發(fā)連接數(shù)還被限制在 6 個。用抓包工具分析,發(fā)現(xiàn)每次請求的 RTT(往返時間)平均有 300ms,光網(wǎng)絡(luò)延遲就占了響應(yīng)時間的 40%。

Spring Boot 3.5 對 HTTP/2 的支持簡直是絲滑般順暢,只需要在 application.yml 里加兩行配置:

server:
  ssl:
    enabled: true
    key-store: classpath:keystore.p12
    key-store-password: password
    key-store-type: PKCS12
  port: 443
  http2:
    enabled: true

沒錯,HTTP/2 需要 HTTPS 加持,這也倒逼我們把所有服務(wù)都升級到了 HTTPS。剛開始還擔(dān)心 SSL 加密會增加 CPU 開銷,結(jié)果壓測發(fā)現(xiàn),雖然 CPU 使用率上升了 5%,但整體吞吐量提升了 20%,因為 HTTP/2 的多路復(fù)用特性太香了 —— 同一個 TCP 連接可以同時處理多個請求,再也不用像 HTTP/1.1 那樣排隊等待了。最直觀的變化是靜態(tài)資源加載速度,原來加載一個頁面需要 2 秒,現(xiàn)在 1 秒內(nèi)就能完成,用戶體驗直接起飛。更讓我們驚喜的是頭部壓縮功能。

HTTP/1.1 的請求頭每個都要完整傳輸,像 Cookie 這種大個頭每次都要幾百字節(jié)。HTTP/2 用 HPACK 算法對頭部進行壓縮,相同的請求頭只會傳輸一次,后續(xù)請求用索引代替。我們統(tǒng)計了一下,平均每個請求的頭部大小從 400 字節(jié)降到了 80 字節(jié),光這一項就節(jié)省了 30% 的網(wǎng)絡(luò)流量。按我們每天 1000 萬次請求計算,一個月就能省下幾十 GB 的流量,云服務(wù)商的流量計費賬單直接砍了一刀。

實戰(zhàn)技巧:

  1. 用 Chrome 的開發(fā)者工具查看 "Network" 面板,確認(rèn)請求協(xié)議是否顯示 "h2"
  2. 定期清理無效的 Cookie,減少頭部數(shù)據(jù)量
  3. 對圖片、視頻等大文件啟用服務(wù)器推送(Server Push),提前把相關(guān)資源推送給客戶端

四、Tomcat 線程池:從 "人海戰(zhàn)術(shù)" 到 "精英部隊"

解決了網(wǎng)絡(luò)層的問題,我們把矛頭對準(zhǔn)了 Tomcat 這個吞資源的大戶。老版本的 Tomcat 用的是 BIO 模型,每個請求都要占用一個線程,高峰期線程數(shù)暴增,上下文切換頻繁,CPU 大部分時間都花在了線程調(diào)度上。Spring Boot 3.5 引入了新的 Tomcat 線程池配置,基于 NIO 的 APR 模式,簡直就是為高并發(fā)場景量身定制。

先來看看核心配置參數(shù):

server:
  tomcat:
    thread-pool:
      max-threads: 200
      min-spare-threads: 20
      max-connections: 10000
      accept-count: 1000

這里的 max-threads 不再是傳統(tǒng)的最大線程數(shù),而是 Tomcat 處理業(yè)務(wù)的最大工作線程數(shù)。配合 NIO 的非阻塞 IO,一個線程可以處理多個連接,原來需要 1000 個線程才能處理的并發(fā)量,現(xiàn)在 200 個線程就能輕松搞定。我們做了個對比測試,在 500 并發(fā)下,老版本 Tomcat 的線程數(shù)達到 800+,CPU 使用率 80%;新版本線程數(shù)穩(wěn)定在 200 左右,CPU 使用率降到 50%,內(nèi)存占用更是減少了 40%。

這里還有個小插曲:剛開始我們照搬官方文檔的配置,結(jié)果發(fā)現(xiàn)吞吐量上不去。仔細(xì)分析才知道,max-connections 參數(shù)沒調(diào)好。這個參數(shù)表示 Tomcat 在同一時間能處理的最大連接數(shù),默認(rèn)值是 10000,但我們的服務(wù)器帶寬只有 1Gbps,峰值連接數(shù)根本達不到這個量,過高的配置反而會占用過多的文件描述符。后來我們根據(jù)壓測結(jié)果,把 max-connections 調(diào)到 5000,吞吐量立馬提升了 15%。

性能調(diào)優(yōu)公式:

合理的max-threads = (CPU核心數(shù) * 2) + 1
max-connections = max-threads * 100 (根據(jù)實際帶寬調(diào)整)

五、反應(yīng)式編程:讓阻塞式調(diào)用原地起飛

要說這次升級最顛覆認(rèn)知的,當(dāng)屬反應(yīng)式編程的應(yīng)用。我們有個核心的訂單查詢服務(wù),需要調(diào)用庫存、價格、物流三個下游服務(wù),原來用 RestTemplate 同步調(diào)用,每個調(diào)用都要等待結(jié)果返回,整個流程耗時 800ms 以上。用 Postman 測試時,經(jīng)常能看到 "Pending" 狀態(tài)卡在那里,像極了等外賣時的焦急心情。

Spring Boot 3.5 對 Reactor 框架的支持更加成熟,我們試著把同步調(diào)用改成反應(yīng)式的 WebClient:

Mono<StockResponse> stockMono = webClient.get()
  .uri("/stock/{id}", order.getId())
  .retrieve()
  .bodyToMono(StockResponse.class);
Mono<PriceResponse> priceMono = webClient.get()
  .uri("/price/{id}", order.getId())
  .retrieve()
  .bodyToMono(PriceResponse.class);
Mono<LogisticsResponse> logisticsMono = webClient.get()
  .uri("/logistics/{id}", order.getId())
  .retrieve()
  .bodyToMono(LogisticsResponse.class);
Mono.zip(stockMono, priceMono, logisticsMono)
  .map(tuple3 -> {
    // 合并結(jié)果
    return new OrderResponse(tuple3.getT1(), tuple3.getT2(), tuple3.getT3());
  })
  .block();

這波操作簡直打開了新世界的大門!三個下游調(diào)用變成了并行執(zhí)行,通過 Mono.zip 合并結(jié)果,整個流程耗時直接降到 300ms,相當(dāng)于把原來的串行執(zhí)行變成了并行處理,效率提升了近 3 倍。而且反應(yīng)式編程天生支持背壓(Backpressure),當(dāng)下游服務(wù)處理不過來時,會自動減緩請求發(fā)送速度,避免上游服務(wù)被壓垮,這在微服務(wù)調(diào)用鏈中簡直就是防雪崩的神器。

不過剛開始用反應(yīng)式編程時,團隊里不少老程序員都犯了難,畢竟習(xí)慣了命令式編程,對這種聲明式的寫法很不適應(yīng)。為此我們專門搞了幾次內(nèi)部培訓(xùn),用 "超市購物" 來比喻:同步調(diào)用就像排隊結(jié)賬,必須等前面的人結(jié)完賬才能輪到自己;反應(yīng)式編程就像多個收銀臺同時工作,你把購物車交給收銀員后可以去干別的事,等通知來取就行。這樣一比喻,大家很快就理解了異步非阻塞的概念。

最佳實踐:

  1. 對 IO 密集型接口優(yōu)先使用反應(yīng)式編程,CPU 密集型接口謹(jǐn)慎使用
  2. 利用 Spring Cloud Gateway 搭建反應(yīng)式網(wǎng)關(guān),統(tǒng)一處理跨服務(wù)調(diào)用
  3. 使用 Micrometer 監(jiān)控反應(yīng)式流的背壓情況,及時發(fā)現(xiàn)瓶頸點

六、內(nèi)存管理:讓 JVM 學(xué)會 "斷舍離"

升級到 JDK 17 后,我們順便對 JVM 參數(shù)做了全面優(yōu)化。原來的 JVM 配置還是幾年前的老樣子,用的是 Parallel GC,內(nèi)存碎片多,F(xiàn)ull GC 頻繁,每次 Full GC 都要暫停好幾百毫秒,用戶明顯能感覺到系統(tǒng)卡頓。Spring Boot 3.5 推薦使用 G1 垃圾收集器,我們果斷啟用,并做了針對性配置:

-XX:+UseG1GC
-XX:G1HeapRegionSize=4m
-XX:MaxGCPauseMillis=200
-XX:InitiatingHeapOccupancyPercent=45
-XX:+ParallelRefProcEnabled
-XX:ConcGCThreads=8

這波操作下來,效果立竿見影:Young GC 頻率降低了 30%,F(xiàn)ull GC 幾乎看不到了,內(nèi)存使用率從 80% 降到了 60% 以下。更驚喜的是,系統(tǒng)的響應(yīng)時間穩(wěn)定性大幅提升,99% 的請求響應(yīng)時間控制在了 600ms 以內(nèi),再也不會出現(xiàn)偶爾的 "卡頓毛刺" 了。

這里有個關(guān)鍵參數(shù)需要注意:InitiatingHeapOccupancyPercent,它表示當(dāng)堆內(nèi)存使用達到 45% 時,就開始準(zhǔn)備并發(fā)標(biāo)記,避免堆內(nèi)存耗盡時才被迫進行 Full GC。我們剛開始設(shè)成 50%,結(jié)果發(fā)現(xiàn)并發(fā)標(biāo)記還是有點滯后,調(diào)到 45% 后,GC 性能進一步提升。

內(nèi)存泄漏排查三板斧:

  1. 用 JVisualVM 實時監(jiān)控內(nèi)存使用情況,重點關(guān)注 Survivor 區(qū)和老年代的變化
  2. 定期生成堆轉(zhuǎn)儲文件,用 MAT 工具分析大對象和引用鏈
  3. 啟用 GC 日志分析,推薦使用 GCEasy 在線工具,一鍵生成分析報告

七、云原生集成:和 K8s 組個 "最佳拍檔"

最后不得不提 Spring Boot 3.5 對云原生的深度集成,尤其是和 K8s 的配合簡直天衣無縫。我們原來的 Pod 資源配置全靠手動估算,經(jīng)常出現(xiàn) "資源浪費" 和 "資源不足" 兩種極端情況。現(xiàn)在利用 Spring Boot 的 K8s 探針(Liveness Probe、Readiness Probe),可以精準(zhǔn)控制 Pod 的啟動和銷毀,配合 Horizontal Pod Autoscaler(HPA),自動根據(jù) CPU 使用率調(diào)整 Pod 數(shù)量,高峰期自動擴容到 20 個 Pod,低谷期縮容到 5 個,資源利用率提升了 50%,賬單自然就降下來了。

還有個隱藏技能:Spring Boot 3.5 支持 K8s 的 ConfigMap 和 Secret 動態(tài)加載,我們再也不用為了改一個配置而重啟整個服務(wù)了。通過 K8s 的 API 實時監(jiān)聽配置變化,自動刷新應(yīng)用內(nèi)的配置,這個功能在灰度發(fā)布和 A/B 測試中簡直不要太好用。

K8s 優(yōu)化清單:

  1. 為每個微服務(wù)設(shè)置合理的 requests 和 limits,避免資源競爭
  2. 啟用 Pod 優(yōu)先級和搶占機制,保證核心服務(wù)的資源供給
  3. 利用 K8s 的網(wǎng)絡(luò)策略(NetworkPolicy)隔離微服務(wù),減少不必要的網(wǎng)絡(luò)開銷

八、升級后的 "意外之喜"

除了肉眼可見的賬單下降,這次升級還給我們帶來了不少意外收獲:

1. 開發(fā)效率提升 30%

Spring Boot 3.5 的 DevTools 做了重大升級,自動重啟速度提升了 50%,熱部署支持的類庫更多了。現(xiàn)在改完代碼保存,不到 3 秒就能看到效果,再也不用像以前那樣等 10 幾秒了,光這一項就節(jié)省了大量開發(fā)時間。

2. 單元測試跑得更快了

新版的 Spring Test 框架優(yōu)化了上下文加載機制,我們的集成測試平均耗時從 5 分鐘降到了 3 分鐘,CI/CD 流水線的整體耗時減少了 40%,每天能多跑幾輪測試,質(zhì)量保障更到位了。

3. 監(jiān)控體系更完善了

Spring Boot 3.5 原生支持 Micrometer 1.10+,可以直接輸出 Prometheus 格式的監(jiān)控指標(biāo),配合 Grafana 做可視化監(jiān)控,現(xiàn)在能實時看到每個接口的吞吐量、錯誤率、響應(yīng)時間,定位問題比以前快了 10 倍。

九、給準(zhǔn)備升級的同行的幾點忠告

  1. 別想一口吃成胖子:分階段升級,先升級核心服務(wù),再逐步過渡邊緣服務(wù),我們就是先升級了訂單、支付這些高流量服務(wù),積累經(jīng)驗后再推到全鏈路。
  2. 壓測一定要到位:用 JMeter、Gatling 等工具模擬真實流量,我們在壓測時發(fā)現(xiàn)了 3 個隱藏的性能瓶頸,都是平時測試環(huán)境沒暴露出來的。
  3. 團隊培訓(xùn)不能少:反應(yīng)式編程、HTTP/2 等新技術(shù)對開發(fā)人員有挑戰(zhàn),提前組織內(nèi)部培訓(xùn),避免升級后代碼寫得五花八門。
  4. 監(jiān)控先行:升級前搭好全鏈路監(jiān)控,包括 APM、日志、Metrics,我們靠 Prometheus+Grafana 實時監(jiān)控升級后的各項指標(biāo),及時發(fā)現(xiàn)并解決了好幾個性能問題。

尾聲:技術(shù)升級不是冒險,是投資

回顧這次九死一生的升級之旅,我們最大的感悟是:技術(shù)升級從來不是為了追新,而是為了解決實際問題。當(dāng)云賬單像脫韁的野馬狂奔時,Spring Boot 3.5 的新特性就像一套精準(zhǔn)的剎車系統(tǒng),不僅幫我們剎住了成本,還讓系統(tǒng)性能實現(xiàn)了跨越式提升。

現(xiàn)在再看財務(wù)小姐姐的眼神,從原來的 "death stare" 變成了 "星星眼",就連隔壁組的同事都來取經(jīng)。最爽的是上周例會上,老王把新賬單往桌上一拍:"就這成本控制水平,年底獎金不漲都說不過去!"

當(dāng)然,升級過程中踩過的坑、掉過的淚,只有我們自己知道。但當(dāng)看到系統(tǒng)吞吐量飆升、用戶投訴大減、賬單數(shù)字狂降時,一切都是值得的。這也讓我們更加堅信:在技術(shù)的世界里,沒有白走的路,每一步都算數(shù)。

如果你所在的團隊還在為高成本、低性能發(fā)愁,不妨試試 Spring Boot 3.5 的升級套餐,說不定下一個讓財務(wù)小姐姐驚嘆的,就是你!

責(zé)任編輯:武曉燕 來源: 石杉的架構(gòu)筆記
相關(guān)推薦

2009-03-09 17:30:00

2021-03-12 09:50:08

曙光

2011-03-28 15:00:16

2010-11-09 09:44:23

2014-11-06 09:52:33

2012-07-25 09:25:38

惡意程序蠕蟲病毒

2012-08-06 14:43:05

Mountain Li操作系統(tǒng)

2015-08-06 19:05:09

2022-12-19 15:30:23

iOS蘋果功能

2016-08-29 21:09:32

2010-11-29 14:05:29

2017-05-18 13:17:18

2010-11-11 13:20:41

2022-12-25 16:21:59

iOS蘋果bug

2025-09-01 01:33:00

2013-03-26 11:11:38

Windows Blu文件管理器

2013-06-05 13:56:11

2021-10-24 08:24:34

WinRAR遠(yuǎn)程代碼漏洞

2024-05-17 10:10:59

Web容器Undertow

2013-01-28 16:31:44

點贊
收藏

51CTO技術(shù)棧公眾號

91精品国产91久久久久久密臀 | 亚洲欧美成人| 亚洲美女自拍视频| 中文字幕视频三区| 欧美色图天堂| 丁香六月婷婷综合| 精品freesex老太交| 8x8x8国产精品| koreanbj精品视频一区| 黄色在线免费网站| 久久影院视频免费| http;//www.99re视频| www.久久久久久久| 欧美午夜一区| 中文字幕精品国产| 性欧美成人播放77777| 91精品一久久香蕉国产线看观看 | 国产suv精品一区二区883| 欧美在线视频网| 欧美成人一二三区| 日韩精品不卡一区二区| 欧美人狂配大交3d怪物一区| 免费成人在线视频网站| 高清全集视频免费在线| 久久久精品欧美丰满| 国产精品区一区二区三含羞草| 一区二区视频播放| 久久国产毛片| 88xx成人精品| 欧美成人精品激情在线视频| 青青草成人影院| 亚洲女人天堂av| 亚洲天堂av网站| 欧美视频精品全部免费观看| 欧美色大人视频| 欧美私人情侣网站| aa视频在线观看| 亚洲自拍与偷拍| 久久久久久久久网| 日本在线看片免费人成视1000| 久久久久久久一区| 美脚丝袜一区二区三区在线观看| 91精品天堂| 亚洲一区二区自偷自拍| 日韩理论电影中文字幕| 亚洲成人动漫在线播放| 韩国av中国字幕| 亚洲精品一区国产| 日韩小视频在线观看专区| 亚洲五月激情网| 国产精品欧美一区二区三区不卡| 欧美日韩日日夜夜| 亚洲黄色av网址| 99riav视频一区二区| 欧美无人高清视频在线观看| 啊啊啊国产视频| 日本欧美韩国| 69久久夜色精品国产69蝌蚪网 | 国产乱码精品一区二区三区忘忧草| 国产精品久久久久久av下载红粉| 亚洲 欧美 中文字幕| 久久久久在线| 国产精品电影网| 夜夜躁很很躁日日躁麻豆| 美女视频黄久久| 成人国产精品免费视频| 99久久亚洲精品日本无码| 国产精品一区在线| 亚洲超丰满肉感bbw| 2019国产精品视频| 精品国产无码一区二区| 成人激情av网| 欧美激情www| av电影在线网| 亚洲免费视频中文字幕| 日本一区午夜艳熟免费| 深夜在线视频| 欧美日韩国产大片| 色婷婷狠狠18禁久久| heyzo欧美激情| 亚洲欧美成人在线| frxxee中国xxx麻豆hd| 欧美日本国产| 欧美最顶级的aⅴ艳星| 黄色一区二区视频| 国产成人在线视频免费播放| 精品乱色一区二区中文字幕| 爱久久·www| 一区二区三区中文免费| 高清在线观看免费| 久久久国产精品网站| 精品日韩在线观看| 国产真人做爰视频免费| 中文字幕一区二区三区欧美日韩| 97精品欧美一区二区三区| 午夜免费福利网站| 秋霞网一区二区三区| 日韩高清在线免费观看| 啊v视频在线一区二区三区| 精品无码人妻一区二区三区品 | 一区二区三区四区蜜桃| 动漫av网站免费观看| av成人在线网站| 精品网站999www| 黄色一级片中国| 日韩电影在线免费观看| 国产成人免费观看| 日本福利专区在线观看| 疯狂欧美牲乱大交777| 亚洲午夜精品一区| 最新精品国偷自产在线| 欧美日韩国产二区| 一区二区www| 久久久久九九视频| 黄色一级片黄色| 日韩福利影视| 亚洲欧美日韩成人| 免费观看一级视频| 韩日精品视频一区| 日韩欧美一区二区三区四区五区| xxx性欧美| 欧美一三区三区四区免费在线看| 天天躁日日躁aaaa视频| 亚洲精品黄色| 亚洲护士老师的毛茸茸最新章节| 欧洲亚洲免费视频| 波多野结衣黄色| 91污在线观看| 欧美精品久久久久久久久久久| 亚洲日本中文| 最好看的2019的中文字幕视频| 日韩激情一区二区三区| 国产一区二区毛片| 一区二区在线高清视频| 亚洲第一会所| 亚洲天堂av在线播放| 亚洲国产成人精品激情在线| 国产aⅴ综合色| 波多野结衣与黑人| 麻豆国产一区二区三区四区| 久久九九免费视频| 国产乱色精品成人免费视频| 中文字幕精品在线不卡| 国产精品人人爽人人爽| 国产亚洲第一伦理第一区| 欧美在线视频免费| 女人偷人在线视频| 色欧美日韩亚洲| 三上悠亚影音先锋| 日日夜夜免费精品| 视频一区视频二区视频三区视频四区国产 | 午夜视频一区二区在线观看| 欧美裸体xxxx极品少妇| av无码精品一区二区三区宅噜噜| 91精品尤物| 久久久精品黄色| 少妇无码av无码专区在线观看| 久久黄色影视| 欧美中文字幕第一页| 欧美大片aaa| 欧美在线视频全部完| 午夜国产福利视频| 国产一区二区视频在线| 黄色一级片黄色| 免费日韩一区二区三区| 全球成人中文在线| 1769视频在线播放免费观看| 欧美丰满少妇xxxxx高潮对白| 天堂а√在线中文在线鲁大师| 极品美女销魂一区二区三区| 少妇大叫太大太粗太爽了a片小说| 高清一区二区三区| 日本三级韩国三级久久| 在线中文资源天堂| 欧美大胆一级视频| 天天爽夜夜爽人人爽| 国产精品午夜电影| 在线播放国产视频| 久久综合九色综合欧美狠狠| 一区二区三区四区视频在线| 视频二区欧美| 欧美专区在线播放| 免费黄色电影在线观看| 精品国产乱码久久久久久蜜臀| 国产免费观看av| 国产精品女同一区二区三区| 欧美xxxx黑人| 日韩影院在线观看| 在线观看污视频| 人体久久天天| 成人激情电影一区二区| av漫画网站在线观看| 中文字幕精品久久| 欧美一区二区三区黄片| 欧亚洲嫩模精品一区三区| 欧美高清视频一区二区三区| 久久青草欧美一区二区三区| 亚洲五月激情网| 免费在线成人| 69精品丰满人妻无码视频a片| 免费视频国产一区| dy888夜精品国产专区| 巨茎人妖videos另类| 欧美肥婆姓交大片| 在线中文资源天堂| 日韩精品中文在线观看| 99久久久国产精品无码网爆| 欧日韩精品视频| 韩国av中文字幕| 玉米视频成人免费看| 精品1区2区| 成人毛片一区二区三区| 亚洲一区二区在线免费观看视频 | 2019中文字幕免费视频| 精品麻豆一区二区三区| 亚洲女人被黑人巨大进入| 刘玥91精选国产在线观看| 欧美欧美午夜aⅴ在线观看| 国产黄色免费观看| 亚洲国产精品久久久久婷婷884 | 国产一区第一页| 91亚洲国产成人精品一区二区三| 国产不卡的av| 狠狠色狠狠色综合系列| 一区二区三区视频在线观看免费| 国产精品一区毛片| 国产综合中文字幕| 国产真实久久| 欧美精品一区二区性色a+v| 国产一区日韩| 日本一区视频在线观看| 色综合久久中文| 国产在线一区二| 国内精品免费| 国产精品免费看一区二区三区| 欧美日韩午夜电影网| 2022国产精品| 日本一区二区三区电影免费观看 | 大香煮伊手机一区| 亚洲一区国产| 日本www在线视频| 亚洲国产专区| 免费一级特黄特色毛片久久看| 国产精品sm| 国产精品自拍合集| 激情视频一区| 亚洲不卡中文字幕无码| 99国产精品久久久久久久| 亚洲国产精品无码av| 亚洲三级色网| 久久精品香蕉视频| 日韩精品亚洲一区二区三区免费| 熟女性饥渴一区二区三区| 久久福利影视| 一级片视频免费观看| 久久99九九99精品| 中文字幕人妻无码系列第三区| 国产精品123| 无码人妻精品一区二区三| 成a人片亚洲日本久久| 9.1成人看片| 国产欧美一区二区三区沐欲| 亚洲色图欧美色| 亚洲精品视频在线| www亚洲国产| 视频污在线观看| 亚洲成人精品视频在线观看| 四季av日韩精品一区| 亚洲久久久久久久久久久| av中文字幕一区二区三区| 最近2019免费中文字幕视频三| 国产成人高清精品| 欧美激情视频给我| 卡通欧美亚洲| 亚洲va电影大全| 日韩av系列| 一区二区日本| 亚洲人成久久| 亚洲免费av一区| 成人激情av网| 91视频免费看片| 亚洲图片有声小说| 国产成人a v| 欧美成人vps| 国产一级在线观看| 久久综合久久88| 自拍在线观看| 91亚洲精品视频| 精品在线观看入口| 中文字幕乱码免费| 久久国产福利| 亚洲911精品成人18网站| 久久影院视频免费| 黄色片在线观看网站| 色综合视频在线观看| 国产精品国产三级国产aⅴ| 亚洲国产私拍精品国模在线观看| 在线免费看黄| 国产91精品久久久| 久久久91麻豆精品国产一区| 欧美在线3区| 好吊一区二区三区| 99sesese| 久久久久久久久久久久久夜| 激情五月婷婷在线| 欧美在线观看视频一区二区三区| 亚洲第一页在线观看| 在线激情影院一区| 高清在线视频不卡| 99精彩视频在线观看免费| 成人羞羞动漫| 97成人在线观看视频| 成人性生交大片免费看中文网站| 欧美日韩生活片| 狠狠干狠狠久久| 亚洲精品免费在线观看视频| 在线精品播放av| 国偷自产一区二区免费视频| 国产女主播一区二区| 在线观看国产精品入口| 色国产在线视频| 欧美激情中文字幕一区二区| 国产成人自拍视频在线| 欧美变态口味重另类| 草莓福利社区在线| 成人在线视频网站| 日韩综合一区| 尤蜜粉嫩av国产一区二区三区| 97精品国产露脸对白| 日韩欧美三级在线观看| 欧美成人午夜电影| 中文字幕中文字幕在线中高清免费版 | 欧美大黑bbbbbbbbb在线| 免费无码国产v片在线观看| 岛国精品一区二区| 加勒比婷婷色综合久久| 777精品伊人久久久久大香线蕉| 最新国产在线观看| 国产精品免费在线免费 | 视频一区中文字幕精品| 日韩第一页在线观看| 久久成人羞羞网站| 麻豆视频免费在线播放| 欧美揉bbbbb揉bbbbb| av大片在线观看| 国产欧美久久久久久| 99久久精品费精品国产| 九九九九九国产| 亚洲精品五月天| 亚洲av综合色区无码一二三区 | 日韩成人一区二区三区| 亚洲成人黄色网址| 女海盗2成人h版中文字幕| 欧美成人综合一区| 日本欧美一区二区在线观看| 极品尤物一区二区| 欧美精品日韩综合在线| 国产区在线观看| 99国产超薄丝袜足j在线观看 | 亚洲欧洲成人在线| 欧美综合激情网| heyzo久久| 亚洲三级在线视频| 亚洲不卡在线观看| 国产在线视频你懂得| 国产欧美精品在线播放| 午夜久久影院| 久久无码人妻精品一区二区三区| 欧美最猛性xxxxx直播| 黄网页在线观看| 国产私拍一区| 人禽交欧美网站| 九九视频在线观看| 亚洲免费电影一区| 亚洲18在线| 免费观看国产精品视频| 久久精品免视看| 国产人妻精品一区二区三区| 欧美激情成人在线视频| 婷婷成人综合| 国内国产精品天干天干| 亚洲图片自拍偷拍| 成a人v在线播放| 91一区二区三区| 天堂蜜桃91精品| 久久久综合久久久| 在线视频一区二区| 成人h动漫精品一区二区器材| 妓院一钑片免看黄大片| 亚洲伦理在线精品| 九九在线视频| 99re在线播放| 久久婷婷一区二区| 亚洲第一黄色网| 色诱色偷偷久久综合| 九九爱精品视频| 中文字幕亚洲综合久久菠萝蜜| 五月婷在线视频| 91久久爱成人| 精品一区免费av|