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

假如讓你來設計數據庫中間件

數據庫
13年底負責數據庫中間件設計時的設計文檔,拿出來和大家分享:可以了解下數據庫中間件技術和可以了解下架構師系統設計的思路。

13年底負責數據庫中間件設計時的設計文檔,拿出來和大家分享:

  • 可以了解下數據庫中間件技術
  • 可以了解下架構師系統設計的思路

一、總體目標

數據庫中間層項目背景不再展開,根據前期的調研以及和公司同事的討論,中間層的核心目標主要有兩個:

  • db虛擬化:讓db對業務線透明(本文的db均指mysql),業務線不再需要知道db的真實ip,port,主從關系,讀寫關系,高可用等
  • 分庫的支持:讓db的分庫對業務線透明

二、實現的功能

上述目標相對比較寬泛,具體來說,數據庫中間層需要實現以下功能。

(1)統一接入入口

如果統一接入入口,從今以后,不再有

  1. db1.58.com:3306 
  2.  
  3. db2.58.com:3306 
  4.  
  5. im.58.com:3306 
  6.  
  7. jiaoyou.58.com:3306 

而只有

  1. db.58.com:3306 

所有的業務線,對db的訪問,都只有一個入口,由數據庫中間層來進行權限驗證,由中間件來路由請求,這是一種***的情況。

當然,統一一個總入口目標有點宏大,可以循序漸進,先各業務線統一讀寫訪問入口,故折衷的目標可以是,從今以后,不再有

  1. im.read.db1.58.com:3306 
  2.  
  3. im.read.db2.58.com:3306 
  4.  
  5. im.write.db.58.com:3306 

而只有

  1. im.58.com:3306 

im業務對db的訪問,統一到一個入口上來了,由中間層來對請求進行智能路由。

更簡化的,甚至可以初期同一個業務線的db讀寫都不對業務線透明,數據庫中間層只做簡單的請求轉發,先初步的把數據庫訪問入口收攏到數據庫中間層來,為后續的統一,再統一打下基礎。

 

 

ROAD-MAP規劃如下:

  • 業務線入口統一(中轉請求)
  • 業務線入口統一(智能路由)
  • 全局入口統一

(2)保持訪問接口

原來db的訪問方式主要有以上三種:

  • 手工用mysql客戶端連mysql,直連數據庫執行命令
  •  java使用jdbc連接數據庫
  • c/c++使用libmysqlclient.a來對mysql進行訪問

所謂保持訪問接口,是指上游對數據庫的訪問接口完全不用變,中間件服務對上游來說,就是數據庫。

由于SQL協議是非常復雜的,在db的客戶端與服務器插入了一個中間層之后,不一定能對所有的SQL功能都進行支持,支持哪些SQL是需要慎重考慮的。

(3)屏蔽讀寫分離

業務層不需要在關注讀寫分離,由中間件來進行讀寫請求路由。

(4)支持的分庫

58的db的水平擴展,基本是用的分庫的方式(分庫比較好,很容易實現實例的擴容),即:

db.table會水平拆分為:

db1.table

db2.table

db3.table

db4.table

這樣的話,dao層對于table就只有一個table實例了,比較方便。 

根據前期與各業務線同學的溝通,58在分庫上的業務訪問需求為(這個調研的周期比較長,和很多業務線進行了溝通):

  • patition key普通查詢
  • patition key上的IN查詢
  • 非patition key上的查詢
  • 有限功能的排序+分頁查詢

故對分庫上的分布式SQL功能,數據庫中間層只需要支持上上述四項即可。

(5)高可用性的支持

高可用的支持又分為兩個部分:

***部分,故障自動發現:下游數據庫掛了,能夠自動發現問題,并報警周知相關人員。

第二部分,故障自動轉移:

  • 主庫掛了,能夠自動切換,或者屏蔽寫請求
  • 從庫掛了,能夠自動自動切換讀請求量流量
  • 中間件掛了,自動切換中間件流量,高可用

(6)可運維性的支持

  • 支持一些統計數據的展現
  • 支持一些管理命令
  • 支持頁面話的運維

