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

如何構(gòu)建高可用ZooKeeper集群

開發(fā) 項(xiàng)目管理
本文的目標(biāo)讀者是對(duì) ZooKeeper 有一定了解的技術(shù)人員,將從 ZooKeeper 運(yùn)行模式、集群組成、容災(zāi)和水平擴(kuò)容四方面逐步深入,最終構(gòu)建出高可用的 ZooKeeper 集群。

ZooKeeper 是 Apache 的一個(gè)***項(xiàng)目,為分布式應(yīng)用提供高效、高可用的分布式協(xié)調(diào)服務(wù),提供了諸如數(shù)據(jù)發(fā)布/訂閱、負(fù)載均衡、命名服務(wù)、分布式協(xié)調(diào)/通知和分布式鎖等分布式基礎(chǔ)服務(wù)。由于 ZooKeeper 便捷的使用方式、卓越的性能和良好的穩(wěn)定性,被廣泛地應(yīng)用于諸如 Hadoop、HBase、Kafka 和 Dubbo 等大型分布式系統(tǒng)中。

本文的目標(biāo)讀者是對(duì) ZooKeeper 有一定了解的技術(shù)人員,將從 ZooKeeper 運(yùn)行模式、集群組成、容災(zāi)和水平擴(kuò)容四方面逐步深入,最終構(gòu)建出高可用的 ZooKeeper 集群。

一、運(yùn)行模式

Zookeeper 有三種運(yùn)行模式:?jiǎn)螜C(jī)模式、偽集群模式和集群模式。

1.1 單機(jī)模式

這種模式一般適用于開發(fā)測(cè)試環(huán)境,一方面我們沒有那么多機(jī)器資源,另外就是平時(shí)的開發(fā)調(diào)試并不需要極好的穩(wěn)定性。

在 Linux 環(huán)境下運(yùn)行單機(jī)模式需要執(zhí)行以下步驟:

1. 準(zhǔn)備 Java 運(yùn)行環(huán)境

安裝 Java 1.6 或更高版本的 JDK,并配置好 Java 相關(guān)的環(huán)境變量 $JAVA_HOME 。

2. 下載 ZooKeeper 安裝包

下載地址:http://zookeeper.apache.org/releases.html。選擇***的 stable 版本并解壓到指定目錄,我們用 $ZK_HOME 表示該目錄。

3. 配置 zoo.cfg

***使用 ZooKeeper,需要將 $ZK_HOME 下的 zoo_sample.cfg 文件重命名為 zoo.cfg,并進(jìn)行以下配置

  1. tickTime=2000    ##Zookeeper最小時(shí)間單元,單位毫秒(ms),默認(rèn)值為3000 
  2. dataDir=/var/lib/zookeeper    ##Zookeeper服務(wù)器存儲(chǔ)快照文件的目錄,必須配置 
  3. dataLogDir=/var/lib/log     ##Zookeeper服務(wù)器存儲(chǔ)事務(wù)日志的目錄,默認(rèn)為dataDir 
  4. clientPort=2181    ##服務(wù)器對(duì)外服務(wù)端口,一般設(shè)置為2181 
  5. initLimit=5    ##Leader服務(wù)器等待Follower啟動(dòng)并完成數(shù)據(jù)同步的時(shí)間,默認(rèn)值10,表示tickTime的10倍 
  6. syncLimit=2    ##Leader服務(wù)器和Follower之間進(jìn)行心跳檢測(cè)的***延時(shí)時(shí)間,默認(rèn)值5,表示tickTime的5倍 

4. 啟動(dòng)服務(wù)

使用 $ZK_HOME/bin 目錄下的 zkServer.sh 腳本進(jìn)行服務(wù)的啟動(dòng)。

1.2 集群模式

一個(gè) ZooKeeper 集群通常由一組機(jī)器組成,一般 3 臺(tái)以上就可以組成一個(gè)可用的 ZooKeeper 集群了。

組成 ZooKeeper 集群的每臺(tái)機(jī)器都會(huì)在內(nèi)存中維護(hù)當(dāng)前的服務(wù)器狀態(tài),并且每臺(tái)機(jī)器之間都會(huì)互相保持通信。

重要的一點(diǎn)是,只要集群中存在超過一半的機(jī)器能夠正常工作,那么整個(gè)集群就能夠正常對(duì)外服務(wù)。

