精品欧美一区二区三区在线观看 _久久久久国色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ù)棧公眾號

成人午夜视频一区二区播放| www.xxxx欧美| av 日韩 人妻 黑人 综合 无码| 99久久久久久久| 一区在线视频| 精品亚洲一区二区三区| 韩国中文字幕av| 国产在线高清视频| www..com久久爱| 国产精品福利在线观看| 日日骚一区二区三区| 欧美激情网址| 欧美精品在线视频| 国产视频九色蝌蚪| 看女生喷水的网站在线观看| 99精品偷自拍| 91精品在线国产| 国产成人免费观看视频| 久久在线播放| 日韩av在线免费看| 欧美激情第一区| 在线观看福利电影| 亚洲综合偷拍欧美一区色| 日韩av电影免费在线观看| www精品国产| 蜜臀91精品一区二区三区| 国模精品系列视频| 国产精品丝袜一区二区| 国产成人影院| 亚洲成人免费网站| 日韩av影视大全| 日韩中文视频| 欧美日韩精品在线视频| 一二三在线视频| 在线国产91| 久久综合久久鬼色| 国产免费一区| 国产黄色片av| 国内精品伊人久久久久av一坑| 欧美在线中文字幕| 亚洲视频免费播放| 欧美视频福利| 久久中文精品视频| av在线免费播放网址| 窝窝社区一区二区| 精品国产乱码久久久久久免费| 久国产精品视频| 天堂久久午夜av| 日本国产一区二区| 日韩免费一级视频| 精精国产xxx在线视频app| 亚洲已满18点击进入久久| 亚洲第一精品区| 麻豆视频在线观看免费| 国产精品美女久久久久久久久 | 国产精品一区二区三区av| 一本一道久久a久久精品综合蜜臀| 欧美一级片免费播放| 免费在线看电影| 亚洲永久免费视频| av一区二区三区免费观看| 亚洲性图自拍| 亚洲图片欧美一区| 欧美老熟妇喷水| 天天免费亚洲黑人免费| 91精品福利视频| 性生交免费视频| 国产福利亚洲| 欧美一级久久久久久久大片| 久久黄色一级视频| jazzjazz国产精品麻豆| 亚洲精品成人久久久| 黄色国产在线观看| 欧洲杯半决赛直播| 俺去啦;欧美日韩| 久久久久香蕉视频| 国产欧美另类| 国产精品网站入口| 国产99999| av中文字幕在线不卡| 日本一区免费观看| 麻豆网在线观看| 亚洲一区二区在线视频| 欧美黄色免费影院| 欧美成人福利| 精品欧美一区二区在线观看| 亚洲观看黄色网| 日韩激情一区| 欧美疯狂xxxx大交乱88av| 亚洲国产成人精品激情在线| 日本va欧美va瓶| 亚洲综合国产精品| 三级在线电影| 亚洲人精品一区| 国产特级黄色大片| 日韩综合久久| 亚洲国产成人久久综合一区| 国产伦精品一区二区三区视频女| 亚洲成人精选| 日韩av不卡电影| 国产特级黄色片| 久久久久国产免费免费| 国产精品视频一二三四区| 筱崎爱全乳无删减在线观看| 精品视频全国免费看| 无码av免费精品一区二区三区| 国产精品嫩草影院在线看| 欧美成在线视频| 久久国产香蕉视频| 成年人国产精品| 在线视频一区观看| 成人影院大全| 精品久久久久久综合日本欧美 | 国产精品美女久久久久高潮| 欧美一区二区视频在线播放| 国产综合色在线观看| 亚洲激情久久久| 国产一区二区播放| 日本欧美一区二区三区| 国产精品免费一区二区| 国产网友自拍视频导航网站在线观看| 色综合天天综合色综合av| aaa黄色大片| 国产精品久久久久久影院8一贰佰| 热久久美女精品天天吊色| 亚洲精品97久久中文字幕| 国产精品久久久久久久浪潮网站| 九九九九免费视频| 中文字幕视频精品一区二区三区| 色婷婷**av毛片一区| 69视频免费看| 久久久久久麻豆| 777精品久无码人妻蜜桃| 亚洲精品一区二区三区在线| 日韩最新在线视频| 国产九色91回来了| 久久人人超碰精品| 99热自拍偷拍| 啪啪国产精品| 国内精品久久久久久| 国内精品久久久久久久久久| 国产精品美女视频| www.久久91| 欧美成人milf| 成人激情免费在线| 免费黄网站在线播放| 在线观看三级视频欧美| a级片在线观看| 久热精品在线| 婷婷久久青草热一区二区| 欧美艳星kaydenkross| 亚洲欧美另类人妖| 日韩黄色在线播放| 久久久www免费人成精品| 久久精品视频91| 欧美日韩在线二区| 国产欧美一区二区三区视频| 伊人免费在线| 日韩欧美中文字幕公布| 免费在线一级片| 成人午夜视频在线观看| 国产精品自拍片| 九九视频免费观看视频精品| 国产精品久久久久av| av在线播放网| 欧美丰满少妇xxxxx高潮对白| 日本一级二级视频| 成人精品免费看| 国产成人久久婷婷精品流白浆| 色综合中文网| 国产欧美中文字幕| 69xxx在线| 亚洲精品91美女久久久久久久| 国产又爽又黄的视频| 国产亚洲精品bt天堂精选| 亚洲欧洲日本精品| 欧美午夜在线视频| 美日韩免费视频| 成人在线免费| 欧美大片网站在线观看| 神马电影在线观看| 这里只有精品电影| 偷偷操不一样的久久| 国产精品九色蝌蚪自拍| 欧美日韩一区二区区| 狂野欧美性猛交xxxx巴西| 一区二区三区一级片| 9l视频自拍蝌蚪9l视频成人| 日韩免费观看网站| 麻豆传媒视频在线观看| 亚洲国产天堂久久国产91| 特级西西444www高清大视频| 亚洲女性喷水在线观看一区| 丰满少妇一区二区三区| 久久精品久久精品| 女人天堂av手机在线| 999国产精品| 久久精品国产精品国产精品污 | 蜜乳av中文字幕| 国产精品系列在线观看| 欧美日韩在线成人| 伊人成人在线视频| 中文有码久久| 国产精品欧美日韩一区| 国产精品jizz视频| 日本久久二区| 热久久美女精品天天吊色| 污污的视频在线观看| 在线看欧美日韩| 视频一区二区在线播放| 日韩三区在线观看| 96亚洲精品久久久蜜桃| 欧美视频专区一二在线观看| 久久久久成人片免费观看蜜芽| 欧美极品美女视频| 爱爱的免费视频| 成人免费黄色大片| 国产精品久久久久久9999| 久久精品动漫| 丰满爆乳一区二区三区| 在线一区电影| 国产精品无码乱伦| 欧美裸体在线版观看完整版| 精品国产一区二区三区免费| 午夜免费欧美电影| 成人羞羞国产免费| 久久国产三级| 国产精品久久久久久久av大片| 香蕉伊大人中文在线观看| 久久久久久久久久久久av| 在线看三级电影| 久久精品国产欧美激情| 天堂аⅴ在线地址8| 亚洲欧美综合精品久久成人| 天堂在线视频观看| 亚洲精品一线二线三线无人区| 国产农村老头老太视频| 欧美日韩视频专区在线播放| 波多野结衣影片| 色综合天天综合网国产成人综合天 | 亚洲黄色一级大片| 日韩欧美成人激情| www.激情五月.com| 日韩精品在线网站| 亚洲经典一区二区| 亚洲高清一区二| 色噜噜一区二区三区| 亚洲黄色www| 天堂中文字幕在线| 亚洲欧美日韩精品久久亚洲区| 色播色播色播色播色播在线| 亚洲精品视频二区| 国产美女性感在线观看懂色av| 精品夜色国产国偷在线| 欧美高清电影在线| 国产一区二区黄| 日本精品在线| 九九久久精品一区| 国产自产自拍视频在线观看| 欧美在线一级视频| 99久久久国产精品免费调教网站| 国产欧美va欧美va香蕉在线| 成人在线分类| 国产精品手机在线| 蜜桃精品wwwmitaows| 日韩国产一区久久| 91精品国产调教在线观看| 日韩精品综合在线| 国产精品久久777777毛茸茸 | 欧美91在线|欧美| 91免费看片网站| 高潮按摩久久久久久av免费| 国内精品**久久毛片app| 午夜精品福利影院| 亚洲激情图片| 国产一区美女| 女性隐私黄www网站视频| 美女诱惑一区二区| 国产sm在线观看| 久久这里只有精品首页| 91动漫免费网站| 亚洲五月六月丁香激情| 日本黄色中文字幕| 日韩欧美激情在线| 男生女生差差差的视频在线观看| 色婷婷**av毛片一区| 超碰在线视屏| 国产精品亚洲第一区| 91精品国产乱码久久久竹菊| 久久久久久九九九九| 久久一区二区三区喷水| 久久成人免费观看| 韩国三级电影一区二区| 性久久久久久久久久| 亚洲欧美怡红院| 色网站在线播放| 欧美一区二区三区在线观看| 色网站在线免费观看| 欧美xxxx做受欧美| 欧美精品总汇| 国产手机精品在线| 亚洲澳门在线| 18岁视频在线观看| 成人av在线网| 紧身裙女教师波多野结衣| 日韩欧美视频一区二区三区| 国产欧美熟妇另类久久久| 亚洲欧美国内爽妇网| 成年人视频免费在线播放| 国产欧亚日韩视频| 精品久久久中文字幕| 免费人成在线观看视频播放| 麻豆成人91精品二区三区| 久久久久亚洲av无码专区桃色| 亚洲综合视频网| 国产精品毛片一区视频播| 亚洲视频一区二区三区| 99爱在线视频| 91亚洲精品丁香在线观看| 欧美丰满日韩| 日本888xxxx| 国产无人区一区二区三区| 粉嫩aⅴ一区二区三区| 日韩欧美激情一区| 成人在线免费看片| 国产欧美日韩免费| 欧美军人男男激情gay| 爱福利视频一区二区| 成人av第一页| 日韩免费av片| 精品国产髙清在线看国产毛片| 成人黄色网址| 91免费看国产| 欧美在线看片| 日本r级电影在线观看| 亚洲欧美自拍偷拍| 中文字幕在线播放av| 亚洲图片欧洲图片av| 欧美精品日日操| 日本一区视频在线观看| 天堂影院一区二区| 免费看裸体网站| 欧美系列一区二区| av在线女优影院| 成人黄色短视频在线观看| 五月天激情综合网| 国产免费中文字幕| 亚洲乱码中文字幕综合| 国产成人精品亚洲精品色欲| 欧美日韩xxx| 国产精品极品国产中出| 日本网站免费在线观看| 91老师片黄在线观看| 波多野结衣黄色网址| 中文字幕亚洲欧美日韩高清| 欧美天堂一区| 久久久无码中文字幕久...| 国产精品一区二区果冻传媒| 久久午夜鲁丝片午夜精品| 亚洲国产精品电影| 中文在线资源| 香蕉久久夜色| 国产一区高清在线| 国产第一页第二页| 亚洲欧美国产一区二区三区| 日韩漫画puputoon| 法国空姐在线观看免费| 国产91在线观看丝袜| 97超碰人人干| 中文字幕久热精品视频在线| 国产精品一区二区三区www| 成人性免费视频| 久久精品一二三| 一区二区三区精彩视频| 欧美精品日韩三级| 台湾佬综合网| 日本黄色的视频| 亚洲国产日韩一区二区| 黄色国产在线| 亚洲一区二区三区成人在线视频精品| 在线观看视频免费一区二区三区| 麻豆精品免费视频| 日韩一区二区三区精品视频| 成年人在线网站| 做爰高潮hd色即是空| av在线播放一区二区三区| 中文字幕乱码一区二区 | 香蕉久久免费影视| 福利一区在线观看| 久久精品99北条麻妃| 欧美久久久精品| 欧美一区二区三| 99久久免费看精品国产一区| 欧美日韩一区在线观看| 第一av在线| 亚洲日本无吗高清不卡| av欧美精品.com| 国产欧美一级片| 国产精品久久久久久影视| 激情久久久久久久|