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

彩虹橋架構演進之路-性能篇

開發 架構
NIO 架構的改造工作量相當巨大,中間也經歷了一些曲折,但是最終的結果令人滿意。得益于 ShardingShpere 本身內核層面的高性能加上本次 NIO 改造后,彩虹橋在 DAL 中間件性能層面基本上可以算是第一梯隊了。

一、前言

一年前的《彩虹橋架構演進之路》側重探討了穩定性和功能性兩個方向。在過去一年中,盡管業務需求不斷增長且流量激增了數倍,彩虹橋仍保持著零故障的一個狀態,算是不錯的階段性成果。而這次的架構演進,主要分享一下近期針對性能層面做的一些架構調整和優化。其中最大的調整就是 Proxy-DB 層的線程模式從 BIO 改造成了性能更好的 NIO。下面會詳細介紹一下具體的改造細節以及做了哪些優化。

閱讀本文預計需要 20~30 分鐘,整體內容會有些枯燥難懂,建議閱讀前先看一下上一篇彩虹橋架構演進的文章(彩虹橋架構演進之路)以及 MySQL 協議相關基礎知識。

二、改造前的架構

先來復習一下彩虹橋的全景架構圖:

圖片圖片

Proxy三層模塊

針對 Proxy 這一層,可以大致分成 Frontend、Core、Backend 三層:

Frontend-服務暴露層:使用 Netty 作為服務器,按照 MySQL 協議對接收&返回的數據進行編解碼。

Core-功能&內核層:通過解析、改寫、路由等內核能力實現數據分片、讀寫分離、影子庫路由等核心功能。

Backend-底層DB交互層:通過 JDBC 實現與數據庫交互、對結果集改列、歸并等操作。

BIO模式下的問題

這里 Core 層為純計算操作,而 Frontend、Backend 都涉及 IO 操作,Frontend 層使用 Netty 暴露服務為 NIO 模式,但是 Backend 使用了數據庫廠商提供的傳統 JDBC 驅動,為 BIO 模式。所以 Proxy 的整體架構還是 BIO 模式。在 BIO 模型中,每個連接都需要一個獨立的線程來處理。這種模型有一些明顯的缺點:

  • 高資源消耗:每個請求創建獨立線程,伴隨大量線程開銷。線程切換與調度額外消耗 CPU。
  • 擴展性受限:受系統線程上限影響,處理大量并發連接時,性能急劇下降。
  • I/O阻塞:BIO 模型中,讀/寫操作均為阻塞型,導致線程無法執行其他任務,造成資源浪費。
  • 復雜的線程管理:線程管理和同步問題增加開發和維護難度。

我們看最簡單的一個場景:在 JDBC 在發起請求后,當前線程會一直阻塞直到數據庫返回數據,當出現大量慢查或者數據庫出現故障時,會導致大量線程阻塞,最終雪崩。在上一篇彩虹橋架構演進文章中,我們做了一些改進來避免了 BIO 模型下的一些問題,比如使用線程池隔離來解決單庫阻塞導致全局雪崩的問題。

圖片圖片

但是隨著邏輯庫數量的增多,最終導致 Proxy 的線程數膨脹。系統的可伸縮性和吞吐量都受到了挑戰。因此有必要將現有的基于 JDBC 驅動的阻塞式連接升級為采用 NIO(非阻塞 I/O)方式連接數據庫。

三、改造后的架構

  • BIO->NIO