ZooKeeper 的客戶端程序會(huì)選擇和集群中的任意一臺(tái)服務(wù)器創(chuàng)建一個(gè) TCP 連接,而且一旦客戶端和服務(wù)器斷開連接,客戶端就會(huì)自動(dòng)連接到集群中的其他服務(wù)器。

那么如何運(yùn)行 ZooKeeper 集群模式呢?首先假如我們有三臺(tái)服務(wù)器,IP 分別為 IP1、IP2 和 IP3,則需要執(zhí)行以下步驟:

1. 準(zhǔn)備 Java 運(yùn)行環(huán)境(同上)

2. 下載 ZooKeeper 安裝包(同上)

3. 配置 zoo.cfg

  1. tickTime=2000 
  2. dataDir=/var/lib/zookeeper 
  3. dataLogDir=/var/lib/log 
  4. clientPort=2181 
  5. initLimit=5 
  6. syncLimit=2 
  7. server.1=IP1:2888:3888 
  8. server.2=IP2:2888:3888 
  9. server.3=IP3:2888:3888 

可以看到,相比于單機(jī)模式,集群模式多了 server.id=host:port1:port2 的配置。

其中,id 被稱為 Server ID,用來標(biāo)識(shí)該機(jī)器在集群中的機(jī)器序號(hào)(在每臺(tái)機(jī)器的 dataDir 目錄下創(chuàng)建 myid 文件,文件內(nèi)容即為該機(jī)器對(duì)應(yīng)的 Server ID 數(shù)字)。host 為機(jī)器 IP,port1 用于指定 Follower 服務(wù)器與 Leader 服務(wù)器進(jìn)行通信和數(shù)據(jù)同步的端口,port2用于進(jìn)行 Leader 選舉過程中的投票通信。

4. 創(chuàng)建 myid 文件

在 dataDir 目錄下創(chuàng)建名為 myid 的文件,在文件***行寫上對(duì)應(yīng)的 Server ID。

5. 按照相同步驟,為其他機(jī)器配置 zoo.cfg 和 myid文件

6. 啟動(dòng)服務(wù)

1.3 偽集群模式

這是一種特殊的集群模式,即集群的所有服務(wù)器都部署在一臺(tái)機(jī)器上。當(dāng)你手頭上有一臺(tái)比較好的機(jī)器,如果作為單機(jī)模式進(jìn)行部署,就會(huì)浪費(fèi)資源,這種情況下,ZooKeeper允許你在一臺(tái)機(jī)器上通過啟動(dòng)不同的端口來啟動(dòng)多個(gè) ZooKeeper 服務(wù)實(shí)例,以此來以集群的特性來對(duì)外服務(wù)。

這種模式下,只需要把 zoo.cfg 做如下修改:

  1. tickTime=2000 
  2. dataDir=/var/lib/zookeeper 
  3. dataLogDir=/var/lib/log 
  4. clientPort=2181 
  5. initLimit=5 
  6. syncLimit=2 
  7. server.1=IP1:2888:3888 
  8. server.2=IP1:2889:3889 
  9. server.3=IP1:2890:3890 

二、集群組成

要搭建一個(gè)高可用的 ZooKeeper 集群,我們首先需要確定好集群的規(guī)模。

關(guān)于 ZooKeeper 集群的服務(wù)器組成,相信很多對(duì) ZooKeeper 了解但是理解不夠深入的讀者,都存在或曾經(jīng)存在過這樣一個(gè)錯(cuò)誤的認(rèn)識(shí):為了使得 ZooKeeper 集群能夠順利地選舉出 Leader,必須將 ZooKeeper 集群的服務(wù)器數(shù)部署成奇數(shù)。這里我們需要澄清的一點(diǎn)是:任意臺(tái) ZooKeeper 服務(wù)器都能部署且能正常運(yùn)行。