however,只要總的框架設計具備可擴展性,這些功能可以循序漸進,逐步添加。

三、設計折衷

(1)協議與整體架構

既然選擇了mysql client server protocol作為業務層與中間層之間的協議,那么中間層必然是作為mysql-server接收上游的請求,作為mysql-client向真正的mysql發送請求的,中間層的整體結構如下:

這樣的話,需要對mysql client server protocol做詳盡的研究,了解:

  • 連接的建立過程
  • 權限認證的過程
  • 壓縮解壓縮的過程
  • 請求響應二進制協議各種細節
  •  …

協議這一塊的掌握必須詳盡,好在官方文檔相對比較全面:

http://dev.mysql.com/doc/internals/en/client-server-protocol.html

(2)架構細節

總體架構細節圖如上。

(2.1)上游

  • mysql客戶端,java使用jdbc作為上游連接,c/c++使用libmysql.a作為上游連接,使用的是Mysql Client Server協議
  • DBA亦可以向中間件發送一些管理命令,或者查看一些統計信息,使用的是自己定義的內部協議

(2.2)下游

處于系統體系結構中的***端,系統中間件的下游就是mysql集群了,中間件與mysql之間使用的也是Mysql Client Server協議。

(2.3)中間層-ConfigMgr

中間層配置文件管理組件ConfigMgr是中間層中非常重要的一個部分,請求的轉發,讀寫分離,分庫功能的支持,都需要通過配置來完成。

  1. <mysql> 
  2.  
  3. <db id=0 logic_db="im"type=1> 
  4.  
  5.        <item ip="10.58.1.100" port=3306 name="im" /> 
  6.  
  7. </db> 
  8.  
  9.   
  10.  
  11. <db id=1 logic_db="umc"type=2 patition_count=2 key="uid" hash="mod"
  12.  
  13.    <patition id=0> 
  14.  
  15.        <item ip="10.58.1.100" port=3306 role="w" /> 
  16.  
  17.        <item ip="10.58.1.101" port=3306 role="r" /> 
  18.  
  19.        <item ip="10.58.1.102" port=3306 role="r" /> 
  20.  
  21.    </patition> 
  22.  
  23.    <patition id=1> 
  24.  
  25.        <item ip="10.58.1.100" port=3316 role="w" /> 
  26.  
  27.        <item ip="10.58.1.101" port=3316 role="r" /> 
  28.  
  29.        <item ip="10.58.1.102" port=3316 role="r" /> 
  30.  
  31.    </patition> 
  32.  
  33. </db> 
  34.  
  35. </mysql> 

從配置文件可以看出,ConfigMgr需要管理的mysql配置類型有兩種:

type=1請求轉發

  1. <db id=0 logic_db="im"type=1> 
  2.  
  3.        <item ip="10.58.1.100" port=3306 name="im" /> 
  4.  
  5. </db> 

配置的含義是,上游如果訪問邏輯數據庫logic_db=”im”,中間件則將請求轉發到實際的后端數據庫item,item中配置了后端數據庫的ip/port/name。

type=2分庫支持

解釋分庫支持的配置之前,先說明一下數據庫的層次結構LOGIC_DB、PARTITION、ITEM。

LOGIC_DB:邏輯數據庫,面向上游,例如umc

PARTITION:數據庫分區,可以理解為分庫,例如umc0和umc1,這個對上游是透明的

ITEM:數據庫項,可以理解為一個分區上的一個讀庫或者寫庫,這個對上游也是透明的 

