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

精品资源在线| 2024最新电影免费在线观看| 日韩精品成人一区二区在线| 中文字幕亚洲一区| 永久看看免费大片| 精品三级久久| 中文字幕中文字幕一区二区| 成人av蜜桃| 久久99国产综合精品免费| 成人3d动漫在线观看| 欧美日韩高清一区二区| 霍思燕三级露全乳照| av在线播放网站| 成人免费观看视频| 国产一区二区在线免费| 国产精品theporn动漫| 欧美日韩伦理| 亚洲国产黄色片| 欧美性猛交xxxx乱大交91| 麻豆视频在线看| 亚洲欧美日韩在线播放| 欧美一区二区综合| 成人乱码一区二区三区 | 亚洲人成电影网站色xx| 搡的我好爽在线观看免费视频| 麻豆国产在线| 亚洲一区二区在线视频| 亚洲欧美日韩不卡一区二区三区| 欧美熟女一区二区| 国产一区在线视频| 国产精品日本精品| av网站中文字幕| 99日韩精品| 久久久久久久一| 国产极品国产极品| 久久综合88| 亚洲免费精彩视频| 亚洲天堂美女视频| 4438全国亚洲精品观看视频| 欧美精选午夜久久久乱码6080| aa在线免费观看| 91超碰在线| 亚洲在线视频免费观看| 日本一区二区三区四区五区六区| 春暖花开成人亚洲区| 久久久精品国产免费观看同学| 国产精品一区二区三区不卡| 国产高清免费观看| 国产呦萝稀缺另类资源| 3d动漫啪啪精品一区二区免费 | 美国毛片一区二区| 国产精品成人一区二区| 天码人妻一区二区三区在线看| 亚洲清纯自拍| 97视频com| 日操夜操天天操| 日韩一区二区久久| 97超碰国产精品女人人人爽| 国产精品成人国产乱| 亚洲精品1区| 韩日欧美一区二区| 全部毛片永久免费看| 亚洲毛片一区| 日本成熟性欧美| 日韩欧美国产另类| 蓝色福利精品导航| 91在线高清视频| 超碰在线人人干| 成人夜色视频网站在线观看| 国产一区视频观看| 欧美日韩激情视频一区二区三区| 久久久精品tv| 亚洲自拍偷拍一区二区三区| 91一区二区三区在线| 亚洲国产日韩在线一区模特| 欧美色图另类小说| 日本美女久久| 日韩三级av在线播放| 制服丝袜第一页在线观看| 一道本一区二区三区| 一区二区三区视频观看| 成人三级视频在线观看| 欧美亚洲不卡| 热久久免费视频精品| 这里只有精品6| 成人性生交大片免费看中文| 久久久久久国产精品一区| 成人动漫在线播放| 樱花草国产18久久久久| 黄色一级在线视频| jvid一区二区三区| 欧美变态口味重另类| 国产精品揄拍100视频| 日韩中文字幕高清在线观看| 九九九久久久久久| 国产精品免费精品一区| 久久er99热精品一区二区| 成人欧美一区二区三区视频xxx| 秋霞欧美在线观看| 欧美国产激情一区二区三区蜜月| 97超碰人人爱| 香蕉视频亚洲一级| 精品国产精品网麻豆系列| 亚洲国产天堂av| 国内在线观看一区二区三区| 国产精欧美一区二区三区| 精品人妻伦一区二区三区久久| 久久综合久久鬼色中文字| 国产成年人在线观看| 在线免费日韩片| 日韩欧美中文字幕一区| 99精品欧美一区二区| 99视频一区| 91丝袜脚交足在线播放| 高清中文字幕一区二区三区| 亚洲自拍偷拍网站| 国内外成人免费在线视频| 美女一区二区在线观看| 粗暴蹂躏中文一区二区三区| 无码人妻av免费一区二区三区 | 91麻豆蜜桃| 成人h小游戏| 色播五月激情综合网| 涩视频在线观看| 国产精品黑丝在线播放| 日本在线精品视频| 五月天久久久久久| 亚洲一区二区偷拍精品| 国产在线观看中文字幕| 欧美日韩中字| 国产成人亚洲综合| 婷婷在线免费观看| 亚洲国产综合在线| 国产成人av免费观看| 999国产精品视频| 国产精品视频一区二区三区四| 亚洲人妻一区二区三区| 午夜精彩视频在线观看不卡| 视频区 图片区 小说区| 亚洲精品小说| 成人黄色免费网站在线观看| 中国日本在线视频中文字幕| 欧美在线观看一区| 久久精品无码一区| 噜噜噜在线观看免费视频日韩| 久久av一区二区| 川上优av中文字幕一区二区| 精品91自产拍在线观看一区| 久久久久97国产| 国产91丝袜在线观看| 成人污网站在线观看| 日韩一级淫片| 欧美韩国理论所午夜片917电影| 一区二区日韩在线观看| 中文字幕中文在线不卡住| 亚洲国产成人va在线观看麻豆| 欧美日韩一二三四| 成人国产精品一区| h片在线免费观看| 日韩三级高清在线| 日本熟妇色xxxxx日本免费看| 国产成人精品一区二| 欧妇女乱妇女乱视频| 盗摄系列偷拍视频精品tp| 亚州国产精品久久久| 亚洲色欧美另类| 色天使色偷偷av一区二区| 天堂在线中文视频| 久久99精品久久久久婷婷| 欧美与动交zoz0z| 黄色美女久久久| 日本精品久久久久影院| 69视频在线观看| 日韩小视频在线观看专区| 国产免费无码一区二区视频| 成人18精品视频| 男人透女人免费视频| 日韩国产一区二区| 97久久天天综合色天天综合色hd| av资源中文在线| 亚洲人永久免费| 国产三级伦理片| 五月天丁香久久| 欧美日韩生活片| 国产宾馆实践打屁股91| 日韩网址在线观看| 久久精品国内一区二区三区水蜜桃 | 亚洲黄色一区二区三区| 日韩中文字幕无砖| 欧美一级在线播放| caoporn免费在线视频| 亚洲国语精品自产拍在线观看| 国产一级免费视频| 亚洲欧美aⅴ...| 国产伦精品一区二区三区妓女| 日韩在线观看一区二区| 狠狠噜天天噜日日噜| 国产精品欧美三级在线观看| 96国产粉嫩美女| 深夜成人影院| 欧美激情在线观看| 18视频免费网址在线观看| 亚洲国产97在线精品一区| 中文字幕人妻精品一区| 亚洲观看高清完整版在线观看| 少妇人妻好深好紧精品无码| 国产成人高清在线| 国产又大又黄又粗又爽| 亚洲麻豆av| 国产1区2区3区中文字幕| 国产一区二区三区四区| 国产v亚洲v天堂无码| av久久网站| 奇米四色中文综合久久| 先锋成人av| 精品精品国产国产自在线| 人操人视频在线观看| 日韩欧美国产电影| 亚洲网站在线免费观看| 欧美日韩中国免费专区在线看| 欧美三级小视频| 国产精品免费视频观看| 日本xxxxxxxxx18| 9色porny自拍视频一区二区| 亚洲欧美日韩一二三区| 久久精品免费看| 亚洲少妇第一页| 欧美综合国产| 欧美一级视频免费看| 国产精品成人a在线观看| 亚洲草草视频| sdde在线播放一区二区| 欧美另类视频在线| 亚洲免费成人av在线| 国外成人免费视频| 精品少妇一区| 国产精品夜夜夜一区二区三区尤| 久久精品一级| 91情侣偷在线精品国产| 91国产精品| 国产主播欧美精品| 亚洲国产天堂| 国产综合福利在线| 曰本一区二区| 成人免费福利在线| 国产精选久久| 亚洲在线免费看| 日本少妇精品亚洲第一区| 亚洲在线免费视频| 2021年精品国产福利在线| 99久久一区三区四区免费| 日韩欧美中文字幕在线视频| 2014国产精品| 成人自拍在线| 好吊色欧美一区二区三区| 欧美性生活一级片| 免费成人深夜夜行视频| 久久99青青| 一区二区三区四区国产| 五月久久久综合一区二区小说| av不卡在线免费观看| 中文无码久久精品| 隔壁人妻偷人bd中字| 国产深夜精品| 国产精品人人爽人人爽| 激情亚洲综合在线| 韩国一区二区三区四区| 91在线国内视频| 手机免费看av| 亚洲色图在线视频| 日本在线视频免费| 欧洲一区在线电影| aaa级黄色片| 日韩成人中文字幕| 成a人片在线观看www视频| 久久久国产精品x99av | 日本欧美黄网站| 欧美久久久网站| 成人资源视频网站免费| 婷婷激情久久| 伊人久久大香线蕉精品| 欧美日一区二区三区在线观看国产免| 丰满的少妇愉情hd高清果冻传媒| 亚洲欧美日韩国产一区二区| 在线黄色免费观看| 国产白丝精品91爽爽久久| 老鸭窝一区二区| 亚洲欧洲精品天堂一级| 日韩av一二三区| 精品婷婷伊人一区三区三| 精品区在线观看| 亚洲性av网站| 女同一区二区免费aⅴ| 国产高清视频一区三区| 久久天堂久久| 日韩国产精品一区二区| 黑人一区二区| 亚洲免费av一区二区三区| 国产精品一区二区x88av| 这里只有久久精品| 一区二区三区色| 午夜视频网站在线观看| 亚洲精品在线免费观看视频| www黄在线观看| 97精品国产97久久久久久免费 | 欧美色爱综合网| 天天av天天翘| 乱亲女秽乱长久久久| 新片速递亚洲合集欧美合集| 粉嫩av四季av绯色av第一区| 日韩精品2区| 茄子视频成人免费观看| 国产又黄又大久久| 蜜桃av免费在线观看| 黑人巨大精品欧美一区免费视频| 999国产精品视频免费| 亚洲无限av看| 欧美另类老肥妇| 97久久天天综合色天天综合色hd| 99精品综合| 亚洲少妇第一页| 国产亚洲欧美在线| 国产精品国产三级国产专区52| 7777精品伊人久久久大香线蕉最新版| 五月天激情开心网| 久久久久久欧美| 亚洲国产欧美国产第一区| 一区二区三区四区欧美| 奇米影视一区二区三区| 人人人妻人人澡人人爽欧美一区| 精品毛片网大全| 手机在线观看免费av| 九色精品免费永久在线| 激情综合婷婷| 亚洲av首页在线| 国产一区二区剧情av在线| 天美传媒免费在线观看| 欧美手机在线视频| 国产毛片av在线| 国产成人免费av电影| 尤物tv在线精品| 国产偷人视频免费| 99国产欧美久久久精品| 在线观看亚洲欧美| 日韩av在线精品| 岛国在线视频网站| 久久精品美女| 另类激情亚洲| 变态另类ts人妖一区二区| 欧美视频一区二区在线观看| 高清在线观看av| 成人国产精品一区| 欧美精品激情| 亚洲精品在线视频免费观看| 狠狠躁天天躁日日躁欧美| 肉丝一区二区| 日韩美女在线观看| 精品福利久久久| 色噜噜狠狠永久免费| 中文字幕中文字幕一区| hs视频在线观看| 性欧美xxxx| 国产探花一区| 亚洲美女性囗交| 亚洲最快最全在线视频| 天天综合在线视频| 国产91在线播放精品91| 欧美激情偷拍自拍| 男人的天堂免费| 精品国产乱码久久久久久天美| 黄色美女网站在线观看| 国产精品三级在线| 国产精品v欧美精品v日本精品动漫| 日韩Av无码精品| 欧洲精品一区二区三区在线观看| 欧美成人视屏| 高清视频一区| 视频一区国产视频| 黄色录像一级片| 亚洲国模精品私拍| 青青草国产一区二区三区| 蜜臀精品一区二区| 国产日产欧产精品推荐色 | 国产午夜免费视频| 亚洲午夜精品久久久久久性色| 亚洲精品伦理| 欧美成人高潮一二区在线看| 国产欧美日韩激情| www.狠狠干| 国产精品爽黄69天堂a| 欧美日韩网址| 极品蜜桃臀肥臀-x88av| 精品免费国产二区三区| 视频在线日韩| 日韩成人手机在线| 中文字幕av在线一区二区三区| 午夜精品一二三区| 国产精品日韩在线一区| 亚洲激情自拍| 国精品人伦一区二区三区蜜桃|