那么存在于這么多讀者中的這個(gè)錯(cuò)誤認(rèn)識(shí)是怎么回事呢?其實(shí)關(guān)于 ZooKeeper 集群服務(wù)器數(shù),ZooKeeper 官方確實(shí)給出了關(guān)于奇數(shù)的建議,但絕大部分 ZooKeeper 用戶對(duì)于這個(gè)建議認(rèn)識(shí)有偏差。在本書前面提到的“過半存活即可用”特性中,我們已經(jīng)了解了,一個(gè) ZooKeeper 集群如果要對(duì)外提供可用的服務(wù),那么集群中必須要有過半的機(jī)器正常工作并且彼此之間能夠正常通信。基于這個(gè)特性,如果想搭建一個(gè)能夠允許 N 臺(tái)機(jī)器 down 掉的集群,那么就要部署一個(gè)由 2*N+1 臺(tái)服務(wù)器構(gòu)成的 ZooKeeper 集群。因此,一個(gè)由 3 臺(tái)機(jī)器構(gòu)成的 ZooKeeper 集群,能夠在掛掉 1 臺(tái)機(jī)器后依然正常工作,而對(duì)于一個(gè)由 5 臺(tái)服務(wù)器構(gòu)成的 ZooKeeper 集群,能夠?qū)?2 臺(tái)機(jī)器掛掉的情況進(jìn)行容災(zāi)。注意,如果是一個(gè)由6臺(tái)服務(wù)器構(gòu)成的 ZooKeeper 集群,同樣只能夠掛掉 2 臺(tái)機(jī)器,因?yàn)槿绻麙斓?3 臺(tái),剩下的機(jī)器就無法實(shí)現(xiàn)過半了。

因此,從上面的講解中,我們其實(shí)可以看出,對(duì)于一個(gè)由 6 臺(tái)機(jī)器構(gòu)成的 ZooKeeper 集群來說,和一個(gè)由 5 臺(tái)機(jī)器構(gòu)成的 ZooKeeper 集群,其在容災(zāi)能力上并沒有任何顯著的優(yōu)勢(shì),反而多占用了一個(gè)服務(wù)器資源。基于這個(gè)原因,ZooKeeper 集群通常設(shè)計(jì)部署成奇數(shù)臺(tái)服務(wù)器即可。

三、容災(zāi)

所謂容災(zāi),在 IT 行業(yè)通常是指我們的計(jì)算機(jī)信息系統(tǒng)具有的一種在遭受諸如火災(zāi)、地震、斷電和其他基礎(chǔ)網(wǎng)絡(luò)設(shè)備故障等毀滅性災(zāi)難的時(shí)候,依然能夠?qū)ν馓峁┛捎梅?wù)的能力。

對(duì)于一些普通的應(yīng)用,為了達(dá)到容災(zāi)標(biāo)準(zhǔn),通常我們會(huì)選擇在多臺(tái)機(jī)器上進(jìn)行部署來組成一個(gè)集群,這樣即使在集群的一臺(tái)或是若干臺(tái)機(jī)器出現(xiàn)故障的情況下,整個(gè)集群依然能夠?qū)ν馓峁┛捎玫姆?wù)。

而對(duì)于一些核心應(yīng)用,不僅要通過使用多臺(tái)機(jī)器構(gòu)建集群的方式來提供服務(wù),而且還要將集群中的機(jī)器部署在兩個(gè)機(jī)房,這樣的話,即使其中一個(gè)機(jī)房遭遇災(zāi)難,依然能夠?qū)ν馓峁┛捎玫姆?wù)。

上面講到的都是應(yīng)用層面的容災(zāi)模式,那么對(duì)于 ZooKeeper 這種底層組件來說,如何進(jìn)行容災(zāi)呢?講到這里,可能多少讀者會(huì)有疑問,ZooKeeper 既然已經(jīng)解決了單點(diǎn)問題,那為什么還要進(jìn)行容災(zāi)呢?

3.1 單點(diǎn)問題

單點(diǎn)問題是分布式環(huán)境中最常見也是最經(jīng)典的問題之一,在很多分布式系統(tǒng)中都會(huì)存在這樣的單點(diǎn)問題。

具體地說,單點(diǎn)問題是指在一個(gè)分布式系統(tǒng)中,如果某一個(gè)組件出現(xiàn)故障就會(huì)引起整個(gè)系統(tǒng)的可用性大大下降甚至是處于癱瘓狀態(tài),那么我們就認(rèn)為該組件存在單點(diǎn)問題。

ZooKeeper 確實(shí)已經(jīng)很好地解決了單點(diǎn)問題。我們已經(jīng)了解到,基于“過半”設(shè)計(jì)原則,ZooKeeper 在運(yùn)行期間,集群中至少有過半的機(jī)器保存了***的數(shù)據(jù)。因此,只要集群中超過半數(shù)的機(jī)器還能夠正常工作,整個(gè)集群就能夠?qū)ν馓峁┓?wù)。

3.2 容災(zāi)

解決了單點(diǎn)問題,是不是該考慮容災(zāi)了呢?答案是否定的,在搭建一個(gè)高可用的集群的時(shí)候依然需要考慮容災(zāi)問題。正如上面講到的,如果集群中超過半數(shù)的機(jī)器還在正常工作,集群就能夠?qū)ν馓峁┱5姆?wù)。