上例中對應的配置文件為: 

  1. <db id=1 logic_db="umc"type=2 patition_count=2 key="uid" hash="mod"
  2.  
  3.    <patition id=0> 
  4.  
  5.        <item ip="10.58.1.100" port=3306 role="w" /> 
  6.  
  7.        <item ip="10.58.1.101" port=3306 role="r" /> 
  8.  
  9.        <item ip="10.58.1.102" port=3306 role="r" /> 
  10.  
  11.    </patition> 
  12.  
  13.    <patition id=1> 
  14.  
  15.        <item ip="10.58.1.100" port=3316 role="w" /> 
  16.  
  17.        <item ip="10.58.1.101" port=3316 role="r" /> 
  18.  
  19.        <item ip="10.58.1.102" port=3316 role="r" /> 
  20.  
  21.    </patition> 
  22.  
  23. </db>  
  •     LOGIC_DB:需要關注partition-key-column,也需要關注partition算法,它要實現對PARTITION的請求路由以及結果集的匯總 
  •     PARTITION:需要關注ITEM的讀寫特性,它要實現對ITEM的讀寫分離 
  •     ITEM:是最終的數據庫,和它相關的配置是數據庫ip/port/name/wr-type 

(2.4)中間層-MysqlServerPart

中間層服務端組件MysqlServerPart是中間層中非常重要的一個部分,它負責端口的監聽+請求接收與返回(服務端網絡IO),MysqlProtocol的解析。根據其功能,MysqlServerPart組件又主要分為兩個組件ServerIOMgr組件(服務端IO管理),MysqlProtocolAnalyzer組件(Mysql協議分析)。 

這一層次面臨這些細節: 

  • server網絡框架的選取:建議使用異步server 
  • 并發模型的選取:建議使用IO-thread + multi-work-thread的并發模型 
  • 內存管理模型的選取:建議使用內存池 
  • 連接上下文管理,最容易想到的上下文,一個數據庫連接是和一個邏輯庫LOGIC_DB綁定的 
  • Mysql如何建立數據庫連接:需要考察Mysql協議 
  • Mysql協議的細化解析:需要考察Mysql協議 
  •  … 

(2.5)中間層-MysqlClientPart 

中間層客戶端組件MysqlClientPart是中間層中非常重要的一個部分,它負責中間件對mysql的連接池管理,以及返回結果集的解析。根據其功能,MysqlClientPart組件又主要分為兩個組件ClientConnPoolMgr組件(客戶端連接池管理),ResultSetAnalyzer組件(返回結果集分析)。 

這一層次面臨這些細節: 

  • 數據庫連接池的實現 
  • 數據庫連接模型的選型:建議前期使用同步模型 
  • 連接上下文管理,最容易想到的上下文,一個數據庫連接是和一個ITEM綁定的 
  • Mysql結果集的細化解析:需要考察Mysql協議
  • … 

(2.6)中間層-SqlParser 

中間層Sql分析組件SqlParser是中間層中非常重要的一個部分,它負責對sql語句的語法分析與語義分析。 

為什么要進行Sql語法語義分析?需要解析出什么東東? 

分為兩種情況: 

type=1請求轉發 

對于請求的中轉,上游一個數據庫連接對應一個邏輯庫LOGIC_DB,由ConfigMgr可以知道對應下游一個真實的ITEM(ip/port/db),此時直接轉發請求即可,無需解析Sql語句。 

type=2分庫支持 

對于分庫的支持,解析Sql語句可能需要得到這些問題的答案:Sql是否帶了partition-key-column?partition-key-column的值是多少? 

例如一條Sql語句:select * from user where uid=123456; 

就必須將“uid”列屬性,以及uid的列屬性值“123456”解析出來,以用作后續請求路由。 

注意:更細的情況是,針對每個表,分庫partition-key-column都是不一樣的,上例中還需要將表名user也解析出來。 

這一層次面臨這些細節: 

  • 如何解析Sql語句:可以參考mysql源碼對SQL語句的解析,亦可參照cober對SQL語句的解析方法; 

注:由于我們只需要支持多庫,數據庫庫名信息是在“連接”這一層獲取的,又我們支持的分布式Sql的種類有限,故只需解析partition-key-column,offset/limit等少數信息即可。 

(2.7)中間層-SqlModifier 

中間層Sql修改組件SqlModifier是中間層中非常重要的一個部分,它負責對sql語句改寫。 

為什么要對Sql語句進行改寫? 

type=1的請求轉發,無需修改Sql,但對于type=2的分庫支持,有些Sql語句就必須進行改寫。 

