婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > MySQL Router實(shí)現(xiàn)MySQL的讀寫分離的方法

MySQL Router實(shí)現(xiàn)MySQL的讀寫分離的方法

熱門標(biāo)簽:南太平洋地圖標(biāo)注 武漢電銷機(jī)器人電話 html地圖標(biāo)注并導(dǎo)航 大豐地圖標(biāo)注app 400電話辦理服務(wù)價(jià)格最實(shí)惠 催天下外呼系統(tǒng) 北京金倫外呼系統(tǒng) 400電話變更申請 呂梁外呼系統(tǒng)

1.簡介

MySQL Router是MySQL官方提供的一個(gè)輕量級MySQL中間件,用于取代以前老版本的SQL proxy。

既然MySQL Router是一個(gè)數(shù)據(jù)庫的中間件,那么MySQL Router必須能夠分析來自前面客戶端的SQL請求是寫請求還是讀請求,以便決定這個(gè)SQL請求是發(fā)送給master還是slave,以及發(fā)送給哪個(gè)master、哪個(gè)slave。這樣,MySQL Router就實(shí)現(xiàn)了MySQL的讀寫分離,對MySQL請求進(jìn)行了負(fù)載均衡。

因此,MySQL Router的前提是后端實(shí)現(xiàn)了MySQL的主從復(fù)制。

MySQL Router很輕量級,只能通過不同的端口來實(shí)現(xiàn)簡單的讀/寫分離,且讀請求的調(diào)度算法只能使用默認(rèn)的rr(round-robin),更多一點(diǎn)、更復(fù)雜一點(diǎn)的能力都不具備。所以,在實(shí)現(xiàn)MySQL Router時(shí),需要自行配置好后端MySQL的高可用。高可用建議通過Percona XtraDB Cluster或MariaDB Galera或MySQL官方的group replication實(shí)現(xiàn),如果實(shí)在沒有選擇,還可以通過MHA實(shí)現(xiàn)。

所以,一個(gè)簡單的MySQL Router部署圖如下。

本文將使用MySQL Router分別實(shí)現(xiàn)后端無MySQL主從高可用情形的讀寫分離,至于為什么不實(shí)現(xiàn)后端有MySQL高可用的讀寫分離情形。在我看來,MySQL Router只是一個(gè)玩具,不僅功能少,而且需要在應(yīng)用程序代碼中指定讀/寫的不同端口(見后文關(guān)于配置文件的解釋),在實(shí)際環(huán)境中應(yīng)該沒人會這樣用。

2.配置MySQL Router

以下是實(shí)驗(yàn)環(huán)境。

角色名 主機(jī)IP MySQL版本 數(shù)據(jù)狀態(tài)
MySQL Router 192.168.100.21 MySQL 5.7.22
master 192.168.100.22 MySQL 5.7.22 全新實(shí)例
slave1 192.168.100.23 MySQL 5.7.22 全新實(shí)例
slave2 192.168.100.24 MySQL 5.7.22 全新實(shí)例

因?yàn)楹蠖薓ySQL主從復(fù)制沒有實(shí)現(xiàn)高可用,所以只有一個(gè)master節(jié)點(diǎn)負(fù)責(zé)寫操作。

所有后端MySQL節(jié)點(diǎn)都是剛安裝好的全新MySQL實(shí)例,所以直接開啟主從復(fù)制即可。如果是已有數(shù)據(jù)的主從復(fù)制,需要先保證它們已同步好,方法見:將slave恢復(fù)到master指定的坐標(biāo)。

2.1 安裝MySQL Router

二進(jìn)制版MySQL Router下載地址:https://dev.mysql.com/downloads/router/
rpm倉庫:http://repo.mysql.com/yum/mysql-tools-community/el/7/x86_64/

此處使用二進(jìn)制版的MySQL Router 2.1.6。

tar xf mysqlrouter-2.1.6-linux-glibc2.12-x86-64bit.tar.gz
mv mysqlrouter-2.1.6-linux-glibc2.12-x86-64bit /usr/local/mysqlrouter

這就完了,就這么簡單。

解壓二進(jìn)制包后,解壓目錄下有以下幾個(gè)文件。