那么,如果整個(gè)機(jī)房出現(xiàn)災(zāi)難性的事故,這時(shí)顯然已經(jīng)不是單點(diǎn)問題的范疇了。

在進(jìn)行 ZooKeeper 的容災(zāi)方案設(shè)計(jì)過程中,我們要充分考慮到“過半原則”。也就是說,無論發(fā)生什么情況,我們必須保證 ZooKeeper 集群中有超過半數(shù)的機(jī)器能夠正常工作。因此,通常有以下兩種部署方案。

3.3.1 雙機(jī)房部署

在進(jìn)行容災(zāi)方案的設(shè)計(jì)時(shí),我們通常是以機(jī)房為單位來考慮問題。在現(xiàn)實(shí)中,很多公司的機(jī)房規(guī)模并不大,因此雙機(jī)房部署是個(gè)比較常見的方案。但是遺憾的是,在目前版本的 ZooKeeper 中,還沒有辦法能夠在雙機(jī)房條件下實(shí)現(xiàn)比較好的容災(zāi)效果——因?yàn)闊o論哪個(gè)機(jī)房發(fā)生異常情況,都有可能使得 ZooKeeper 集群中可用的機(jī)器無法超過半數(shù)。當(dāng)然,在擁有兩個(gè)機(jī)房的場(chǎng)景下,通常有一個(gè)機(jī)房是主要機(jī)房(一般而言,公司會(huì)花費(fèi)更多的錢去租用一個(gè)穩(wěn)定性更好、設(shè)備更可靠的機(jī)房,這個(gè)機(jī)房就是主要機(jī)房,而另外一個(gè)機(jī)房則更加廉價(jià)一些)。我們唯一能做的,就是盡量在主要機(jī)房部署更多的機(jī)器。例如,對(duì)于一個(gè)由 7 臺(tái)機(jī)器組成的 ZooKeeper 集群,通常在主要機(jī)房中部署 4 臺(tái)機(jī)器,剩下的 3 臺(tái)機(jī)器部署到另外一個(gè)機(jī)房中。

3.3.2 三機(jī)房部署

既然在雙機(jī)房部署模式下并不能實(shí)現(xiàn)好的容災(zāi)效果,那么對(duì)于有條件的公司,選擇三機(jī)房部署無疑是個(gè)更好的選擇,無論哪個(gè)機(jī)房發(fā)生了故障,剩下兩個(gè)機(jī)房的機(jī)器數(shù)量都超過半數(shù)。假如我們有三個(gè)機(jī)房可以部署服務(wù),并且這三個(gè)機(jī)房間的網(wǎng)絡(luò)狀況良好,那么就可以在三個(gè)機(jī)房中都部署若干個(gè)機(jī)器來組成一個(gè) ZooKeeper 集群。

我們假定構(gòu)成 ZooKeeper 集群的機(jī)器總數(shù)為 N,在三個(gè)機(jī)房中部署的 ZooKeeper 服務(wù)器數(shù)分別為 N1、N2 和 N3,如果要使該 ZooKeeper 集群具有較好的容災(zāi)能力,我們可以根據(jù)如下算法來計(jì)算 ZooKeeper 集群的機(jī)器部署方案。

1. 計(jì)算 N1

如果 ZooKeeper 集群的服務(wù)器總數(shù)是 N,那么:

  1. N1 = (N-1)/2 

在 Java 中,“/” 運(yùn)算符會(huì)自動(dòng)對(duì)計(jì)算結(jié)果向下取整操作。舉個(gè)例子,如果 N=8,那么 N1=3;如果 N=7,那么 N1 也等于 3。

2. 計(jì)算 N2 的可選值

N2 的計(jì)算規(guī)則和 N1 非常類似,只是 N的取值是在一個(gè)取值范圍內(nèi):

  1. N2 的取值范圍是 1~(N-N1)/2 

即如果 N=8,那么 N1=3,則 N2 的取值范圍就是 1~2,分別是 1 和 2。注意,1 和 2 僅僅是 N2 的可選值,并非最終值——如果 N2為某個(gè)可選值的時(shí)候,無法計(jì)算出 N3 的值,那么該可選值也無效。

3. 計(jì)算 N3,同時(shí)確定 N2 的值

很顯然,現(xiàn)在只剩下 N3 了,可以簡(jiǎn)單的認(rèn)為 N3 的取值就是剩下的機(jī)器數(shù),即:

  1. N3 = N - N1 - N2 