例如:select * from user where uid in(1,2,3,4,5,6); 

假設PARTITION分了0和1奇偶兩個分區,則sql應該分別被改寫為: 

select * from user where uid in(2,4,6); => 路由給0庫; 

select * from user where uid in(1,3,5); => 路由給1庫; 

又例如:select * from user limit 1000,10; 

則sql可能會被改寫為: 

select * from user limit 0,1010; => 分別路由到兩個庫,收集完結果集共2020條記錄,再排序取其中1000-1010這10條。 

哪些Sql需要改寫,如何改寫? 

結合我們需要實現的四類分布式Sql: 

  • patition key普通查詢 
  • patition key上的IN查詢 
  • 非patition key上的查詢 
  • 有限功能的排序+分頁查詢 

只有(2)和(4)兩項需要改寫,改寫方法上文已述,其中(4)的改寫效率較低,使用起來要謹慎。 

(2.8)中間層-SqlRouter 

中間層Sql路由組件SqlRouter是中間層中非常重要的一個部分,它負責對sql語句進行路由。 

哪些Sql需要路由,如何路由? 

結合我們需要實現的四類分布式Sql: 

  • patition key普通查詢 
  • patition key上的IN查詢 
  • 非patition key上的查詢 
  • 有限功能的排序+分頁查詢 

只有(1)和(2)兩項需要路由,(3)和(4)需要將請求分發至所有的PARTITION。 

(2.9)中間層-ResultSetMerger 

中間層結果集合并組件ResultSetMerger是中間層中非常重要的一個部分,它負責對結果集進行合并,篩選。 

哪些Sql需要合并結果集,篩選結果集? 

結合我們需要實現的四類分布式Sql: 

  • patition key普通查詢 
  • patition key上的IN查詢 
  • 非patition key上的查詢 
  • 有限功能的排序+分頁查詢 

其中(2)和(3)類查詢需要將結果集進行合并,(4)不但要合并結果集,還需要將結果集在本地進行排序,然后再篩選出真正的結果集。 

(2.10)其他組件 

  • AdminServer:監聽一個新端口,接收數據庫管理員命令的server 
  • AdminMgr:實現管理員命令的組件 
  • MonitorMgr:實現監控報警的組件 
  • StatisticsMgr:實現數據統計功能的組件 

上述組件可循序漸進,逐步添加,故一期需要實現的組件及架構圖為:

 

感謝看完,說明你對數據庫中間件感興趣,建議在PC上細看3遍,一定更有收獲。 

責任編輯:龐桂玉 來源: 架構師之路
相關推薦

2017-11-27 06:01:37

數據庫中間件中間層

2017-12-01 05:40:56

數據庫中間件join

2022-03-05 18:25:51

SSLTLS協議

2017-12-01 05:04:32

數據庫中間件Atlas

2017-11-27 05:36:16

數據庫中間件TDDL

2017-11-27 05:06:42

數據庫中間件cobar

2018-02-24 19:37:33

Java8數據庫中間件

2011-08-10 13:03:58

CJDBC數據庫集群

2017-05-23 18:55:05

mysql-proxy數據庫架構

2017-07-26 09:41:28

MyCATSQLMongoDB

2017-12-11 13:30:49

Go語言數據庫中間件

2017-07-18 17:35:16

數據庫MyCATPreparedSta

2017-11-03 11:02:08

數據庫中間件

2024-12-06 08:29:29

2023-12-24 22:42:57

數據庫分片中間件

2017-07-18 17:07:40

數據庫 MyCATJoin

2021-09-05 18:25:57

文件系統

2021-07-27 05:49:59

MySQL數據庫中間件

2020-10-15 08:34:32

數據庫中間件漫談

2009-01-20 10:45:55

Oracle數據庫中間件
點贊
收藏

51CTO技術棧公眾號