想把 Proxy 整體架構從 BIO->NIO,最簡單的方式就是把傳統的 BIO 數據庫驅動 JDBC 換成 NIO 的數據庫驅動,但是在調研過后發現開源的 NIO 驅動并不多,而且基本上沒有什么最佳實踐。最后在參考 ShardingSphere 社區之前做的調研后(https://github.com/apache/shardingsphere/issues/13957),決定使用 Vertx 來替換 JDBC。最開始使用 Vert.x 的原因,第一是 Vertx 的異步編碼方式更友好,編碼復雜度相對較低,第二是因為它實現了主流數據庫的驅動。但最終的結果不盡人意,由于 Vertx 相關抽象化的架構,導致鏈路較長時,整個調用棧深非常夸張。最終壓測出來的吞吐量提升只有 5% 不到,而且存在很多兼容性問題。于是推倒重來,決定自研數據庫驅動和連接池。

  • 跳過不必要的編解碼階段

由于 JDBC 驅動會自動把 MySQL 的字節數據編解碼成 Java 對象,然后 Proxy 再把這些結果集經過一些加工(元信息修正、結果集歸并)后再進行編碼返回給上游。如果自研驅動的話,就可以把編解碼流程控制的更細致一些,把 Proxy 不需要加工的數據直接轉發給上游,跳過無意義的編解碼。后面會介紹一下哪些場景是不需要 Proxy 對結果集進行加工的。

自研NIO數據庫驅動

數據庫驅動主要是封裝了與 DB 層交互協議,封裝成高級 API。下面 2 張圖是 java.sql 包中的 Connection 和 Statement 的一些核心接口。

圖片圖片

圖片圖片

所以首先我們需要了解一下,如何與數據庫進行數據交互,以 MySQL 為例,使用 Netty 連接 MySQL,簡單的交互流程如下。

圖片圖片

使用 Netty 與 MySQL 連接建立后,我們要做的就是按照 MySQL 協議規定的數據格式,先鑒權后再發送具體的命令包即可。下面是 MySQL 官方文檔中鑒權流程和命令執行流程:

  • 鑒權流程:https://dev.mysql.com/doc/dev/mysql-server/latest/page_protocol_connection_phase.html
  • 執行命令流程:https://dev.mysql.com/doc/dev/mysql-server/latest/page_protocol_command_phase.html

下面就是按照 MySQL 的文檔,去實現編解碼 Handle,我們簡單看一下實現的代碼。

圖片圖片

  • decode 解碼

就是針對 MySQL 返回的數據包解碼,根據長度解析出 Palyload 封裝成 MySQLPacketPayload 傳給對應的 Handle 處理。

  • encode 編碼

把具體的命令類轉換成具體的 MySQL 數據包,這里的 MySQLPacket 有多個實現類,跟 MySQL的Command 類型一一對應。

現在還需要一個類似 java.sql.Connection 的實現類,來組裝 MySQLPacket 并寫入到 Netty 通道中,并且解析編碼后的 MySQLPacketPayload 轉換成 ResultSet。

圖片圖片

圖片圖片

看起來比較簡單,交互流程和傳統的 JDBC 幾乎一樣,但是由于現在是異步化流程,所有的 Response 都是通過回調返回,所以這里有 2 個難點:

  • 由于 MySQL 在上一條命令沒結束前無法接受新的命令,所以如何控制單個連接的命令串行化?
  • 如何將 MySQL 返回的數據包和發起命令的 Request 一一綁定?

首先 NettyDbConnection 引入了一個無鎖化非阻塞隊列 ConcurrentLinkedQueue。

圖片圖片

在發送 Command 時,如何沒有正在進行中的 Command,則直接發送,如果有正在進行中的 Command,直接扔到隊列中,等待上一條 Command 處理完成后推動下一條命令的執行。保證了單個連接命令串行化。

其次,NettyDbConnection 在執行命令時,傳入一個 Promise,在 MySQL 數據包全部返回后,這個 Promise 將會被設置完成,即可于發起命令的 Request 一一綁定。

圖片圖片

自研NIO數據庫連接池

前面介紹了 NettyDbConnection 這個類,實現了與 MySQL 的交互,并且提供了執行 SQL 的高級 API,但實際使用過程中,不可能每次都創建一個連接執行完 SQL 就關閉。所以需要對 NettyDbConnection 進行池化,統一管理連接的生命周期。其功能類似于傳統連接池 HikariCP,在完成基本能力的基礎上,做了很多性能優化。

  • 連接生命周期管控
  • 連接池動態伸縮
  • 完善的監控
  • 連接異步保活
  • 超時控制
  • EventLoop 親和性

這里除了 EventLoop 親和性,其他幾個功能只要用過傳統的數據庫連接池應該都比較熟悉,這里不做過多展開。這里主要針對 EventLoop 親和性展開介紹一下。

在文章開頭我們說到 Proxy 的三層模塊,Frontend、Core、Backend,如果現在我們把 Backend 層于數據庫交互的組件換成了我們自研的驅動,那么 Proxy 就即是Netty Server,也是Netty Client,所以 Frontend 和 Backend 可以共用一個 EventLoopGroup。為了降低線程上下文切換,在單個請求從 Frontend 接收、經過 Core 層計算后轉發到 MySQL ,再到接收 MySQL 服務響應,以及最終的回寫給 Client 端,這一些列操作盡量放在一個 EventLoop 線程中處理。

圖片圖片

具體的做法就是 Backend 在選擇與數據庫連接時,優先選擇與當前 EventLoop 綁定的連接。也就是前面提到的 EventLoop 親和性,這樣就能保證大部分場景下一次請求從頭到尾都由同一個 EventLoop 處理,下面我們看一下具體的代碼實現。

在 NettyDbConnectionPool 類中使用一個 Map 存儲連接池中的空閑連接,Key 為 EventLoop,Value 為當前 EventLoop 綁定的空閑連接隊列。

圖片圖片

在獲取時,優先獲取當前 EventLoop 綁定的連接,如果當前 EventLoop 未綁定連接,則會借用其他 EventLoop 的連接。

圖片圖片

為了提高 EventLoop 命中率,需要注意幾點配置:

  • EventLoop 線程數量盡量與 CPU 核心數保持一致。
  • 連接池最大連接數超過 EventLoop 線程數越多,EventLoop 命中率越高。

下面放一張壓測環境(8C16G、連接池最大連接數 10~30)的命中率監控,大部分保持在 75% 左右。

圖片圖片

跳過不必要的編解碼

前面說到,有部分 SQL 的結果集是不需要 Proxy 進行加工的,也就是可以直接把 MySQL 返回的數據流原封不動轉發給上游,直接省去編解碼操作。那什么 SQL 是不需要 Proxy 進行加工的呢,我們舉個例子說明一下。

假設邏輯庫 A 里面有一張表 User 做了分庫,分了 2 個庫 DB1 和 DB2,分片算法是 user_id%2。

  • SQL 1
SELECT id, name FROM user WHERE user_id in (1, 2)
  • SQL 2
SELECT id, name FROM user WHERE user_id in (1)

很顯然 SQL 1由于有 2 個分片 Value,最終匹配到了 2 個節點,SQL 2 只會匹配到 1 個節點。

圖片圖片

SQL 1 由于需要對結果集進行歸并,所以無法跳過編解碼,SQL 2 不需要對結果集歸并,只需要把結果集中的列定義數據做修正后,真正的 Row 數據無需處理,這種情況就可以把 Row 數據直接轉發至上游。

全鏈路異步化

Backend 層用自研連接池+驅動替換原先的 HikariCP+JDBC 后,從 Frontend-Core-Backend 全鏈路涉及到阻塞的操作需要全部替換成異步化編碼,也就是通過 Netty 的 Promise 和 Future 來實現。

圖片圖片

由于部分場景拿到 Future 時,可能當前 Future 已經完成了,如果每次都是無腦的加 Listener 會讓調用棧加長,所以我們定義了一個通用的工具類來處理 Future,即 future.isDone() 時直接執行,反之才會 addListener,最大化降低整個調用棧的深度。

圖片

兼容性

除了以上基本代碼的改造外,還需要做大量的兼容工作:
  • 特殊數據庫字段類型處理
  • JDBC URL 參數兼容
  • ThreadLocal 相關數據全部需要遷移至 ChannelHandlerContext 中
  • 日志 MDC、TraceContext 相關數據傳遞
  • ……

四、性能表現

經過幾輪性能壓測后,NIO架構相較于BIO架構性能有較大提升:

  • 整體最大吞吐量提升 67%
  • LOAD 下降 37% 左右
  • 高負載情況下 BIO 多次出現進程夯住現象,NIO 相對較穩定
  • 線程數減少 98% 左右

五、總結

NIO 架構的改造工作量相當巨大,中間也經歷了一些曲折,但是最終的結果令人滿意。得益于 ShardingShpere 本身內核層面的高性能加上本次 NIO 改造后,彩虹橋在 DAL 中間件性能層面基本上可以算是第一梯隊了。

責任編輯:武曉燕 來源: 得物技術
相關推薦

2024-11-13 18:57:49

2022-11-18 18:36:24

2022-05-11 12:01:06

元宇宙區塊鏈華為

2016-03-15 16:24:47

集群調度框架演進

2023-04-25 17:24:31

veImageXiOSSDK

2025-04-08 02:30:00

2024-06-03 10:19:05

2015-09-28 14:50:09

網絡架構性能

2023-07-02 11:14:21

工具TypeScript框架

2014-10-09 15:52:42

ADC

2023-09-15 09:34:54

2022-03-25 08:40:32

分布式架構

2025-09-25 10:42:46

2021-08-18 17:16:10

Git分片讀寫分離

2021-08-03 07:21:14

架構微服務開發

2023-03-16 07:20:15

大數據平臺云數據

2015-07-24 12:21:14

wot 2015移動開發者大會

2020-02-10 19:16:52

服務端高并發架構

2023-01-03 17:43:39

網易郵箱數倉

2024-10-28 22:37:36

下載中心設計系統
點贊
收藏

51CTO技術棧公眾號

青草热久免费精品视频| 精品福利一二区| 亚洲一区精彩视频| jizz国产视频| 一本综合精品| 在线一区二区日韩| 欧美色图校园春色| 345成人影院| 国产精品久久久久精k8| 国产99午夜精品一区二区三区| 色婷婷av国产精品| 久久国产精品亚洲人一区二区三区 | 久久久国产精品一区二区三区| 午夜精品久久久久久久蜜桃| 影音先锋日韩在线| 亚洲欧美制服综合另类| 日本在线视频播放| 久久夜夜操妹子| 一区二区三区.www| 欧美亚洲另类在线一区二区三区| 国产又粗又长又大视频| 嫩草成人www欧美| 欧美精品在线播放| 国产视频三区四区| 国产一区调教| 欧美精品一级二级三级| 久在线观看视频| 日本网站在线免费观看视频| 成人在线视频一区二区| 国产精品视频大全| 国产超碰人人爽人人做人人爱| 国产精品久久久久久久久妇女 | 国产在线自天天| 成人午夜av影视| 成人两性免费视频| 中文在线观看免费高清| 销魂美女一区二区三区视频在线| 欧美激情精品久久久久久| 亚洲欧洲综合网| 精品福利久久久| 日韩电影在线观看永久视频免费网站| 成人免费播放视频| www一区二区三区| 欧美三级电影在线看| 日本精品久久久久中文字幕| sm性调教片在线观看 | 4444在线观看| 精品国产白色丝袜高跟鞋| 中文在线资源观看网站视频免费不卡| 久久综合中文色婷婷| 天天综合永久入口| 成人视屏免费看| 丁香五月网久久综合| 国产一区二区自拍视频| 久久精品国产久精国产爱| 国产精品视频xxx| 免费黄色av片| 日韩av一区二| 国产精品综合网站| 国产精品国产一区二区三区四区 | 麻豆免费在线视频| 国产精品久99| 国产精品av免费| 国产最新在线| 一区二区三区视频在线观看| 激情视频小说图片| 女同视频在线观看| 亚洲一二三四区| 亚洲 欧美 日韩 国产综合 在线| www视频在线观看| 欧美日韩亚洲高清| 免费裸体美女网站| 青青青国产精品| 日韩午夜激情视频| 成人在线观看一区二区| 精品成人自拍视频| 亚洲欧美另类中文字幕| www久久久久久久| 久久一区91| 九九视频直播综合网| 日韩 欧美 亚洲| 久久国产精品毛片| 成人深夜直播免费观看| 午夜精品久久久久久久91蜜桃| 成人av在线播放网站| 久久综合久久久| 激情视频在线观看| 亚洲香肠在线观看| 91av在线免费播放| 老司机亚洲精品一区二区| 亚洲国产另类 国产精品国产免费| 黄色国产在线观看| 99精品在线免费在线观看| 欧美精品videossex88| 91精品国产高清一区二区三密臀| 麻豆精品一区二区综合av| 国产精品国产精品| 国产日本在线视频| 一级中文字幕一区二区| 亚洲五月天综合| 日韩中文字幕| 国产一区二区三区网站| 欧洲猛交xxxx乱大交3| 香蕉视频成人在线观看| 91视频免费进入| 国产一级二级三级在线观看| 亚洲免费av网站| 黄色国产小视频| 大陆精大陆国产国语精品| 最新91在线视频| 久久久久久久黄色片| 国产一区二区调教| 三级三级久久三级久久18| 波多野结依一区| 欧美卡1卡2卡| 国产综合精品在线| 亚洲黄色高清| 91精品国产综合久久久久久丝袜| 黄网在线免费| 激情成人在线视频| 激情小说欧美色图| 久久精品国产大片免费观看| 欧美一二三视频| 免费观看的毛片| 亚洲精品国产精品乱码不99| 美女黄色片视频| 牛牛视频精品一区二区不卡| 欧美美女操人视频| 国产伦精品一区二区三区四区 | 国产精品资源站在线| 色播亚洲视频在线观看| 小视频免费在线观看| 亚洲精品一区二区三区精华液| 99热99这里只有精品| 视频一区国产视频| 欧美日韩国产精品一区二区| 大菠萝精品导航| 亚洲成人黄色在线| 免费在线观看av网址| 国产中文一区二区三区| 亚洲欧美日韩另类精品一区二区三区 | 三级黄色片免费看| 99久久夜色精品国产亚洲96| 国产精品久久二区| 国产小视频免费在线观看| 欧美性猛交丰臀xxxxx网站| 好吊一区二区三区视频| 亚洲久久视频| 精品一区二区久久久久久久网站| 国产天堂在线播放视频| 精品成人a区在线观看| 国产精品99re| 波多野结衣在线一区| 久操网在线观看| 欧美调教视频| 欧美在线观看网址综合| 青青草在线免费视频| 色综合久久中文综合久久97| 国精产品一区一区三区免费视频| 亚洲在线网站| 欧美日韩综合精品| 欧美综合影院| 欧美成人精品一区| 后入内射欧美99二区视频| 五月天亚洲精品| 亚洲熟妇一区二区三区| 三级精品在线观看| 在线观看成人av| 136导航精品福利| 97色伦亚洲国产| 蜜桃视频在线观看网站| 欧美系列亚洲系列| 国产高潮国产高潮久久久91| 国产·精品毛片| 久久9精品区-无套内射无码| 黑丝美女一区二区| 成人黄色在线免费| 国产美女一区视频| 亚洲人成毛片在线播放| 91国内精品久久久| 亚洲综合一二三区| 色婷婷av777| 久久福利资源站| 日韩精品一区二区免费| 欧美女王vk| 91亚洲精品一区| 忘忧草在线日韩www影院| 中文综合在线观看| 高清毛片aaaaaaaaa片| 色嗨嗨av一区二区三区| 国产十六处破外女视频| 99精品欧美一区二区三区综合在线| 欧美亚洲日本在线观看| 欧美激情1区| 欧美性xxxx69| 亚洲一区二区三区四区电影 | 999色成人| 欧美亚洲成人精品| 菠萝菠萝蜜在线视频免费观看| 日韩av网址在线观看| 一级全黄裸体免费视频| 精品成人在线视频| 看免费黄色录像| 久久久精品综合| 男女性杂交内射妇女bbwxz| 蜜臀av国产精品久久久久| 国产美女主播在线播放| 久久国产亚洲| 久久久影院一区二区三区| 日韩电影免费观看高清完整版在线观看| 久久久亚洲影院你懂的| 日本高清视频在线播放| 亚洲欧美福利视频| 丰满人妻熟女aⅴ一区| 欧美日韩美少妇| 日韩特级黄色片| 亚洲永久免费av| 手机av在线看| 欧美国产精品一区| 中国美女乱淫免费看视频| 成人激情av网| 中文字幕久久久久久久| 麻豆成人久久精品二区三区红 | 久久亚洲AV无码| 成人免费小视频| 手机毛片在线观看| 国产清纯美女被跳蛋高潮一区二区久久w| 逼特逼视频在线观看| 国产在线精品视频| 午夜久久福利视频| 秋霞电影网一区二区| 精品一卡二卡三卡| 宅男噜噜噜66一区二区| 很污的网站在线观看| 欧美阿v一级看视频| 日本福利视频导航| 色爱综合网欧美| 一区二区三区免费看| 欧美精品一区二区三区中文字幕 | 一区二区三区在线观看免费| 性刺激综合网| 色婷婷热久久| 色香蕉在线观看| 亚洲精品中文字幕乱码| 在线综合视频网站| 97人人精品| 中文字幕一区二区三区四区五区人| 精品毛片免费观看| 亚洲人一区二区| 久久要要av| 国产人妻互换一区二区| 影视一区二区| 久久久久久免费看| 男女精品视频| 91小视频网站| 国产美女视频91| 美女被爆操网站| av电影在线观看完整版一区二区| 漂亮人妻被黑人久久精品| 91蜜桃网址入口| 91网站免费视频| 国产精品你懂的| 玖玖爱这里只有精品| 亚洲一区二区精品久久av| 91av在线免费视频| 91国产精品成人| 国产免费的av| 亚洲国产精品悠悠久久琪琪| 嫩草精品影院| 久久亚洲精品国产亚洲老地址| 日本三级在线观看网站| 欧美性受xxxx黑人猛交| 成人在线视频免费| www.av一区视频| 亚洲自拍电影| 中文有码久久| 亚洲精品影视| 男生操女生视频在线观看| 丁香五精品蜜臀久久久久99网站 | 91精品综合久久久久久久久久久| 国产香蕉一区二区三区| 亚洲美女一区| 成人黄色一级大片| av日韩在线网站| 99久久99久久精品免费| 一区二区在线观看免费| 国产成人无码精品亚洲| 色综合色狠狠天天综合色| 99国产精品99| 亚洲国产精品久久久| 色视频在线看| 欧美精品免费在线观看| 激情aⅴ欧美一区二区欲海潮| 欧美成人精品h版在线观看| 美女扒开腿让男人桶爽久久软| 国产suv精品一区二区| 五月天色综合| 国产综合精品一区二区三区| 亚洲欧美tv| 国产亚洲精品久久久久久久| 国产精品亚洲欧美| 亚洲黄色av片| 久久综合久色欧美综合狠狠| 欧美一区二区三区观看| 亚洲人成亚洲人成在线观看图片| 日韩免费视频一区二区视频在线观看| 91传媒视频在线播放| 亚洲成人激情在线| 国产精品欧美亚洲| 亚洲国产高潮在线观看| 欧美a免费在线| 97在线精品国自产拍中文| 欧美videos粗暴| 精品国产aⅴ麻豆| 日韩中文字幕高清在线观看| 精品这里只有精品| 久久91精品久久久久久秒播| 白丝女仆被免费网站| 亚洲手机成人高清视频| 黄色在线免费观看| 亚洲第一精品福利| 拍真实国产伦偷精品| 久久久免费精品视频| 国产精区一区二区| 日本精品一区二区三区高清 久久| 精品91在线| 日韩在线一区视频| 99久久亚洲一区二区三区青草| 免费中文字幕在线| 欧美日韩一区久久| 成人一区二区不卡免费| 午夜精品久久久久久久99热浪潮| 在线成人免费| 国产卡一卡二在线| 日韩av电影天堂| 国产精品成人一区二区三区电影毛片| 一区二区三区在线观看欧美| 中文字幕日本人妻久久久免费| 亚洲欧美变态国产另类| √最新版天堂资源网在线| 99在线观看| 中文不卡在线| 亚洲免费999| 中文字幕在线观看一区二区| 91丨九色丨海角社区| 国产亚洲欧洲高清| 自拍视频在线看| 国产日韩在线一区二区三区| 99亚洲一区二区| 极品白嫩的小少妇| 午夜成人免费视频| 欧美一级特黄aaaaaa大片在线观看| 在线观看国产精品日韩av| 亚洲第一会所| 日韩一二三区不卡在线视频| 日本美女视频一区二区| 性高潮久久久久久久| 午夜精品久久久久久久久久久| 天堂av一区二区三区| 午夜精品www| 精品美女久久| 免费看污黄网站| 久久久噜噜噜久久中文字幕色伊伊| 日韩免费av网站| 亚洲午夜av久久乱码| 欧美成人黄色| 中文字幕一区二区三区在线乱码 | 国产一二三区在线播放| 粉嫩av一区二区三区| 国产一级性生活| 精品国产伦一区二区三区观看体验 | 日韩av电影网| 国产午夜精品全部视频在线播放 | jlzzjlzzjlzz亚洲人| 久久久久久久久久久免费精品| 91精品久久久久久综合五月天| 无码熟妇人妻av在线电影| www.欧美.com| 国产中文字幕视频| 久久亚洲成人精品| 午夜视频在线观看精品中文| 国产精品igao激情视频| www激情久久| 中文字幕视频在线播放| 欧美高清一级大片| 久久99偷拍| 午夜国产福利在线观看| 亚洲综合999| 色综合888| 国产免费亚洲高清| 久久久综合色| 黄色短视频在线观看| 欧美吻胸吃奶大尺度电影 | 中文字幕+乱码+中文字幕明步| 久久影视电视剧免费网站清宫辞电视 | 老牛精品亚洲成av人片| 四季av一区二区| 亚洲精品欧美在线| 四虎电影院在线观看| 国产精品羞羞答答|