只是 N3 的取值必須滿足 N3 < N1+N2。在滿足這個(gè)條件的基礎(chǔ)下,我們遍歷步驟 2 中計(jì)算得到的 N2 的可選值,即可得到三機(jī)房部署時(shí)每個(gè)機(jī)房的服務(wù)器數(shù)量了。

現(xiàn)在我們以 7 臺(tái)機(jī)器為例,來看看如何分配三機(jī)房的機(jī)器分布。根據(jù)算法的步驟 1,我們首先確定 N1 的取值為 3。根據(jù)算法的步驟 2,我們確定了 N2 的可選值為 1 和 2。***根據(jù)步驟 3,我們遍歷 N2 的可選值,即可得到兩種部署方案,分別是 (3,1,3) 和 (3,2,2)。以下是 Java 程序代碼對(duì)以上算法的一種簡(jiǎn)單實(shí)現(xiàn):

  1. public class Allocation { 
  2.   
  3.     static final int n = 7
  4.     public static void main(String[] args){ 
  5.         int n1,n2,n3; 
  6.         n1 = (n-1) / 2
  7.         int n2_max = (n-n1) / 2
  8.         for(int i=1; i<=n2_max; i++){ 
  9.             n2 = i; 
  10.             n3 = n - n1 -n2; 
  11.             if(n3 >= (n1+n2)){ 
  12.                 continue
  13.             } 
  14.             System.out.println("("+n1+","+n2+","+n3+")"); 
  15.         } 
  16.     } 

四、水平擴(kuò)容

水平可擴(kuò)容可以說是對(duì)一個(gè)分布式系統(tǒng)在高可用性方面提出的基本的,也是非常重要的一個(gè)要求,通過水平擴(kuò)容能夠幫助系統(tǒng)在不進(jìn)行或進(jìn)行極少改進(jìn)工作的前提下,快速提高系統(tǒng)對(duì)外的服務(wù)支撐能力。簡(jiǎn)單地講,水平擴(kuò)容就是向集群中添加更多的機(jī)器,以提高系統(tǒng)的服務(wù)質(zhì)量。

很遺憾的是,ZooKeeper 在水平擴(kuò)容擴(kuò)容方面做得并不十分***,需要進(jìn)行整個(gè)集群的重啟。通常有兩種重啟方式,一種是集群整體重啟,另外一種是逐臺(tái)進(jìn)行服務(wù)器的重啟。

4.1 整體重啟

所謂集群整體重啟,就是先將整個(gè)集群停止,然后更新 ZooKeeper 的配置,然后再次啟動(dòng)。如果在你的系統(tǒng)中,ZooKeeper 并不是個(gè)非常核心的組件,并且能夠允許短暫的服務(wù)停止(通常是幾秒鐘的時(shí)間間隔),那么不妨選擇這種方式。在整體重啟的過程中,所有該集群的客戶端都無法連接上集群。等到集群再次啟動(dòng),這些客戶端就能夠自動(dòng)連接上——注意,整體啟動(dòng)前建立起的客戶端會(huì)話,并不會(huì)因?yàn)榇舜握w重啟而失效。也就是說,在整體重啟期間花費(fèi)的時(shí)間將不計(jì)入會(huì)話超時(shí)時(shí)間的計(jì)算中。

4.2 逐臺(tái)重啟

這種方式更適合絕大多數(shù)的實(shí)際場(chǎng)景。在這種方式中,每次僅僅重啟集群中的一臺(tái)機(jī)器,然后逐臺(tái)對(duì)整個(gè)集群中的機(jī)器進(jìn)行重啟操作。這種方式可以在重啟期間依然保證集群對(duì)外的正常服務(wù)。

責(zé)任編輯:王雪燕 來源: cyfonly
相關(guān)推薦

2017-02-19 19:57:05

ZooKeeper集群

2025-09-11 10:05:00

KafkaZookeeper運(yùn)維

2014-05-15 09:54:40

heartbeatlvs集群

2012-07-04 11:21:07

OpenStack

2023-12-18 09:37:37

2023-11-07 07:30:18

Hadoop高可用

2012-02-15 22:40:23

heartbeat高可用

2022-05-11 13:55:18

高可用性分布式彈性

2025-04-01 01:04:00

Redis集群緩存

2019-08-27 15:56:44

MySQL 互聯(lián)網(wǎng)數(shù)據(jù)庫

2018-01-12 14:20:37