[root@s1 mr]# ls
bin  data  include  lib  run  share

bin目錄下只有一個(gè)二進(jìn)制程序mysqlrouter,這也是MySQL Router的主程序。

share目錄下有示例配置文件和示例SysV風(fēng)格的啟動腳本,但是很不幸該腳本基于debian平臺,在redhat系列上需要修改和安裝一些東西才能使用。所以后文我自己寫了一個(gè)centos下的SysV腳本。

[root@s1 mr]# ls share/doc/mysqlrouter/
License.txt  README.txt  sample_mysqlrouter.conf  sample_mysqlrouter.init

最后,將主程序添加到PATH環(huán)境變量中。

echo "PATH=$PATH:/usr/local/mysqlrouter/bin" >/etc/profile.d/mysqlrouter.sh
chmod +x /etc/profile.d/mysqlrouter.sh
source /etc/profile.d/mysqlrouter.sh

2.2 啟動并測試MySQL Router

以下是上述實(shí)驗(yàn)環(huán)境的配置文件,這里只有一個(gè)master節(jié)點(diǎn)192.168.100.22:3306,如果有多個(gè)寫節(jié)點(diǎn)(master),則使用逗號分隔各節(jié)點(diǎn)。關(guān)于配置文件,后文會解釋。

[DEFAULT]
config_folder = /etc/mysqlrouter
logging_folder = /usr/local/mysqlrouter/log
runtime_folder = /var/run/mysqlrouter

[logger]
level = INFO

[routing:slaves]
bind_address = 192.168.100.21:7001
destinations = 192.168.100.23:3306,192.168.100.24:3306
mode = read-only
connect_timeout = 1

[routing:masters]
bind_address = 192.168.100.21:7002
destinations = 192.168.100.22:3306
mode = read-write
connect_timeout = 2

然后在MySQL Router所在的機(jī)器上創(chuàng)建上面使用的目錄。

shell> mkdir /etc/mysqlrouter /usr/local/mysqlrouter/log /var/run/mysqlrouter

這樣就可以啟動MySQL Router來提供服務(wù)了(啟動之前,請確保后端MySQL已被配置好主從復(fù)制)。

[root@s1 mr]# mysqlrouter 
[1] 16122

查看監(jiān)聽狀態(tài)。這里監(jiān)聽的兩個(gè)端口7001和7002是前端連接MySQL Router用的,它們用來接收前端發(fā)送的SQL請求,并按照讀、寫規(guī)則,將SQL請求路由到后端MySQL主從節(jié)點(diǎn)。

[root@s1 mr]# netstat -tnlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address        Foreign Address  State   PID/Program name 
tcp        0      0 0.0.0.0:6032         0.0.0.0:*        LISTEN  1231/proxysql    
tcp        0      0 0.0.0.0:6033         0.0.0.0:*        LISTEN  1231/proxysql    
tcp        0      0 0.0.0.0:22           0.0.0.0:*        LISTEN  1152/sshd        
tcp        0      0 192.168.100.21:7001  0.0.0.0:*        LISTEN  16122/mysqlrouter
tcp        0      0 127.0.0.1:25         0.0.0.0:*        LISTEN  2151/master      
tcp        0      0 192.168.100.21:7002  0.0.0.0:*        LISTEN  16122/mysqlrouter
tcp6       0      0 :::22                :::*             LISTEN  1152/sshd        
tcp6       0      0 ::1:25               :::*             LISTEN  2151/master      

查看日志:

[root@s1 mr]# cat /usr/local/mysqlrouter/log/mysqlrouter.log 
2018-07-07 10:14:29 INFO  [7f8a8e253700] [routing:slaves] started: listening on 192.168.100.21:7001; read-only

2018-07-07 10:14:29 INFO  [7f8a8ea54700] [routing:masters] started: listening on 192.168.100.21:7002; read-write

最后進(jìn)行測試即可。測試前,先在后端Master上授權(quán)MySQL Router節(jié)點(diǎn)允許連接,它將會復(fù)制到兩個(gè)slave節(jié)點(diǎn)上。

mysql> grant all on *.* to root@'192.168.100.%' identified by 'P@ssword1!';

