• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            Fork me on GitHub
            隨筆 - 215  文章 - 13  trackbacks - 0
            <2017年7月>
            2526272829301
            2345678
            9101112131415
            16171819202122
            23242526272829
            303112345


            專注即時通訊及網(wǎng)游服務(wù)端編程
            ------------------------------------
            Openresty 官方模塊
            Openresty 標(biāo)準(zhǔn)模塊(Opm)
            Openresty 三方模塊
            ------------------------------------
            本博收藏大部分文章為轉(zhuǎn)載,并在文章開頭給出了原文出處,如有再轉(zhuǎn),敬請保留相關(guān)信息,這是大家對原創(chuàng)作者勞動成果的自覺尊重!!如為您帶來不便,請于本博下留言,謝謝配合。

            常用鏈接

            留言簿(1)

            隨筆分類

            隨筆檔案

            相冊

            Awesome

            Blog

            Book

            GitHub

            Link

            搜索

            •  

            積分與排名

            • 積分 - 215511
            • 排名 - 118

            最新評論

            閱讀排行榜

            http://blog.csdn.net/benxiaohai529/article/details/52848414

            前言

            前些天一直在忙線上環(huán)境部署的事情,初步想的是,nginx(keepalive雙機熱備)+3(tomcat)+2redis(雙機熱備),但是后來由于阿里云服務(wù)器經(jīng)典網(wǎng)絡(luò)不提供虛擬IP,無法使用keepalive,nginx雙機熱備只能暫時先放棄,退而求其次,采用nginx+3tomcat+2redis(雙機熱備)。nginx+tomcat由于之前配置過,所以重點就落在Redis雙機熱備上,畢竟是線上系統(tǒng),適當(dāng)?shù)目篂?zāi)能力還是需要的,咱可不能像測試系統(tǒng)那么去玩,否則黑鍋就有的背了,畢竟碼代碼賺點生活費也不容易。

            在網(wǎng)上也查了一些資料,redis集群實現(xiàn)大概有以下幾種方式:

            1.redis-cluster,官方提供的集群搭建方案(過于重量級,比較適合后期數(shù)據(jù)量較大的時候的使用)

            2.redis+keepalive(由于我們使用的阿里云服務(wù)器不支持虛擬IP,所以這套方案也就夭折了)

            3.redis+zookeeper(需要引入zookeeper,對現(xiàn)有代碼變動較大)

            4.redis+sentinel(redis自帶監(jiān)控中間件)(代碼變動小,配置少,而且能滿足雙機熱備的需求)

            基于我們目前的情況以及需求,經(jīng)過初略對比,我們團隊決定選用第四種方案redis+sentinel實現(xiàn)雙機熱備。

            準(zhǔn)備工作

            1.安裝redis-001(主)

            $ wget http://download.redis.io/releases/redis-3.2.3.tar.gz $ tar xzf redis-3.2.3.tar.gz $ mv redis-3.2.3 redis-001 $ cd redis-001 $ make

            2.安裝redis-002(從)

            $ wget http://download.redis.io/releases/redis-3.2.3.tar.gz $ tar xzf redis-3.2.3.tar.gz $ mv redis-3.2.3 redis-002 $ cd redis-002 $ make

            3.修改redis-002端口為6380

            $ cd /usr/tools/redis-002/ $ vim redis.conf ...找到port 6379改為6380...

            4.修改redis默認(rèn)配置

            a.關(guān)閉ip綁定,注釋redis.conf中bind 127.0.0.1

            b.關(guān)閉保護模式,將protected-mode yes改為protected-mode no

            5.啟動redis-001,redis-002

            $ cd tools/redis-001/ $ ./src/redis-server redis.conf

            出現(xiàn)以下信息就表示啟動成功了:

            12513:M 09 Oct 11:15:49.061 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect. 12513:M 09 Oct 11:15:49.061 # WARNING you have Transparent Huge Pages (THP) support enabled in your kernel. This will create latency and memory usage issues with Redis. To fix this issue run the command 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' as root, and add it to your /etc/rc.local in order to retain the setting after a reboot. Redis must be restarted after THP is disabled. 12513:M 09 Oct 11:15:49.061 * DB loaded from disk: 0.000 seconds 12513:M 09 Oct 11:15:49.061 * The server is now ready to accept connections on port 6379 

            redis主從復(fù)制

            1.redis 復(fù)制的特點

                1). 同一個Master可以同步多個Slaves。
                2). Slave同樣可以接受其它Slaves的連接和同步請求,這樣可以有效的分載Master的同步壓力。因此我們可以將Redis的Replication架構(gòu)視為圖結(jié)構(gòu)。
                3). Master Server是以非阻塞的方式為Slaves提供服務(wù)。所以在Master-Slave同步期間,客戶端仍然可以提交查詢或修改請求。
                4). Slave Server同樣是以非阻塞的方式完成數(shù)據(jù)同步。在同步期間,如果有客戶端提交查詢請求,Redis則返回同步之前的數(shù)據(jù)。
                5). 為了分載Master的讀操作壓力,Slave服務(wù)器可以為客戶端提供只讀操作的服務(wù),寫服務(wù)仍然必須由Master來完成。即便如此,系統(tǒng)的伸縮性還是得到了很大的提高。
                6). Master可以將數(shù)據(jù)保存操作交給Slaves完成,從而避免了在Master中要有獨立的進程來完成此操作。

            2.redis復(fù)制原理

                在Slave啟動并連接到Master之后,它將主動發(fā)送一個SYNC命令。此后Master將啟動后臺存盤進程,同時收集所有接收到的用于修改數(shù)據(jù)集的命令,在后臺進程執(zhí)行完畢后,Master將傳送整個數(shù)據(jù)庫文件到Slave,以完成一次完全同步。而Slave服務(wù)器在接收到數(shù)據(jù)庫文件數(shù)據(jù)之后將其存盤并加載到內(nèi)存中。此后,Master繼續(xù)將所有已經(jīng)收集到的修改命令,和新的修改命令依次傳送給Slaves,Slave將在本次執(zhí)行這些數(shù)據(jù)修改命令,從而達到最終的數(shù)據(jù)同步。
                如果Master和Slave之間的鏈接出現(xiàn)斷連現(xiàn)象,Slave可以自動重連Master,但是在連接成功之后,一次完全同步將被自動執(zhí)行。

            3.redis主從配置

            前面也說了,redis主從配置很簡單,只需要一個slaveof就可以搞定。

            連接redis-002,執(zhí)行slaveof 192.168.231.130 6379:

            C:\Users\lenovo\Desktop\redis>D: D:\>cd D:\Program Files\Redis-x64-3.0.5 D:\Program Files\Redis-x64-3.0.5>redis-cli.exe -h 192.168.231.130 -p 6380 192.168.231.130:6380> slaveof 192.168.231.130 6379 OK 192.168.231.130:6380>

            執(zhí)行完成后,可以看到服務(wù)器上redis-001控制臺輸出以下內(nèi)容:

            12513:M 09 Oct 11:15:49.061 * DB loaded from disk: 0.000 seconds 12513:M 09 Oct 11:15:49.061 * The server is now ready to accept connections on port 6379 12513:M 09 Oct 11:41:59.371 * Slave 192.168.231.130:6380 asks for synchronization 12513:M 09 Oct 11:41:59.371 * Full resync requested by slave 192.168.231.130:6380 12513:M 09 Oct 11:41:59.371 * Starting BGSAVE for SYNC with target: disk 12513:M 09 Oct 11:41:59.372 * Background saving started by pid 13673 13673:C 09 Oct 11:41:59.388 * DB saved on disk 13673:C 09 Oct 11:41:59.388 * RDB: 6 MB of memory used by copy-on-write 12513:M 09 Oct 11:41:59.462 * Background saving terminated with success 12513:M 09 Oct 11:41:59.462 * Synchronization with slave 192.168.231.130:6380 succeeded

            redis-002控制臺輸出:

            13581:S 09 Oct 11:41:59.361 * Connecting to MASTER 192.168.231.130:6379 13581:S 09 Oct 11:41:59.370 * MASTER <-> SLAVE sync started 13581:S 09 Oct 11:41:59.370 * Non blocking connect for SYNC fired the event. 13581:S 09 Oct 11:41:59.371 * Master replied to PING, replication can continue... 13581:S 09 Oct 11:41:59.371 * Partial resynchronization not possible (no cached master) 13581:S 09 Oct 11:41:59.374 * Full resync from master: e2f4e2608956ea6392482c2e0a9429efdebd2b53:1 13581:S 09 Oct 11:41:59.462 * MASTER <-> SLAVE sync: receiving 76 bytes from master 13581:S 09 Oct 11:41:59.463 * MASTER <-> SLAVE sync: Flushing old data 13581:S 09 Oct 11:41:59.463 * MASTER <-> SLAVE sync: Loading DB in memory 13581:S 09 Oct 11:41:59.463 * MASTER <-> SLAVE sync: Finished with success 

            但是這樣做的話,重啟redis-002后又會復(fù)原,所以通常我們會直接修改redis-002配置文件redis.conf,在末尾加上slaveof 192.168.231.130 6379部分,就永久有效了。

            現(xiàn)在我們往redis-001中寫入數(shù)據(jù),就可以從redis-002中查詢出來了,我們來測試一下,往redis-001中寫入key為name,value為osc的數(shù)據(jù)。

            192.168.231.130:6379> set name osc OK 192.168.231.130:6379> keys * 1) "name" 192.168.231.130:6379>

            查詢redis-002中的數(shù)據(jù),會發(fā)現(xiàn)同樣存在name的key,并且值為osc 

            192.168.231.130:6380> keys * 1) "name" 192.168.231.130:6380> get name "osc" 192.168.231.130:6380>

            到目前為止,redis主從復(fù)制已經(jīng)配置成功了,接下來就要開始重點工作,配置雙機熱備。

            redis+sentinel雙機熱備

            1.理論概念

                雙機熱備特指基于高可用系統(tǒng)中的兩臺服務(wù)器的熱備(或高可用),因兩機高可用在國內(nèi)使用較多,故得名雙機熱備,雙機高可用按工作中的切換方式分為:主-備方式(Active-Standby方式)和雙主機方式(Active-Active方式),主-備方式即指的是一臺服務(wù)器處于某種業(yè)務(wù)的激活狀態(tài)(即Active狀態(tài)),另一臺服務(wù)器處于該業(yè)務(wù)的備用狀態(tài)(即Standby狀態(tài))。而雙主機方式即指兩種不同業(yè)務(wù)分別在兩臺服務(wù)器上互為主備狀態(tài)(即Active-Standby和Standby-Active狀態(tài))。

            大白話就是,當(dāng)主服務(wù)器掛了之后,從服務(wù)器立馬切換為主服務(wù)器繼續(xù)工作,當(dāng)原先主服務(wù)器修復(fù)完善啟動后,會自動充當(dāng)從服務(wù)器的角色繼續(xù)工作。這樣就很好的避免了,由于一臺主機出現(xiàn)故障,系統(tǒng)掛點的現(xiàn)象出現(xiàn)。

            Sentinel(哨兵)是用于監(jiān)控redis集群中Master狀態(tài)的工具,已經(jīng)集成在redis官方版本中,可以直接配置使用。

            2.Sentinel命令

                   PING :返回 PONG 。
                   SENTINEL masters :列出所有被監(jiān)視的主服務(wù)器,以及這些主服務(wù)器的當(dāng)前狀態(tài);
                   SENTINEL slaves <master name> :列出給定主服務(wù)器的所有從服務(wù)器,以及這些從服務(wù)器的當(dāng)前狀態(tài);
                   SENTINEL get-master-addr-by-name <master name> : 返回給定名字的主服務(wù)器的 IP 地址和端口號。 如果這個主服務(wù)器正在執(zhí)行故障轉(zhuǎn)移操作, 或者針對這個主服務(wù)器的故障轉(zhuǎn)移操作已經(jīng)完成, 那么這個命令返回新的主服務(wù)器的 IP 地址和端口號;
                   SENTINEL reset <pattern> : 重置所有名字和給定模式 pattern 相匹配的主服務(wù)器。 pattern 參數(shù)是一個 Glob 風(fēng)格的模式。 重置操作清楚主服務(wù)器目前的所有狀態(tài), 包括正在執(zhí)行中的故障轉(zhuǎn)移, 并移除目前已經(jīng)發(fā)現(xiàn)和關(guān)聯(lián)的, 主服務(wù)器的所有從服務(wù)器和 Sentinel ;
                   SENTINEL failover <master name> : 當(dāng)主服務(wù)器失效時, 在不詢問其他 Sentinel 意見的情況下, 強制開始一次自動故障遷移。

            客戶端可以通過SENTINEL get-master-addr-by-name <master name>獲取當(dāng)前的主服務(wù)器IP地址和端口號,以及SENTINEL slaves <master name>獲取所有的Slaves信息

            3.雙機熱備配置

            a.關(guān)閉redis-001與redis-002

            b.在redis-001和redis-002配置sentinel.conf中加上以下配置信息:

            sentinel monitor mymaster 192.168.231.130 6379 1

            c.修改redis-002 sentinel.conf監(jiān)聽端口:

            $ cd /usr/tools/redis-002/ $ vim sentinel.conf ...找到port 26379改為26380... port 26380

            d.分別啟動redis-001(主)與redis-002(從),redis 服務(wù)和sentinel服務(wù)

            ​$ cd /usr/tools/redis-002/ $ ./src/redis-server redis.conf $ ./src/redis-sentinel sentinel.conf
            ​$ cd /usr/tools/redis-001/ $ ./src/redis-server redis.conf $ ./src/redis-sentinel sentinel.conf

            此時在主從redis,sentinel控制臺會出現(xiàn)以下信息:

            14677:X 09 Oct 14:04:49.633 # Sentinel ID is 7b8fdc1e5e47426b0d62a3ddd22ede0fd712f452 14677:X 09 Oct 14:04:49.633 # +monitor master mymaster 192.168.231.130 6379 quorum 1 14677:X 09 Oct 14:04:49.634 * +slave slave 192.168.231.130:6380 192.168.231.130 6380 @ mymaster 192.168.231.130 6379 14677:X 09 Oct 14:05:53.727 * +sentinel sentinel 31e660153984b606951c564395bdc8e193943f0b 192.168.231.130 26380 @ mymaster 192.168.231.130 6379

            e.測試結(jié)果:

            連接主服務(wù)器sentinel,注意端口是sentinel.conf中配置的端口。

            根據(jù)前面描述的sentinel命令查詢主服務(wù)器信息:

            192.168.231.130:26379> SENTINEL masters 1)  1) "name"     2) "mymaster"     3) "ip"     4) "192.168.231.130"     5) "port"     6) "6379"     7) "runid"     8) "fafb94fe9bff119e8a97f9183e3bcb5561933631"     9) "flags"    10) "master"    11) "link-pending-commands"    12) "0"    13) "link-refcount"    14) "1"    15) "last-ping-sent"    16) "0"    17) "last-ok-ping-reply"    18) "671"    19) "last-ping-reply"    20) "671"    21) "down-after-milliseconds"    22) "10000"    23) "info-refresh"    24) "4904"    25) "role-reported"    26) "master"    27) "role-reported-time"    28) "205675"    29) "config-epoch"    30) "0"    31) "num-slaves"    32) "1"    33) "num-other-sentinels"    34) "1"    35) "quorum"    36) "1"    37) "failover-timeout"    38) "180000"    39) "parallel-syncs"    40) "1" 192.168.231.130:26379>

            查詢從服務(wù)器信息:

            192.168.231.130:26379> SENTINEL slaves mymaster 1)  1) "name"     2) "192.168.231.130:6380"     3) "ip"     4) "192.168.231.130"     5) "port"     6) "6380"     7) "runid"     8) "feabcfa65e69778e877ca0bd95adb9d642f6522f"     9) "flags"    10) "slave"    11) "link-pending-commands"    12) "0"    13) "link-refcount"    14) "1"    15) "last-ping-sent"    16) "0"    17) "last-ok-ping-reply"    18) "928"    19) "last-ping-reply"    20) "928"    21) "down-after-milliseconds"    22) "10000"    23) "info-refresh"    24) "7332"    25) "role-reported"    26) "slave"    27) "role-reported-time"    28) "388802"    29) "master-link-down-time"    30) "0"    31) "master-link-status"    32) "ok"    33) "master-host"    34) "192.168.231.130"    35) "master-port"    36) "6379"    37) "slave-priority"    38) "100"    39) "slave-repl-offset"    40) "472844" 192.168.231.130:26379>

            現(xiàn)在,我們來關(guān)閉端口為6379主redis-001服務(wù)器,看看會出現(xiàn)什么情況,此時redis-002控制臺會出現(xiàn)以下信息:

            14735:S 09 Oct 14:15:47.618 # Error condition on socket for SYNC: Connection refused 14735:S 09 Oct 14:15:48.628 * Connecting to MASTER 192.168.231.130:6379 14735:S 09 Oct 14:15:48.628 * MASTER <-> SLAVE sync started 14735:S 09 Oct 14:15:48.628 # Error condition on socket for SYNC: Connection refused 14735:S 09 Oct 14:15:49.638 * Connecting to MASTER 192.168.231.130:6379 14735:S 09 Oct 14:15:49.638 * MASTER <-> SLAVE sync started 14735:S 09 Oct 14:15:49.638 # Error condition on socket for SYNC: Connection refused 14735:S 09 Oct 14:15:50.648 * Connecting to MASTER 192.168.231.130:6379 14735:S 09 Oct 14:15:50.648 * MASTER <-> SLAVE sync started 14735:S 09 Oct 14:15:50.648 # Error condition on socket for SYNC: Connection refused 14735:S 09 Oct 14:15:51.659 * Connecting to MASTER 192.168.231.130:6379 14735:S 09 Oct 14:15:51.659 * MASTER <-> SLAVE sync started 14735:S 09 Oct 14:15:51.659 # Error condition on socket for SYNC: Connection refused 14735:S 09 Oct 14:15:52.669 * Connecting to MASTER 192.168.231.130:6379 14735:S 09 Oct 14:15:52.669 * MASTER <-> SLAVE sync started 14735:S 09 Oct 14:15:52.669 # Error condition on socket for SYNC: Connection refused 14735:M 09 Oct 14:15:53.459 * Discarding previously cached master state. 14735:M 09 Oct 14:15:53.459 * MASTER MODE enabled (user request from 'id=5 addr=192.168.231.130:53187 fd=7 name=sentinel-7b8fdc1e-cmd age=23 idle=0 flags=x db=0 sub=0 psub=0 multi=3 qbuf=0 qbuf-free=32768 obl=36 oll=0 omem=0 events=r cmd=exec') 14735:M 09 Oct 14:15:53.463 # CONFIG REWRITE executed with success.

            從日志可以看出,服務(wù)器會經(jīng)過多次連接主服務(wù)器失敗后,判定主服務(wù)器故障,會對配置文件進行重寫(CONFIG REWRITE executed with success),我們再去看看從服務(wù)器的配置文件redis.conf,會發(fā)現(xiàn)之前在末尾加上的slaveof 192.168.231.130 6379不見了,這就說明當(dāng)sentinel監(jiān)測到主服務(wù)器掛掉之后,自動將從服務(wù)器切換為主服務(wù)器。

            我們再來看看主從服務(wù)器sentinel控制臺輸出了信息:

            主sentinel:

            14677:X 09 Oct 14:15:54.384 # +promoted-slave slave 192.168.231.130:6380 192.168.231.130 6380 @ mymaster 192.168.231.130 6379 14677:X 09 Oct 14:15:54.384 # +failover-state-reconf-slaves master mymaster 192.168.231.130 6379 14677:X 09 Oct 14:15:54.456 # +failover-end master mymaster 192.168.231.130 6379 14677:X 09 Oct 14:15:54.456 # +switch-master mymaster 192.168.231.130 6379 192.168.231.130 6380 14677:X 09 Oct 14:15:54.456 * +slave slave 192.168.231.130:6379 192.168.231.130 6379 @ mymaster 192.168.231.130 6380 14677:X 09 Oct 14:16:04.479 # +sdown slave 192.168.231.130:6379 192.168.231.130 6379 @ mymaster 192.168.231.130 6380

            從sentinel:

            14688:X 09 Oct 14:15:53.223 # +sdown master mymaster 192.168.231.130 6379 14688:X 09 Oct 14:15:53.223 # +odown master mymaster 192.168.231.130 6379 #quorum 1/1 14688:X 09 Oct 14:15:53.223 # Next failover delay: I will not start a failover before Sun Oct  9 14:21:53 2016 14688:X 09 Oct 14:15:54.461 # +config-update-from sentinel 7b8fdc1e5e47426b0d62a3ddd22ede0fd712f452 192.168.231.130 26379 @ mymaster 192.168.231.130 6379 14688:X 09 Oct 14:15:54.461 # +switch-master mymaster 192.168.231.130 6379 192.168.231.130 6380 14688:X 09 Oct 14:15:54.461 * +slave slave 192.168.231.130:6379 192.168.231.130 6379 @ mymaster 192.168.231.130 6380 14688:X 09 Oct 14:16:04.483 # +sdown slave 192.168.231.130:6379 192.168.231.130 6379 @ mymaster 192.168.231.130 6380 

            從上面日志信息可以看出,主從確實已經(jīng)切換成功了,最后我們來看看實際情況是不是那樣的,打開命令行執(zhí)行查詢主從信息命令,看看會出現(xiàn)什么結(jié)果:

            192.168.231.130:26379> SENTINEL get-master-addr-by-name mymaster 1) "192.168.231.130" 2) "6380" 192.168.231.130:26379>
            192.168.231.130:26379> SENTINEL masters 1)  1) "name"     2) "mymaster"     3) "ip"     4) "192.168.231.130"     5) "port"     6) "6380"     7) "runid"     8) "bb4fe3dece04db30c29f6650f1edd4d3689da751"     9) "flags"    10) "master"    11) "link-pending-commands"    12) "0"    13) "link-refcount"    14) "1"    15) "last-ping-sent"    16) "0"    17) "last-ok-ping-reply"    18) "14"    19) "last-ping-reply"    20) "14"    21) "down-after-milliseconds"    22) "10000"    23) "info-refresh"    24) "4648"    25) "role-reported"    26) "master"    27) "role-reported-time"    28) "847746"    29) "config-epoch"    30) "1"    31) "num-slaves"    32) "1"    33) "num-other-sentinels"    34) "1"    35) "quorum"    36) "1"    37) "failover-timeout"    38) "180000"    39) "parallel-syncs"    40) "1" 192.168.231.130:26379>

            到這里基本已經(jīng)部署完畢了,再去啟動原先主服務(wù)器redis-001,會發(fā)現(xiàn)此時的redis-001變成了從服務(wù)器,接下來的內(nèi)容由于與前面重復(fù)較多,我就不演示了。

            注意事項

            1.一步一步來,先配置主從復(fù)制,再配置主從切換

            2.啟動順序不要弄錯了,先啟動主服務(wù)器的redis與sentinel,再啟動從服務(wù)器redis與sentinel,如果遇到失敗情況,由于sentinel啟動后會自動修改和生成部分配置信息,為避免沖突浪費時間,建議直接刪除配置文件,重新配置。

            3.如果redis有密碼的話,需要在主從服務(wù)器redis.conf中都加上:

            masterauth <password>

            以及在主從服務(wù)器sentinel.conf加上:

            sentinel auth-pass mymaster <password>

            兩者密碼一致。

            4.daemonize yes,啟用保護進程
            protected-mode no,關(guān)閉保護模式

            另附

            具體程序代碼修改部分,可以參考《JedisSentinelPool的相關(guān)配置與操作》

            交叉參考:

            http://www.cnblogs.com/davidwang456/p/3525090.html
            http://blog.csdn.net/mingjie1212/article/details/54296858
            http://blog.csdn.net/qguanri/article/details/51120178
            https://my.oschina.net/ydsakyclguozi/blog/515050


            posted on 2017-07-10 10:25 思月行云 閱讀(718) 評論(0)  編輯 收藏 引用 所屬分類: Redis\Mongo
            久久精品国产男包| 久久精品一区二区国产| 新狼窝色AV性久久久久久| 人妻无码αv中文字幕久久琪琪布| 久久精品国产亚洲AV无码娇色| 99久久综合狠狠综合久久| 久久久久亚洲AV无码观看| 国产91久久精品一区二区| 热久久国产欧美一区二区精品| 日产精品久久久一区二区| 久久精品国产清自在天天线| 三上悠亚久久精品| 欧美久久一级内射wwwwww.| 精品久久久无码人妻中文字幕豆芽| 久久99精品久久久久久不卡| 久久亚洲AV成人无码电影| 久久免费视频1| 久久精品二区| 久久99国产精品久久99果冻传媒| 亚洲国产精品嫩草影院久久| 国产欧美久久一区二区| 欧美噜噜久久久XXX| 亚洲精品WWW久久久久久| 欧美激情精品久久久久| 99国产欧美久久久精品蜜芽| 一本大道久久东京热无码AV| 久久久久无码精品| 国产精品欧美久久久久天天影视| 91久久婷婷国产综合精品青草| 97精品依人久久久大香线蕉97| 深夜久久AAAAA级毛片免费看 | 人妻无码精品久久亚瑟影视 | 亚洲狠狠婷婷综合久久久久| 污污内射久久一区二区欧美日韩 | 青青草国产成人久久91网| 精品熟女少妇a∨免费久久| 久久精品国产亚洲av水果派| 久久夜色精品国产噜噜噜亚洲AV| 久久精品卫校国产小美女| 久久久久se色偷偷亚洲精品av| 麻豆精品久久久久久久99蜜桃|