數(shù)據(jù)庫MySQL高可用架構(gòu)

2022-06-02 12:56:25

容器網(wǎng)絡(luò)云原生

2023-12-05 09:31:46

數(shù)據(jù)庫架構(gòu)

2010-11-15 18:37:41

高可用的廣域網(wǎng)絡(luò)

2012-11-09 15:32:28

2024-02-27 09:48:25

Redis集群數(shù)據(jù)庫

2022-07-08 14:17:18

Kubernetes集群高可用Linux

2017-01-17 10:25:06

HBase集群運(yùn)維

2022-05-31 08:04:03

Redis高可用集群

2014-10-09 10:04:23

CentOS集群
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

国产98在线|日韩| 欧美成人自拍| 亚洲一区中文| 日韩一区二区三区精品视频| 区一区二区三区中文字幕| 欧美极品视频在线观看| 亚洲天天影视| 欧美午夜精品一区二区三区电影| 亚洲一区二区影院| 国产精自产拍久久久久久蜜| 亚洲av成人片色在线观看高潮| 国产在线观看91| 美女尤物国产一区| 国产亚洲精品久久久| 久久精品视频16| 六月婷婷中文字幕| 午夜精品亚洲| 51精品国自产在线| 中文字幕日韩精品久久| 怡红院男人的天堂| 国产日韩三级| 亚洲午夜精品在线| 亚洲欧洲在线一区| 中文字幕在线观看第二页| 欧美日韩亚洲一区| 精品卡一卡二卡三卡四在线| 看一级黄色录像| 国产乱叫456在线| 亚洲欧美偷拍自拍| 欧美一级黄色片| 欧美性猛交久久久乱大交小说| 日韩av成人| 久久裸体视频| 色老头一区二区三区| aaa一级黄色片| 在线中文字幕视频观看| 国产成人亚洲综合色影视| 欧美激情免费视频| 日韩 中文字幕| 在线成人视屏| 亚洲日本在线天堂| 国产高清精品一区二区三区| 在线视频播放大全| 视频在线在亚洲| 97avcom| 性欧美成人播放77777| 日韩中文字幕视频网| 亚洲国产中文字幕| 日韩中文字幕亚洲精品欧美| 丰满人妻一区二区| 国产精品996| 亚洲综合色激情五月| 国产无套内射又大又猛又粗又爽| 伦理一区二区三区| 精品视频123区在线观看| 精品91一区二区三区| 黄色美女网站在线观看| 国产美女av一区二区三区| 久久免费在线观看| 欧美三级视频网站| 亚洲精品在线播放| 91黄色免费看| 一卡二卡三卡视频| 大乳在线免费观看| 成人一区二区三区视频在线观看| 2020欧美日韩在线视频| 亚洲天堂最新地址| 久久午夜影院| 精品丝袜一区二区三区| 在线成人免费av| 久久野战av| 亚洲一区二区欧美日韩| 亚洲色欲久久久综合网东京热| 超碰在线最新网址| 国产精品麻豆久久久| 国产日韩精品推荐| 国产精品无码天天爽视频| 国模一区二区三区白浆| 国产成人精品亚洲精品| 久久久久99精品成人片毛片| 欧美中文一区二区| 日韩视频免费观看| 91中文字幕永久在线| 亚洲精品a区| 亚洲激情电影中文字幕| 中文字幕第三区| 国产96在线亚洲| 亚洲欧美另类人妖| 中国免费黄色片| 亚洲精品大全| 欧美亚洲日本国产| 久久久久狠狠高潮亚洲精品| 国产精品69xx| 色婷婷av一区二区三区之一色屋| 蜜臀av.com| 91禁在线看| 亚洲一二三区不卡| 少妇高清精品毛片在线视频| 99色在线观看| 欧美三级蜜桃2在线观看| 中文字幕1区2区| 日韩一区免费| 亚洲午夜av久久乱码| 国产精品久久久久久久精| 久久影院一区| 性色av一区二区咪爱| 91久久国产视频| 亚洲第一区色| 亚州欧美日韩中文视频| 中文文字幕一区二区三三| 国产91精品一区二区麻豆亚洲| 亚洲aⅴ日韩av电影在线观看| 天天干天天草天天射| av不卡一区二区三区| 国产精品夜夜夜一区二区三区尤| 亚洲AV无码一区二区三区少妇| 国产伦精一区二区三区| 欧美极品jizzhd欧美| 九色在线播放| 亚洲国产sm捆绑调教视频| 亚洲 欧美 综合 另类 中字| 精品美女一区| 在线播放国产精品二区一二区四区 | 亚洲欧美日韩中文播放| 欧美日韩一区二区在线免费观看| **爰片久久毛片| 久久久精品亚洲| 三上悠亚作品在线观看| 91精品一区国产高清在线gif| 日韩一区二区久久久| 国语对白永久免费| 日本特黄久久久高潮| 国产免费成人av| 欧美日本网站| 国产精品国产三级国产aⅴ中文| 伊人久久大香线蕉成人综合网 | 欧亚精品中文字幕| 精品人妻一区二区三区潮喷在线| 日韩福利视频导航| 91精品久久久久久久久久入口| 国产又粗又猛又黄又爽| 国产亚洲综合性久久久影院| 一区二区三区国| 欧美xxxx黑人又粗又长| 黑人巨大精品欧美一区二区免费| 日韩福利视频在线| 亚洲小说图片视频| 日韩一区av在线| 中文字幕人妻一区二区在线视频| 久久久久久99精品| 国产手机视频在线观看| 欧美综合社区国产| 日韩一区二区欧美| 国产精品久久久久久久成人午夜| 国产精品入口麻豆九色| 奇米影音第四色| jazzjazz国产精品久久| 精品视频在线播放色网色视频| 日韩毛片在线视频| 久热成人在线视频| 久久国产精品 国产精品| 三级外国片在线观看视频| 欧美午夜电影网| 国产成人精品视频免费| 99视频精品| 亚洲影影院av| 影音先锋在线播放| 精品电影一区二区| 91制片厂在线| 香蕉久久夜色精品| 欧美系列一区| 看片一区二区| 久99久在线视频| 国产九色91回来了| 久久综合狠狠综合| 久久久久久久9| 激情中国色综合| 久久av红桃一区二区小说| 波多野结衣小视频| 99精品一区二区三区| 成人国产在线看| 久久亚洲精品人成综合网| 欧美超级免费视 在线| 在线观看免费黄色小视频| 亚洲品质自拍视频| 精品无码人妻少妇久久久久久| 美女视频一区免费观看| 国产伦理久久久| 欧美暴力调教| 九九热这里只有精品6| 亚洲日本中文字幕在线| 亚洲国产精品久久久久婷婷884| yy6080午夜| 久久成人免费日本黄色| 偷拍视频一区二区| free欧美| 亚洲人成在线一二| 亚洲熟女综合色一区二区三区| 不卡高清视频专区| 国产freexxxx性播放麻豆| 美女精品一区最新中文字幕一区二区三区| 久久噜噜噜精品国产亚洲综合| 青青草视频在线观看| 91精品在线麻豆| 精品国产xxx| 夜色激情一区二区| 女王人厕视频2ⅴk| 久久免费黄色| 国产中文字幕乱人伦在线观看| 久久一区二区三区电影| 美日韩免费视频| 欧美成人h版| 欧美激情奇米色| 日本美女高清在线观看免费| 亚洲免费一级电影| 亚洲国产精品二区| 在线播放亚洲一区| 国产在线观看第一页| 五月天欧美精品| 性欧美丰满熟妇xxxx性仙踪林| 亚洲在线网站| 91国在线高清视频| 欧美电影《睫毛膏》| 欧美日韩在线一二三| 精品人人人人| 99在线看视频| 交100部在线观看| 亚洲色图35p| 人妻偷人精品一区二区三区| 激情五月婷婷综合| 精品视频无码一区二区三区| 在线欧美福利| 国产一区二区三区在线免费| 91青青国产在线观看精品| 日本不卡一区| 免费成人av| 蜜桃传媒视频麻豆第一区免费观看| 51vv免费精品视频一区二区| 91久久精品国产91久久| 色黄网站在线观看| 亚洲国产小视频| 亚洲黄色小说网址| 日韩亚洲欧美在线观看| 国产精品探花视频| 欧美日韩一区二区三区不卡| 日韩久久久久久久久久| 91成人免费电影| 裸体武打性艳史| www.亚洲精品| 亚洲天堂资源在线| 91麻豆.com| 中文字幕日韩久久| 国产日韩欧美在线播放不卡| 亚洲日本一区二区三区在线不卡| 精品色999| 国产一区精品在线| 菁菁伊人国产精品| 激情视频在线观看一区二区三区| 精品裸体bbb| 日韩免费在线视频| 成人日日夜夜| 亚洲天堂av高清| 大地资源中文在线观看免费版| 一区二区日韩精品| 精品人妻无码一区二区三区蜜桃一| 欧美性猛交视频| 九九热国产在线| 亚洲电影一区二区| 欧美啪啪小视频| 欧洲色大大久久| 国产免费一区二区三区最新不卡| 日韩欧美极品在线观看| 欧美性猛交xxxx乱大交hd | 欧美成人激情在线| 男人添女人下部高潮视频在线观看| 高清视频欧美一级| 怡红院成人在线| 51成人做爰www免费看网站| 美女福利一区二区 | 美女av在线免费看| 久久手机精品视频| 国产美女一区视频| 日产精品99久久久久久| 成人免费91| 成人久久18免费网站图片| 一区二区亚洲视频| 日本精品国语自产拍在线观看| 91一区在线| 欧美极品欧美精品欧美| 国产精品啊啊啊| 四虎影院一区二区| 欧美天天综合| 国产精品无码免费专区午夜| 久久久久国产一区二区| 黄色a级三级三级三级| 91丨porny丨户外露出| 懂色av蜜臀av粉嫩av永久| 亚洲3atv精品一区二区三区| 午夜精品福利在线视频| 欧美日韩午夜剧场| 国产人妖在线播放| 亚洲欧美日韩在线高清直播| 国产激情视频在线观看| 欧美中文在线观看国产| 九色精品蝌蚪| 91九色国产社区在线观看| 国产精品久久久网站| 一本色道久久综合亚洲精品婷婷 | 任你弄精品视频免费观看| 97视频中文字幕| 国产一区不卡| 亚洲一区不卡在线| 国产亚洲亚洲| 韩国三级与黑人| 丰满白嫩尤物一区二区| 国产又粗又猛又爽又黄的视频小说 | 亚洲激情视频在线观看| 欧美性天天影视| 久久天天躁狠狠躁夜夜躁2014| 色网在线免费观看| 官网99热精品| 91精品国产91久久综合| 性欧美极品xxxx欧美一区二区| 日韩电影在线观看电影| 97精品人妻一区二区三区蜜桃| 亚洲欧美中日韩| 成年人av电影| 欧美日韩的一区二区| 成人高潮片免费视频| 久久色免费在线视频| 久久久加勒比| 欧美日韩精品免费观看视一区二区| 国产精品jizz在线观看美国| 中文字幕在线视频一区二区三区| 亚洲国产精品黑人久久久| 懂色av懂色av粉嫩av| 精品污污网站免费看| 国产youjizz在线| 麻豆一区二区在线观看| 四虎国产精品永久在线国在线| 日本精品一区二区三区高清 久久| 国产欧美亚洲一区| 少妇精品一区二区| 色综合视频一区二区三区高清| 无码国产精品一区二区色情男同 | 亚洲乱码国产乱码精品| 精品处破学生在线二十三| 99在线视频影院| 国产一区二区免费电影| 99在线精品免费视频九九视| 野战少妇38p| 国产三级一区二区三区| 无码人妻丰满熟妇奶水区码| 亚洲天堂视频在线观看| 亚洲一区二区三区四区| 亚洲一区二区三区加勒比| 精品一区二区免费视频| 中文字幕av播放| 亚洲精品在线三区| 亚洲三级欧美| 91精品网站| 国内久久精品| 欧产日产国产精品98| 中文字幕免费在线观看视频一区| 日本熟妇一区二区三区| 色狠狠久久aa北条麻妃 | 免费在线视频一区| 欧美视频一区二区在线| 日韩欧美一区二区不卡| 东凛在线观看| 亚洲一区中文字幕在线观看| 亚洲激情视频| 国产sm在线观看| 亚洲成人综合在线| 国产福利电影在线| 91亚洲国产成人久久精品网站| 国产一区美女| 久久久久久久久免费看无码| 欧美日韩综合在线免费观看| 成人在线观看免费网站| 国产在线资源一区| 日本美女视频一区二区| 中文字幕手机在线观看| 亚洲女人天堂网| 精品一区二区三区四区五区| 激情伊人五月天| 国产精品久久久久久久久晋中 | 草久久免费视频| 精品国产乱码久久久久久图片 | 精品少妇一区二区三区免费观| 欧美午夜精品一区二区三区| 国产精品蜜臀| 中文精品一区二区三区| 99re成人精品视频| 国产又粗又猛又爽又黄的| 91av在线网站| 综合激情婷婷| www久久久久久久| 亚洲精品一区二区在线观看| 国产91欧美|