連上MySQL Router的7002端口,這個(gè)端口是負(fù)責(zé)寫的端口。由于沒有配置主從高可用,所以,簡單測試下是否能寫即可。

[root@s1 mr]# mysql -uroot -pP@ssword1! -h192.168.100.21 -P7002 -e 'select @@server_id;'
mysql: [Warning] Using a password on the command line interface can be insecure.
+-------------+
| @@server_id |
+-------------+
|         110 |
+-------------+

[root@s1 mr]# mysql -uroot -pP@ssword1! -h192.168.100.21 -P7002 -e 'create database mytest;'
mysql: [Warning] Using a password on the command line interface can be insecure.

[root@s1 mr]# mysql -uroot -pP@ssword1! -h192.168.100.21 -P7002 -e 'show databases;'
mysql: [Warning] Using a password on the command line interface can be insecure.
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| mytest             |
| performance_schema |
| sys                |
+--------------------+

再測試下各slave節(jié)點(diǎn),是否能實(shí)現(xiàn)rr調(diào)度算法的讀請求的負(fù)載均衡。

[root@s1 mr]# mysql -uroot -pP@ssword1! -h192.168.100.21 -P7001 -e 'select @@server_id;' 
mysql: [Warning] Using a password on the command line interface can be insecure.
+-------------+
| @@server_id |
+-------------+
|         120 |
+-------------+

[root@s1 mr]# mysql -uroot -pP@ssword1! -h192.168.100.21 -P7001 -e 'select @@server_id;'
mysql: [Warning] Using a password on the command line interface can be insecure.
+-------------+
| @@server_id |
+-------------+
|         130 |
+-------------+

[root@s1 mr]# mysql -uroot -pP@ssword1! -h192.168.100.21 -P7001 -e 'show databases;'
mysql: [Warning] Using a password on the command line interface can be insecure.
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| mytest             |
| performance_schema |
| sys                |
+--------------------+

顯然,測試的結(jié)果一切正常。

這樣看來MySQL Router好簡單,確實(shí)好簡單。只需提供一個(gè)合理的配置文件,一切都完成了。那么,下面解釋下MySQL Router的配置文件。

3.MySQL Router的配置文件解釋

MySQL Router的配置文件也很簡單,需要配置的項(xiàng)不多。

mysql router默認(rèn)會尋找安裝目錄下的"mysqlrouter.conf"和家目錄下的".mysqlrouter.conf"。也可以在二進(jìn)制程序mysqlrouter命令下使用"-c"或者"--config"手動指定配置文件。

MySQL router的配置文件是片段式的,常用的就3個(gè)片段:[DEFAULT]、[logger]、[routing:NAME]。片段名稱區(qū)分大小寫,且只支持單行"#"或";"注釋,不支持行中、行尾注釋。

以上面示例的配置文件為例。

[DEFAULT]
config_folder = /etc/mysqlrouter
logging_folder = /usr/local/mysqlrouter/log
runtime_folder = /var/run/mysqlrouter

[logger]
level = INFO

[routing:slaves]
bind_address = 192.168.100.21:7001
destinations = 192.168.100.23:3306,192.168.100.24:3306
mode = read-only
connect_timeout = 1

[routing:masters]
bind_address = 192.168.100.21:7002
destinations = 192.168.100.22:3306
mode = read-write
connect_timeout = 2

1.DEFAULT片段的配置。

[DEFAULT]片段通常配置配置文件的目錄、日志的目錄、MySQL router運(yùn)行時(shí)的目錄(如pid文件)。

例如:

[DEFAULT]
config_folder=/etc/mysqlrouter   # 指定額外的配置文件目錄,該目錄下的conf文件都會被加載
logging_folder=/usr/local/mysqlrouter/log  # 指定日志目錄,日志文件名為mysqlrouter.log
runtime_folder=/var/run/mysqlrouter        # 指定運(yùn)行時(shí)目錄,默認(rèn)為/run/mysqlrouter

2.logger片段的配置。

[logger]片段只有一個(gè)選項(xiàng),設(shè)置日志的記錄級別。

[logger]
level=debug   # 有debug、info(默認(rèn))、warning、error、fatal,不區(qū)分大小寫

3.routing片段的配置。