欧美精品久久久久| 制服丝袜亚洲网站| 日韩亚洲视频| 性一交一乱一乱一视频| 菠萝蜜视频在线观看www入口| 国产精品久久久免费| 亚洲欧美日韩高清| 亚洲熟妇无码av在线播放| 中文字幕精品视频在线观看| 天天射成人网| 亚洲免费小视频| 亚洲色图欧美自拍| 一级日本在线| 成人avav影音| 成人免费自拍视频| 天码人妻一区二区三区在线看| 亚洲不卡av不卡一区二区| 日韩成人av在线| 天堂av8在线| 成人小电影网站| www.一区二区| 成人福利视频在线观看| 久久国产视频播放| 在线精品国产| 国产一区二区三区视频在线观看| 国内自拍偷拍视频| 久久青草视频| 色一区在线观看| 热99这里只有精品| 少妇视频在线| 成人免费观看视频| 成人网在线免费观看| 亚洲精品一区二三区| 99亚洲一区二区| 欧美国产日韩一区| 91精品一区二区三区蜜桃| 国内黄色精品| 亚洲奶大毛多的老太婆| 日本护士做爰视频| 成人涩涩网站| 日本韩国欧美一区二区三区| 岛国大片在线播放| 91老司机福利在线| 亚洲成人免费观看| 每日在线观看av| 久草在线视频网站| 亚洲韩国一区二区三区| 精品伦精品一区二区三区视频| 99草在线视频| 精品动漫av| 欧美日本中文字幕| 久久久久久久久毛片| 一个色综合网| 欧美美女15p| 青青青在线视频| 国产欧美一区二区三区米奇| 日韩精品一区二区三区在线 | 秋霞午夜av一区二区三区| 秋霞av国产精品一区| 日本中文字幕在线| 久久九九免费| 久久久国产91| 久久99久久99精品免费看小说| 日韩欧美视频| 久久综合电影一区| 久久黄色免费网站| 9色精品在线| 国产成人精品免高潮费视频| 在线观看国产区| 精品一区二区三区久久久| 亚洲自拍偷拍第一页| 亚洲精品国产精| 91年精品国产| 亚洲国产欧美日韩| 午夜性色福利影院| 国产一二精品视频| 成人免费91在线看| 色视频在线看| 国产精品伦理在线| 91传媒免费视频| 在线男人天堂| 欧美日韩在线不卡| 老熟女高潮一区二区三区| 亚洲丁香日韩| 久久久精品亚洲| 日韩黄色精品视频| 老色鬼久久亚洲一区二区| 国产在线观看一区二区三区| 亚洲xxx在线| 国产亚洲视频系列| 日本天堂免费a| 亚洲同志男男gay1069网站| 欧美日韩日日骚| 特级特黄刘亦菲aaa级| 伊甸园亚洲一区| 久久亚洲综合国产精品99麻豆精品福利 | av免费在线不卡| 久久蜜桃av一区二区天堂 | 欧美一区二区三区在线| 免费高清在线观看免费| 日本免费一区二区三区等视频| 欧美大片一区二区三区| 性欧美一区二区| 精品999日本| 91网站在线看| 成人影院免费观看| 午夜精品福利在线| 亚洲黄色av片| 国产a久久精品一区二区三区| 欧美xxxx18国产| 老熟妻内射精品一区| 久久动漫亚洲| 国产精品一区视频| 黄色小网站在线观看| 91精品1区2区| 波多野结衣视频播放| 久久精品影视| 国产精品成人播放| 日本成人一区二区三区| 亚洲国产日韩a在线播放| 久久久久久久久久一区| 国产精品羞羞答答在线观看 | 欧美日韩中文视频| 国产最新精品免费| 深夜福利成人| 3d欧美精品动漫xxxx无尽| 亚洲精品suv精品一区二区| 岛国毛片在线观看| 精品一区二区三区免费播放| 亚洲aⅴ天堂av在线电影软件| 伊人成综合网站| 亚洲国产精品久久| 久久精品国产亚洲AV无码麻豆| 国产乱子轮精品视频| 一区二区三区欧美在线| 国产激情欧美| 日韩在线欧美在线国产在线| 亚洲精品久久久久久久蜜桃| 91丨九色丨尤物| 久久国产成人精品国产成人亚洲| 韩国精品福利一区二区三区| 欧美日韩成人在线观看| av一级黄色片| 一区二区三区四区不卡在线 | 欧美激情免费视频| 成 人片 黄 色 大 片| 亚洲综合一区二区三区| 性折磨bdsm欧美激情另类| 亚洲视频一二| 国产一区二区三区无遮挡| 超免费在线视频| 亚洲精品国精品久久99热| 少妇一级淫片免费放中国 | 在线电影欧美日韩一区二区私密| 久久久免费高清视频| 久久精品一区八戒影视| 亚洲欧美电影在线观看| a成人v在线| 日韩中文第一页| 国产婷婷在线视频| 亚洲h动漫在线| 久久精品国产亚洲av麻豆| 久久综合影音| 中文字幕久精品免| 亚洲国产aⅴ精品一区二区| 欧美国产精品人人做人人爱| 天天摸天天碰天天爽天天弄| 日韩欧美一区二区三区| 超碰人人干人人| 国产麻豆精品在线观看| 国产精品videossex国产高清 | 亚洲国产99精品国自产| 欧美性猛交bbbbb精品| 日本一区二区三区四区| 国内av免费观看| 国产亚洲精品自拍| 午夜视频久久久| 亚洲三级av| 日本久久久久久久久| 日本黄色片在线观看| 精品少妇一区二区三区| 少妇久久久久久久| 亚洲免费视频中文字幕| 日本黄色特级片| 狠狠色丁香久久婷婷综| 久久久999免费视频| 第一sis亚洲原创| 国产经典一区二区三区| 99re66热这里只有精品4| 欧美激情网友自拍| 国产在线观看高清视频| 日韩丝袜美女视频| 在线观看亚洲黄色| 亚洲国产精品精华液网站| 国产美女永久免费无遮挡| 国产成人免费xxxxxxxx| 九色porny91| 日韩视频二区| 国产又大又长又粗又黄| 亚洲精品小区久久久久久| 亚洲综合小说区| 成人国产一区| 欧美在线观看网址综合| 亚洲精品综合网| 欧美亚洲综合一区| 中国一级免费毛片| 亚洲激情六月丁香| 五月天免费网站| 另类小说欧美激情| 99爱视频在线| 欧美午夜不卡| 久久免费视频2| 欧美美女在线| 国产专区一区二区三区| 精品久久免费| 国产在线视频不卡| 日韩在线免费| 日本高清视频精品| 国产伦理精品| 欧美黄色片免费观看| 好吊日视频在线观看| 主播福利视频一区| 国内精品在线视频| 精品一区二区亚洲| 国产精品欧美综合| 日韩欧美在线中文字幕| 日韩精品乱码久久久久久| 亚洲人成7777| 欧美一级特黄高清视频| 亚洲国产成人在线| 日本二区在线观看| 久久一日本道色综合| 给我看免费高清在线观看| 久久精品九九| 内射国产内射夫妻免费频道| 亚洲久色影视| 色一情一乱一伦一区二区三区| 国产精品毛片av| 国产福利一区二区三区在线观看| 精品一区91| 91麻豆精品秘密入口| 麻豆国产一区二区三区四区| 91青草视频久久| 精品国产18久久久久久二百| 91探花福利精品国产自产在线| 成人在线视频区| 亚洲自拍偷拍第一页| 一区二区三区视频播放| 国产精品9999久久久久仙踪林| 91麻豆精品激情在线观看最新| 国产高清精品一区二区| 欧美一区二区三区久久| 欧美激情导航| av一区二区高清| 杨幂一区欧美专区| 欧美精品97| 亚洲中文字幕无码专区| 天堂av在线一区| 亚洲视频一二三四| 国产精品一区二区你懂的| 色婷婷狠狠18禁久久| 99精品桃花视频在线观看| 色无极影院亚洲| 国产精品欧美一区二区三区| 免费成年人视频在线观看| 亚洲最新视频在线观看| 天天综合网入口| 欧美午夜精品一区二区三区| 国产露脸国语对白在线| 欧美不卡一区二区三区| 四虎影视精品成人| 欧美成人一区二区三区| 日韩一区二区三区不卡| 亚洲欧美国产高清va在线播| 91涩漫在线观看| 亚洲人成在线播放| 欧美18hd| 97久久久久久| 久久精品97| 黑人另类av| 久久大综合网| 黄网站欧美内射| 美女网站视频久久| 好吊操视频这里只有精品| 2023国产精品| 青青草成人免费| 日本韩国欧美在线| 老牛影视av牛牛影视av| 中文字幕久久精品| 人成在线免费网站| 91久久国产精品91久久性色| 欧美成人专区| ijzzijzzij亚洲大全| 久久欧美肥婆一二区| 中文字幕无人区二| 国产精品视频线看| 伊人手机在线视频| 精品美女在线观看| 男人的天堂在线视频免费观看 | 国产精品无码久久久久成人app| 亚洲国产成人在线视频| 麻豆视频在线免费观看| 欧美中文在线观看国产| 亚洲网一区二区三区| 亚洲综合第一| 日本不卡一区二区| 亚洲精品理论片| 亚洲国产日韩在线一区模特| 美女福利视频在线| 奇米色777欧美一区二区| 国产a级黄色片| 国产精品亚洲成人| 中文字幕免费视频| 无码av免费一区二区三区试看| 91尤物国产福利在线观看| 亚洲人成在线电影| 98色花堂精品视频在线观看| 亚洲www在线观看| 欧美性感美女一区二区| 欧洲av无码放荡人妇网站| 国产69精品久久99不卡| 久久国产精品国语对白| 制服.丝袜.亚洲.中文.综合 | 久久国产精品网站| 久久69成人| 亚洲欧洲在线一区| 奇米色一区二区| 色噜噜噜噜噜噜| 在线精品视频一区二区| 欧美日韩伦理片| 91成人福利在线| 欧美精品中文字幕亚洲专区| 精品久久久久久无码中文野结衣| 国产成人av一区二区三区在线| 亚洲成人生活片| 午夜成人在线视频| 理论片中文字幕| 久久欧美在线电影| 精品在线网站观看| 18禁免费观看网站| 91美女片黄在线| 黄色片视频免费| 亚洲图片欧洲图片av| 99久久久国产精品免费调教网站| 无码免费一区二区三区免费播放| 日韩电影在线免费观看| 欧美一区二区三区粗大| 欧美日韩高清影院| 黄网站视频在线观看| 亚洲综合社区网| 亚洲激情专区| 爱爱免费小视频| 欧美午夜电影在线播放| 免费黄色网址在线观看| 亚洲xxxxx电影| 极品中文字幕一区| 女~淫辱の触手3d动漫| 在线看一区二区| h网站久久久| 国产欧美一区二区三区另类精品| 亚洲欧美日韩精品一区二区| 日本一级免费视频| 在线不卡a资源高清| 欧美精品videosex| 欧美国产视频在线观看| 久久精品国产一区二区三 | 国产精品二区二区三区| 亚洲深夜av| 少妇视频在线播放| 日韩欧美综合一区| 中文字幕在线看片| 在线视频亚洲自拍| 成人av资源站| 最新在线中文字幕| 欧美人交a欧美精品| 欧美精美视频| 免费在线观看日韩av| 一本在线高清不卡dvd| 久操视频在线观看| 久久av一区二区三区亚洲| 美女网站视频久久| 国产精品99re| 色噜噜国产精品视频一区二区| heyzo欧美激情| 亚洲免费一级视频| 久久奇米777| 国产又粗又大又爽视频| 97免费视频在线播放| 成人写真视频| 亚洲精品乱码久久| 88在线观看91蜜桃国自产| 天堂√8在线中文| 青青在线免费视频| 国产日产精品1区| 亚洲国产精品二区| 国产一区二区在线免费视频| 国产精品毛片| 久青草视频在线观看| 色噜噜狠狠狠综合曰曰曰 | 免费的av在线|