[routing:NAME]是MySQL router主要部分,設(shè)置不同的路由實(shí)例,其中NAME可以隨意命名。如[routing:slaves][routing:masters]

在routing配置片段,可以設(shè)置的選項(xiàng)包括:

(1).bind_addressbind_port

bind_address和bind_port是mysql router監(jiān)聽前端SQL請求的地址和端口。其中端口是MySQL Router要求強(qiáng)制提供的,但可以不用bind_port綁定,因?yàn)樗捎猛ㄟ^bind_address的IP:PORT格式指定。
一個(gè)routing規(guī)則中只能設(shè)置一個(gè)地址監(jiān)聽指令,但可以通過"0.0.0.0"來監(jiān)聽主機(jī)上所有的地址。如果沒有提供監(jiān)聽地址,則默認(rèn)監(jiān)聽127.0.0.1。

另外,監(jiān)聽地址不能出現(xiàn)在destinations指令指定的列表中。

示例如下:

[routing:slaves]
bind_port = 7001
[routing:slaves]
bind_address = 192.168.100.21
bind_port = 7001
[routing:slaves]
bind_address = 192.168.100.21:7001

一般來說,通過不同端口實(shí)現(xiàn)讀/寫分離,并非好方法,最大的原因是需要在應(yīng)用程序代碼中指定這些連接端口。但是,MySQL Router只能通過這種方式實(shí)現(xiàn)讀寫分離,所以MySQL Router拿來當(dāng)玩具玩玩就好。

(2).destinations

定義routing規(guī)則的轉(zhuǎn)發(fā)目標(biāo),格式為HOST:PORT,HOST可以是IP也可以是主機(jī)名,多個(gè)轉(zhuǎn)發(fā)目標(biāo)使用逗號分隔。如定義的目標(biāo)列表是多個(gè)slave。

[routing:slaves]
bind_address = 192.168.100.21:7001
destinations = 192.168.100.23:3306,192.168.100.24:3306
[routing:masters]
bind_address = 192.168.100.21:7002
destinations = 192.168.100.22:3306,192.168.100.100:3306

(3).mode

MySQL router提供兩種mode:read-only和read-write。這兩種方式會產(chǎn)生不同的轉(zhuǎn)發(fā)調(diào)度方式。

設(shè)置為read-write,常用于設(shè)置destinations為master時(shí),實(shí)現(xiàn)master的高可用。

  • 調(diào)度方式:當(dāng)MySQL router第一次收到客戶端請求時(shí),會將請求轉(zhuǎn)發(fā)給destinations列表中的第一個(gè)目標(biāo),第二次收到客戶端請求還是會轉(zhuǎn)發(fā)給第一個(gè)目標(biāo),只有當(dāng)?shù)谝粋€(gè)目標(biāo)聯(lián)系不上(如關(guān)閉了MySQL服務(wù)、宕機(jī)等)才會聯(lián)系第二個(gè)目標(biāo),如果所有目標(biāo)都聯(lián)系不上,MySQL Router會中斷。這種調(diào)度方式被稱為"first-available"。
  • 當(dāng)聯(lián)系上了某一個(gè)目標(biāo)時(shí),MySQL Router會將其緩存下來,下次收到請求還會繼續(xù)轉(zhuǎn)發(fā)給該目標(biāo)。既然是緩存的目標(biāo),就意味著在MySQL Router重啟之后就會失效。
  • 所以通過MySQL Router實(shí)現(xiàn)讀寫分離的寫時(shí),可以設(shè)置多個(gè)master,讓性能好的master放在destinations列表的第一個(gè)位置,其他的master放在后面的位置作為備用master。

設(shè)置為read-only,常用于設(shè)置destinations為slave時(shí),實(shí)現(xiàn)MySQL讀請求負(fù)載均衡。

  • 調(diào)度方式:當(dāng)MySQL route收到客戶端請求時(shí),會從destinations列表中的第一個(gè)目標(biāo)開始向后輪詢(round-robin),第一個(gè)請求轉(zhuǎn)發(fā)給第一個(gè)目標(biāo),第二個(gè)請求轉(zhuǎn)發(fā)給第二個(gè)目標(biāo),轉(zhuǎn)發(fā)給最后一個(gè)目標(biāo)之后的下一個(gè)請求又轉(zhuǎn)發(fā)給第一個(gè)目標(biāo)。如果第一個(gè)目標(biāo)不可用,會依次向后檢查,直到目標(biāo)可用,如果所有目標(biāo)都不可用,則MySQL Router中斷。
  • 那些不可用的目標(biāo)會暫時(shí)被隔離,并且mysql router會不斷的檢查它們的狀況,當(dāng)重新可用時(shí)會重新加入到目標(biāo)列表。

(4).connect_timeout

  • MySQL Router聯(lián)系destinations的超時(shí)時(shí)間,默認(rèn)為1秒,值的范圍為1-65536。應(yīng)該盡量設(shè)置值小點(diǎn),免得等待時(shí)間過長。
  • 對于read-write模式,可以將超時(shí)時(shí)間設(shè)置的稍長一點(diǎn)點(diǎn),防止誤認(rèn)為主master不可用而去聯(lián)系備master。
  • 對于read-only模式,可以將超時(shí)時(shí)間設(shè)置的稍短一點(diǎn)點(diǎn),因?yàn)檫@種模式下是destinations列表輪詢的,即使誤判了影響也不會太大。

(5).其他選項(xiàng)

還能設(shè)置一些其他的指令,如使用的協(xié)議、最大請求數(shù)等,但是都可以不用設(shè)置使用默認(rèn)值,它們都是MySQL Router結(jié)合MySQL優(yōu)化過的一些選項(xiàng),本身已經(jīng)較完美了。

配置文件大概就這些內(nèi)容,配置好后,記得先創(chuàng)建default片段中涉及到的目錄。之后就可以啟動mysql router提供讀/寫分離服務(wù)了。

4.為MySQL Router提供SysV腳本

MySQL Router只提供了一個(gè)主程序(bin目錄下的mysqlrouter),且該程序只能啟動,沒有停止選項(xiàng),所以只能使用kill命令來殺掉進(jìn)程。

MySQL Router也提供了示例啟動腳本,該腳本在位置為$basedir/share/doc/mysqlrouter/sample_mysqlrouter.init,但是該腳本是基于Debian平臺的,在CentOS上需要設(shè)置和安裝一些東西,所以不用它,自己寫個(gè)粗糙點(diǎn)的腳本即可。

shell> vim /etc/init.d/mysqlrouter
#!/bin/bash

# chkconfig: - 78 30
# Description: Start / Stop MySQL Router

DAEMON=/usr/local/mysqlrouter
proc=$DAEMON/bin/mysqlrouter
DAEMON_OPTIONS="-c ${DAEMON}/mysqlrouter.conf"

. /etc/init.d/functions

start() {
    if [ -e /var/lock/subsys/mysqlrouter ]; then
        action "MySQL Router is working" /bin/false
    else
        $proc $DAEMON_OPTIONS  >/dev/null
        retval=$?
        echo
    if [ $retval -eq 0 ]; then
             touch /var/lock/subsys/mysqlrouter
        action "Starting MySQL Router" /bin/true
        else
        echo "Starting MySQL Router Failure"
        fi
    fi
}
    
stop() {
    if [ -e /var/lock/subsys/mysqlrouter ]; then
        killall $proc
        retval=$?
        echo
        if [ $retval -eq 0 ]; then
            rm -f /var/lock/subsys/mysqlrouter
            action "Stoping MySQL Router" /bin/true
        fi
    else
        action "MySQL Router is not working" /bin/false
    fi
}

status() {
    if [ -e /var/lock/subsys/mysqlrouter ]; then
        echo "MySQL Router is running"
    else
        echo "MySQL Router is not running"
    fi
}

case "$1" in
    start)
        start
        sleep 1
        ;;
     stop)
        stop
        sleep 1
        ;;
    restart)
        stop
        start
        sleep 1
        ;;
    status)
        status
        ;;
    *)
        echo "Usage: $0 {start|stop|status|restart}"
        retval=1
        ;;
esac

exit $retval   

然后賦予執(zhí)行權(quán)限。

shell> chmod +x /etc/init.d/mysqlrouter

到此這篇關(guān)于MySQL Router實(shí)現(xiàn)MySQL的讀寫分離的方法的文章就介紹到這了,更多相關(guān)MySQL Router 讀寫分離內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • MySQL主從同步、讀寫分離配置步驟
  • mysql 讀寫分離(基礎(chǔ)篇)
  • MySQL的使用中實(shí)現(xiàn)讀寫分離的教程
  • mysql 讀寫分離(實(shí)戰(zhàn)篇)
  • 使用PHP實(shí)現(xiàn)Mysql讀寫分離
  • 詳解MySQL的主從復(fù)制、讀寫分離、備份恢復(fù)
  • mysql主從復(fù)制讀寫分離的配置方法詳解
  • springboot基于Mybatis mysql實(shí)現(xiàn)讀寫分離
  • MySQL5.6 Replication主從復(fù)制(讀寫分離) 配置完整版
  • 利用mycat實(shí)現(xiàn)mysql數(shù)據(jù)庫讀寫分離的示例

標(biāo)簽:麗水 徐州 自貢 西寧 無錫 南充 迪慶 龍巖

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《MySQL Router實(shí)現(xiàn)MySQL的讀寫分離的方法》,本文關(guān)鍵詞  MySQL,Router,實(shí)現(xiàn),的,讀寫,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《MySQL Router實(shí)現(xiàn)MySQL的讀寫分離的方法》相關(guān)的同類信息!
  • 本頁收集關(guān)于MySQL Router實(shí)現(xiàn)MySQL的讀寫分離的方法的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    91精品国产综合久久久久久久久久 | 日韩一级成人av| 国产a久久麻豆| 性久久久久久久久久久久| 国产午夜精品一区二区三区视频 | www国产成人免费观看视频 深夜成人网 | 爽好多水快深点欧美视频| 久久精品免视看| 日韩一区二区在线观看视频| 91久久免费观看| 成人白浆超碰人人人人| 免费成人在线影院| 亚洲一区二区欧美日韩| 国产精品久久99| 国产色产综合产在线视频| 日韩一区二区三区av| 欧美日韩一区二区三区在线看| 99精品桃花视频在线观看| 国产综合久久久久久久久久久久| 夜夜精品视频一区二区| 国产精品视频第一区| 精品剧情在线观看| 日韩午夜激情视频| 欧美精品日韩精品| 在线精品视频免费播放| 91香蕉视频在线| 成人av集中营| eeuss国产一区二区三区| 国产超碰在线一区| 精品一区二区在线免费观看| 亚洲sss视频在线视频| 亚洲一区在线观看免费| 亚洲情趣在线观看| 亚洲人成网站色在线观看| 国产精品超碰97尤物18| 国产精品五月天| 国产精品区一区二区三区| 国产亚洲成aⅴ人片在线观看 | 亚洲精品国产无套在线观| 日韩理论片中文av| 亚洲男同性视频| 一区二区激情小说| 亚洲综合一二三区| 亚洲bt欧美bt精品| 日本中文字幕不卡| 麻豆成人久久精品二区三区红| 美女爽到高潮91| 久久99热99| 国产自产高清不卡| 国产黄色91视频| 99精品视频一区二区三区| 日本道在线观看一区二区| 欧美色精品在线视频| 欧美日韩高清一区| 欧美tickle裸体挠脚心vk| 久久综合九色综合欧美就去吻| 欧美—级在线免费片| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆 | 日韩av中文字幕一区二区| 麻豆国产欧美一区二区三区| 国产乱码字幕精品高清av | 91免费精品国自产拍在线不卡 | 欧美mv日韩mv国产网站| 久久综合av免费| 亚洲人成影院在线观看| 亚洲图片自拍偷拍| 激情小说亚洲一区| 99精品久久只有精品| 欧美影视一区二区三区| 日韩精品最新网址| 欧美激情一区二区三区在线| 一区二区不卡在线视频 午夜欧美不卡在 | 欧美日韩极品在线观看一区| 欧美大黄免费观看| 中文一区二区完整视频在线观看| 洋洋av久久久久久久一区| 青青草97国产精品免费观看 | 日韩视频一区在线观看| 中文字幕乱码日本亚洲一区二区 | 亚洲精品美腿丝袜| 免费成人在线视频观看| 波多野结衣亚洲| 日韩视频免费观看高清完整版在线观看 | 国产精品18久久久久久久久久久久| 色综合天天综合给合国产| 欧美一区二区三区在线视频| 亚洲欧洲韩国日本视频| 久久精品久久精品| 在线视频国内自拍亚洲视频| 久久久高清一区二区三区| 亚洲小说欧美激情另类| 国产一区二区在线影院| 欧美三级韩国三级日本一级| 国产女主播在线一区二区| 丝袜美腿亚洲色图| 9i看片成人免费高清| 精品国产乱子伦一区| 亚洲一区二区在线视频| 成人免费视频视频在线观看免费| 91麻豆精品国产91久久久久| ●精品国产综合乱码久久久久| 久久99精品国产.久久久久久| 色综合久久88色综合天天6| 久久午夜电影网| 免费在线成人网| 欧美亚洲精品一区| 中文字幕一区二区三区乱码在线 | 亚洲欧美在线aaa| 黄色日韩网站视频| 欧美一区二区在线播放| 一卡二卡欧美日韩| 成人av电影在线| 久久久久久久综合色一本| 日韩成人av影视| 在线观看91av| 亚洲二区视频在线| 91久久久免费一区二区| 亚洲色图清纯唯美| 不卡一卡二卡三乱码免费网站| 久久亚洲二区三区| 美脚の诱脚舐め脚责91 | 日本欧美一区二区三区乱码| 欧美在线影院一区二区| 亚洲精品成人少妇| 91蜜桃视频在线| 亚洲精品一二三区| 一本色道久久加勒比精品| 亚洲欧美综合网| 色综合网站在线| 亚洲一区二区在线免费观看视频| 色综合久久综合网97色综合| 亚洲另类春色校园小说| 色综合网色综合| 亚洲一二三四在线| 欧美婷婷六月丁香综合色| 亚洲香肠在线观看| 欧美日韩卡一卡二| 日韩高清不卡一区二区三区| 日韩精品一区二区三区蜜臀| 激情综合五月天| 久久九九国产精品| 国产成人在线视频播放| 国产精品久久三区| 日本高清视频一区二区| 午夜视频在线观看一区二区| 51久久夜色精品国产麻豆| 日本成人在线网站| 久久综合九色综合97_久久久| 国产99久久久国产精品潘金网站| 国产精品水嫩水嫩| 在线中文字幕一区| 首页亚洲欧美制服丝腿| 精品国产乱码久久久久久夜甘婷婷| 国产精品一品视频| 亚洲欧美综合色| 91精品久久久久久久99蜜桃| 国产一区二区福利| √…a在线天堂一区| 欧美日韩精品一区二区三区| 九色综合狠狠综合久久| 国产欧美日韩另类一区| 91浏览器在线视频| 男女男精品视频网| 欧美韩国日本一区| 欧美日韩在线一区二区| 激情另类小说区图片区视频区| 国产精品成人网| 91精品国产一区二区三区蜜臀| 国产91高潮流白浆在线麻豆 | 日韩av中文在线观看| 久久久久久日产精品| 欧美午夜精品久久久| 国产一区二区三区电影在线观看| 亚洲欧美另类久久久精品2019| 91精品国产全国免费观看| 国产精品一级片在线观看| 一区二区三国产精华液| 久久综合精品国产一区二区三区 | 中文字幕av一区二区三区| 欧美日韩午夜在线视频| 福利一区福利二区| 天天操天天综合网| 国产精品美日韩| 日韩视频在线永久播放| 91视频免费观看| 国产原创一区二区三区| 亚洲一区二区三区中文字幕 | 一区二区三区免费在线观看| 26uuu国产一区二区三区 | 国产精品卡一卡二卡三| 欧美区在线观看| 一本高清dvd不卡在线观看| 精品一区二区在线免费观看| 午夜视频一区二区三区| 中文字幕在线一区免费| 欧美精品一区二区三区很污很色的 | 2020国产成人综合网| 欧美色图第一页| 色综合久久综合中文综合网| 国产成人在线视频网站|