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

fourinone分布式協調設計解析

云計算 分布式
分布式協同是分布式應用中不可缺少的,通常擔任協調者的角色,或者說是將多機協同的職責從分布式應用中獨立出來,以減少系統的耦合性和增強擴充性。Apache的Zookeeper, google的Chubby都是分布式協同的實現者。fourinone實際上可以單獨當做Zookeeper用,它使用最少的代碼實現了Zookeeper的所有功能,并且力圖做到功能更強但是使用更簡潔。

分布式協同是分布式應用中不可缺少的,通常擔任協調者的角色,或者說是將多機協同的職責從分布式應用中獨立出來,以減少系統的耦合性和增強擴充性。Apache的Zookeeper, google的Chubby都是分布式協同的實現者。fourinone實際上可以單獨當做Zookeeper用,它使用最少的代碼實現了Zookeeper的所有功能,并且力圖做到功能更強但是使用更簡潔。

一、實現原理

fourinone對分布式協同的實現, 是通過建立一個domain,node兩層結構的節點信息去完成,domain可以是分類或者包,node可以是具體屬性,domain和node都是自己根據需求設計命名,比如可以將domain命名為“a.b.c...”表示一個樹型類目。

一個domain下可以有很多個node,每個node只指定一個domain,可以通過domain返回它下面所有的node。

domain不需要單獨建立,通常在建立node時,如果不存在domain會自動創建。

如果domain下沒有node了,該domain會自動刪除。

如果刪除domain,該domain下面node也都會刪除。

每個node下可以存放一個值,可以是任意對象。

所有的節點信息存放在parkserver里,parkserver提供協同者的功能。如下圖所示:

從上圖可以看到,其他分布式進程可以通過parkserver的用戶接口ParkLocal,對節點進行增加、修改、刪除、指定心跳、指定權限等操作,并且結合parkserver提供同步備份、領導者選舉、過期時間設置等功能,共同來實現眾多分布式協同功能,比如:

1、分布式配置,多個機器的應用公用一個配置信息,并且掛掉能夠領導者選舉,詳細見指南和demo

2、分布式鎖,多個機器競爭一個鎖,當某個機器釋放鎖或者掛掉,其他機器可以競爭到鎖繼續,詳細見指南和demo

3、集群管理,集群內機器可以互相感知和領導者選舉,詳見指南和demo #p# 

二、核心API

ParkLocal核心api說明:

//創建node,可以根據是否需要權限和心跳屬性調用不同方法

public ObjectBean create(String domain, Serializable obj);//自動創建node

public ObjectBean create(String domain, String node, Serializable obj);

public ObjectBean create(String domain, String node, Serializable obj, AuthPolicy auth);

public ObjectBean create(String domain, String node, Serializable obj, boolean heartbeat);

public ObjectBean create(String domain, String node, Serializable obj, AuthPolicy auth, boolean heartbeat);

//更新node

public ObjectBean update(String domain, String node, Serializable obj);

//獲取node

public ObjectBean get(String domain, String node);

//獲取最新node,需要傳入舊node進行對照

public ObjectBean getLastest(String domain, String node, ObjectBean ob);

//獲取最新domain

public List get(String domain);

//獲取最新domain下所有node,需要傳入舊的node集合對照

public List getLastest(String domain, List oblist);

//刪除node

public ObjectBean delete(String domain, String node);

//強行設置domain可刪除

public boolean setDeletable(String domain);

//刪除domain及下所有node

public List delete(String domain);

//添加node的事件監聽

public void addLastestListener(String domain, String node, ObjectBean ob, LastestListener liser);

//添加domain的事件監聽

public void addLastestListener(String domain, List oblist, LastestListener liser); #p# 

三、權限機制:

public ObjectBean create(String domain, String node, Serializable obj, AuthPolicy auth);

通過上面方法創建node時,可以指定一個權限參數,有只讀(AuthPolicy.OP_READ)、讀寫(AuthPolicy.OP_READ_WRITE)、所有(AuthPolicy.OP_ALL)三種屬性,默認為AuthPolicy.OP_ALL

注意:這里的權限屬性是指創建進程對其他使用進程的權限約束,而不包括它自己。也就是對node的創建進程來說,它擁有對該node和domain所有操作權限(讀寫刪,只要它不退出或者中止)

建設現在創建了一個domain為d,node為n的節點, 對于其他使用進程來說,操作權限如下表所示:

權限\其他進程

讀(get)n 寫(update)n 刪(delete)n 刪(delete)d

AuthPolicy.OP_READ

Yes No No No

AuthPolicy.OP_READ_WRITE

Yes Yes No No

AuthPolicy.OP_ALL

Yes Yes Yes No

 

從上表可以發現,當創建進程指定node的權限為AuthPolicy.OP_ALL時,其他使用進程可以刪除該node,但是不能刪除其domain,這是為什么呢?

 

因為domain下通常還有其他node,它們的權限并不都是AuthPolicy.OP_ALL,比如還有一個n1的node權限為AuthPolicy.OP_READ,按照正常操作,該使用進程無法刪除n1,假設它可以刪除domain,那么它最后間接刪除了n1,于是發生了悖論,因此,為了避免風險,所有的使用進程只能根據權限刪除node,但是無法刪除domain。
從上表可以發現,當創建進程指定node的權限為AuthPolicy.OP_ALL時,其他使用進程可以刪除該node,但是不能刪除其domain,這是為什么呢?

不過你允許承擔這樣的刪除風險,也可以在創建進程里強行指定該domain可刪除,通過在domain創建后,調用:

public boolean setDeletable(String domain);

該方法只能被domain的創建進程調用,其他使用進程沒有權限調用。

強行指定可刪除后,其他進程可以直接刪除該domain及所含node并忽略后果。 #p# 

四、相對于zookeeper的優勢

Zookeeper無疑是一款成功的開源產品,并擁有廣泛的信任者和應用場景,和以往一樣,老外作者在apache網站上發布了一款產品,我們的工程師馬上會虛心的學習和忠心的捍衛,而國產原創的產品往往會遭到百般質疑,因為我們的原創更多是抄襲和粗制濫造,我們的國產更多是框架集成而不是架構設計,所以這種情感上的傾向性不是一天能改變。

做產品對比和列舉優勢往往容易引起激烈爭論,會被認為是在宣傳和引導產品使用,實際上在都能滿足功能需求的情況下,選擇使用哪款產品更多的是個政治問題,而不是技術問題,領導意志及工程師本身的熟悉程度和愛好等等都是決定因素。

這里我們僅僅從技術角度闡述幾點優勢,Zookeeper做為一個chubby和paxos模仿品,缺乏創新型的設計改進,它仍然存在以下缺點:

1、樹型配置節點的繁瑣復雜,性能低下。為了保證這種結構,Zookeeper需要維持一套虛擬文件結構的開銷,對于目錄結構深的樹節點,造成性能影響,而配置信息結構實際上往往不一定需要樹結構。

2、“觀察”(watch)機制的僵化設計:zookeeper沒有獲取最新版本信息的方法支持,它只能粗暴的在每次寫入更新等方法時注冊一個watch,當這些方法被調用后就回調,它不考慮信息內容是否變化,對于沒有使信息內容發生改變的更新,zookeeper仍然會回調,并且zookeeper的回調比較呆板,它只能用一次,如果信息持續變化,必須又重新注冊watch。而fourinone的事件處理則可以自由控制是否持續響應信息變化。

3、領導者選舉機制實現的太過局限,集群只有兩個節點,zookeeper無法進行領導者選舉,zookeeper的領導者選舉必須要奇數節點的奇怪限制。另外,ZooKeeper的領導者選舉實現雖然比原始的Paxos要簡化,但是它仍然存在領導者(Leader)、跟隨者(Follower)、觀察者(observer)、學習者 (Learner)等眾多角色和跟隨狀態(Following)、尋找狀態(Looking)、觀察狀態(Observing)、領導狀態 (Leading)等復雜狀態。相對于fourinone的領導者選舉,zookeeper仍然不夠直觀簡潔,難以用較少配置和代碼演示。

4、Windows系統上幾乎不支持,需要安裝linux殼,并且僅建議用于學習研究。Fourinone支持windows、linux集群混合使用。

Fourinone提出一種新的分布式協同系統設計,在滿足zookeeper所有功能下,并克服了以上缺點,提出了新的配置結構、變化事件機制、簡化的領導者選舉實現,能更好的滿足分布式協調需求。 #p# 

五、演示demo

下面是一個操作節點的演示demo,請留意各自節點的權限范圍,程序說明:

1、 ParkServerDemo: 啟動parkserver(它的IP端口已經在配置文件的PARK部分的SERVERS指定

2、 ParkSet:往parkserver里創建了d1n1、d2n2、d3n3、d4n4共4個節點,分別對應只讀、讀寫,所有,所有+強行刪除權限

3、 ParkGet:依次對d1n1、d2n2、d3n3、d4n4進行讀、寫、刪除、刪除domain操作,觀察結果輸出,如果沒有權限操作,parkserver會輸出信息,并且操作返回的結果對象為空

啟動命令和順序:

Javac –classpath fourinone.jar; *.java

Java –classpath fourinone.jar; ParkServerDemo

Java –classpath fourinone.jar; ParkSet

Java –classpath fourinone.jar; ParkGet

如果沒有fourinone.jar,可以到以下地址下載:

http://www.skycn.com/soft/68321.html

下面是demo源碼:

// ParkServerDemo

import com.fourinone.BeanContext;

public class ParkServerDemo{

public static void main(String[] args){

BeanContext.startPark();

}

}

// ParkSet

import com.fourinone.BeanContext;

import com.fourinone.ParkLocal;

import com.fourinone.ObjectBean;

import com.fourinone.AuthPolicy;

public class ParkSet{

public static void main(String[] args){

//獲取parkserver用戶接口

ParkLocal pl = BeanContext.getPark();

//在domain d1下創建節點node n1,指定權限為只讀

ObjectBean d1n1 = pl.create("d1","n1","v1",AuthPolicy.OP_READ);

if(d1n1!=null)

System.out.println("d1n1 with AuthPolicy.OP_READ create success!");

//在domain d2下創建節點node n2,指定權限為讀寫

ObjectBean d2n2 = pl.create("d2","n2","v2",AuthPolicy.OP_READ_WRITE);

if(d2n2!=null)

System.out.println("d2n2 with AuthPolicy.OP_READ_WRITE create success!");

//在domain d3下創建節點node n3,指定權限為所有

ObjectBean d3n3 = pl.create("d3","n3","v3",AuthPolicy.OP_ALL);

if(d3n3!=null)

System.out.println("d3n3 with AuthPolicy.OP_ALL create success!");

//在domain d4下創建節點node n4,指定權限為所有,并且創建完成強行設置為其他進程可刪除

ObjectBean d4n4 = pl.create("d4","n4","v4",AuthPolicy.OP_ALL);

if(d4n4!=null)

System.out.println("d4n4 with AuthPolicy.OP_ALL create success!");

boolean r = pl.setDeletable("d4");

if(r)

System.out.println("set d4 deletable!");

}

}

// ParkGet

import com.fourinone.BeanContext;

import com.fourinone.ParkLocal;

import com.fourinone.ObjectBean;

import java.util.List;

public class ParkGet{

public static void main(String[] args){

//獲取parkserver用戶接口

ParkLocal pl = BeanContext.getPark();

//獲取節點d1n1,節點權限為AuthPolicy.OP_READ

ObjectBean d1n1 = pl.get("d1","n1");//獲取節點

System.out.println("get d1n1:"+(String)d1n1.toObject());

d1n1 = pl.update("d1","n1","v1-update");//更新節點

if(d1n1!=null)

System.out.println("update node d1n1 success!");

else

System.out.println("update node d1n1 failure!");

List d1 = pl.delete("d1");//刪除domain

if(d1!=null)

System.out.println("delete domain d1 success!");

else

System.out.println("delete domain d1 failure!");

d1n1 = pl.delete("d1","n1");//刪除節點

if(d1n1!=null)

System.out.println("delete node d1n1 success!");

else

System.out.println("delete node d1n1 failure!");

//獲取節點d2n2,節點權限為AuthPolicy.OP_READ_WRITE

ObjectBean d2n2 = pl.get("d2","n2");

System.out.println("get d2n2:"+(String)d2n2.toObject());

d2n2 = pl.update("d2","n2","v2-update");

if(d2n2!=null)

System.out.println("update node d2n2 success!");

else

System.out.println("update node d2n2 failure!");

List d2 = pl.delete("d2");

if(d2!=null)

System.out.println("delete domain d2 success!");

else

System.out.println("delete domain d2 failure!");

d2n2 = pl.delete("d2","n2");

if(d2n2!=null)

System.out.println("delete node d2n2 success!");

else

System.out.println("delete node d2n2 failure!");

//獲取節點d3n3, 節點權限為AuthPolicy.OP_ALL

ObjectBean d3n3 = pl.get("d3","n3");

System.out.println("get d3n3:"+(String)d3n3.toObject());

d3n3 = pl.update("d3","n3","v3-update");

if(d3n3!=null)

System.out.println("update node d3n3 success!");

else

System.out.println("update node d3n3 failure!");

List d3 = pl.delete("d3");

if(d3!=null)

System.out.println("delete domain d3 success!");

else

System.out.println("delete domain d3 failure!");

d3n3 = pl.delete("d3","n3");

if(d3n3!=null)

System.out.println("delete node d3n3 success!");

else

System.out.println("delete node d3n3 failure!");

//獲取節點d4n4,節點權限為AuthPolicy.OP_ALL

ObjectBean d4n4 = pl.get("d4","n4");

System.out.println("get d4n4:"+(String)d4n4.toObject());

d4n4 = pl.update("d4","n4","v4-update");

if(d4n4!=null)

System.out.println("update node d4n4 success!");

else

System.out.println("update node d4n4 failure!");

//由于創建進程已經強行指定該domain可刪除setDeletable(d4),因此這里可以刪除掉

List d4 = pl.delete("d4");

if(d4!=null)

System.out.println("delete domain d4 success!");

else

System.out.println("delete domain d4 failure!");

d4n4 = pl.delete("d4","n4");//這里刪除節點會失敗,因為上面已經刪除了該domian下所有節點

if(d4n4!=null)

System.out.println("delete node d4n4 success!");

else

System.out.println("delete node d4n4 failure!");

}

}

 

責任編輯:王程程 來源: 51CTO
相關推薦

2021-06-01 07:57:42

Zookeeper分布式系統

2021-07-29 07:48:36

Zookeeper 核心設計

2022-04-07 17:13:09

緩存算法服務端

2012-06-01 15:12:00

淘寶分布式計算Fourinone2.

2023-02-23 07:55:41

2011-12-30 15:01:36

淘寶

2021-08-26 08:03:30

大數據Zookeeper選舉

2015-06-17 14:10:34

Redis分布式系統協調

2014-07-15 11:15:44

hadoop分布式部署

2019-08-05 07:58:01

分布式架構系統

2023-10-08 10:49:16

搜索系統分布式系統

2023-03-13 00:08:26

2019-10-10 09:16:34

Zookeeper架構分布式

2024-01-08 08:05:08

分開部署數據體系系統拆分

2023-05-29 14:07:00

Zuul網關系統

2019-06-19 15:40:06

分布式鎖RedisJava

2017-09-01 05:35:58

分布式計算存儲

2017-12-12 14:51:15

分布式緩存設計

2013-01-07 10:29:31

大數據

2018-10-29 12:51:35

分布式存儲元數據
點贊
收藏

51CTO技術棧公眾號

日韩一级电影| 国产原创在线观看| 国产欧美一区二区色老头| 亚洲精品wwwww| 国产超碰在线播放| 麻豆传媒视频在线观看| 成人性视频免费网站| 奇米四色中文综合久久| 久久久久麻豆v国产| 在线综合色站| 欧美视频一区二区| 欧美午夜性视频| 毛片网站在线| 国产激情一区二区三区四区| 欧美专区在线视频| 欧美极品aaaaabbbbb| 综合综合综合综合综合网| 欧美精品 日韩| 国产97色在线 | 日韩| av免费在线免费| 欧美国产乱子伦| 国产日韩亚洲精品| 99久久精品国产一区色| 久久永久免费| 97久久精品在线| 日本在线一级片| 美女久久久久| 亚洲国产成人精品久久久国产成人一区| 国产精品视频黄色| 成入视频在线观看| 亚洲精品中文字幕乱码三区| 日韩一区二区电影在线观看| 亚洲精品一区二区三区不卡| 久久99精品视频| 国产精品www| 91精品国产乱码久久久张津瑜| 99视频精品全国免费| 亚洲色图日韩av| 182在线视频| a看欧美黄色女同性恋| 欧美猛男超大videosgay| 熟妇人妻va精品中文字幕 | 一区二区中文字幕在线观看| 欧美亚洲国产一区二区三区va | 日本女优在线视频一区二区 | yiren22亚洲综合| 欧美视频在线观看免费网址| 久久久久99精品成人片| av小次郎在线| 亚洲人成精品久久久久久 | 日本一级片在线播放| 欧美.com| 日韩一区二区影院| 亚洲三级在线视频| 国产日韩一区二区三免费高清| 欧美亚洲一区二区在线| 亚洲国产精品毛片av不卡在线| 9765激情中文在线| 午夜不卡av在线| 九九爱精品视频| 国产精选在线| 欧美日韩亚洲精品内裤| 男人操女人逼免费视频| 五月天av在线| 日本黄色一区二区| 美女黄色片视频| 国产一区二区色噜噜| 欧美日韩一区在线观看| 久久99爱视频| 国产精品一区免费在线| 欧美成人精品福利| 亚洲精品第二页| 天堂99x99es久久精品免费| 日韩成人久久久| 成人h动漫精品一区| 亚洲ab电影| 国产午夜精品免费一区二区三区| 91在线无精精品白丝| 色婷婷综合网| 久久久久久久久久久成人| 五月天婷婷网站| 欧美亚洲一区| 91精品免费视频| 乱精品一区字幕二区| 91视频国产观看| 亚洲成人自拍视频| 性欧美videos高清hd4k| 亚洲成av人片www| 日本www高清视频| 日韩黄色三级在线观看| 日韩欧美在线网站| 欧美特黄一区二区三区| 日韩精品免费一区二区三区| 久久99精品视频一区97| 成人毛片在线播放| 狠狠色狠狠色综合系列| 精品国产综合| 日本a级在线| 精品女厕一区二区三区| 国产三级国产精品国产专区50| 91精品久久久久久综合五月天| 亚洲精品一区av在线播放| 91香蕉一区二区三区在线观看| 亚洲日本激情| 成人性生交大片免费看小说| 天天干视频在线| 日韩理论片在线| 少妇性饥渴无码a区免费| 亚洲精品大全| 亚洲欧美另类自拍| 久久精品99国产精| 麻豆传媒一区二区三区| 国产日韩亚洲精品| 18+视频在线观看| 精品视频一区三区九区| 你懂的在线观看网站| 99精品综合| 日韩免费中文字幕| 日韩有码第一页| 亚洲男同性视频| 国产又大又黄又粗又爽| 欧洲在线一区| 久久久久久久久久久久av| 在线观看免费黄色小视频| 99精品国产热久久91蜜凸| 97在线免费视频观看| av成人亚洲| 亚洲欧美在线一区| 亚洲男人第一av| 国产成人精品综合在线观看| 中国一区二区三区| 99久久精品一区二区成人| 国产偷亚洲偷欧美偷精品| 久草视频在线免费看| 九九视频精品免费| 亚洲欧洲一二三| 电影天堂国产精品| 国产午夜精品麻豆| 青草视频在线观看免费| 成人激情免费网站| 拔插拔插海外华人免费| 麻豆一区在线| 色综合久久88| 草逼视频免费看| 一区二区三区蜜桃| 又大又长粗又爽又黄少妇视频| 天天精品视频| 成人欧美一区二区三区黑人孕妇| a中文在线播放| 欧美性猛交xxxx乱大交退制版| 亚洲一级中文字幕| 日日噜噜夜夜狠狠视频欧美人| 久久亚洲国产精品日日av夜夜| av在线播放资源| 日韩av中文字幕在线播放| 日韩精品久久久久久久| 成人18精品视频| 日韩欧美国产免费| 精品久久精品| 国产日本欧美一区二区三区| 欧美性猛交xxx乱大交3蜜桃| 欧美日韩国产高清一区二区| 日韩成人短视频| 国产高清视频一区| 91黄色在线看| 少妇精品导航| 国产精品久久999| 黄色网址视频在线观看| 日韩一区二区影院| 亚洲欧美在线视频免费| 久久免费电影网| 日韩肉感妇bbwbbwbbw| 亚洲成人免费| 成人黄视频免费| 亚洲天堂手机| 尤物九九久久国产精品的特点 | 日韩一区二区三| 亚州国产精品视频| 国产女主播一区| 亚洲av毛片在线观看| 影音先锋亚洲精品| 欧美中文娱乐网| 久久久久毛片免费观看| 高清欧美一区二区三区| 黄色av免费在线看| 欧美一卡在线观看| 午夜精品三级久久久有码| 久久精品亚洲国产奇米99| 特级西西444www| 国产欧美91| 伊人色综合影院| 999久久久精品一区二区| 欧美做受高潮电影o| 日本在线看片免费人成视1000| 欧美videossexotv100| 久草视频一区二区| 自拍视频在线观看一区二区| 精品影片一区二区入口| 蜜桃视频第一区免费观看| 欧美午夜性视频| 色综合天天爱| 精品国产免费一区二区三区| 日韩av黄色| 高清一区二区三区日本久| 成人午夜影视| 亚洲精品白浆高清久久久久久| 中文字幕你懂的| 天天综合色天天综合| 一本在线免费视频| 99久久精品国产精品久久| 成人午夜激情av| 在线国产精品一区| 香蕉精品视频在线| 亚洲欧洲av| 国产高清精品一区二区三区| 久久久国产精品网站| 日本精品视频在线观看| 黄色污污视频在线观看| 久久韩国免费视频| 国产高清av在线| 亚洲精品久久在线| 国产高清在线免费| 欧美男男青年gay1069videost| 韩国av中文字幕| 一区二区三区四区不卡视频| 精品伦精品一区二区三区视频密桃 | 亚洲欧美综合色| 毛片aaaaaa| 久久影院电视剧免费观看| 91porn在线| 国产精一区二区三区| 在线视频日韩一区| 日韩在线卡一卡二| 免费国产黄色网址| 最新日韩欧美| www污在线观看| 亚洲视频久久| 久久久久福利视频| 欧美r级电影| 亚洲免费精品视频| 日韩美女一区二区三区在线观看| 欧美一区观看| 国产欧美日韩精品一区二区三区 | 天堂av2020| 青娱乐精品视频在线| 成人三级视频在线播放| 亚洲综合社区| 亚洲熟妇av一区二区三区| 亚洲一区二区三区高清不卡| 国产视频九色蝌蚪| 99国产精品自拍| 啊啊啊一区二区| 性久久久久久| 天天爱天天操天天干| 日本视频免费一区| 欧美美女一级片| 国产一区不卡视频| yjizz视频| 91在线云播放| 欧美熟妇激情一区二区三区| 久久久五月婷婷| 国产精品理论在线| 亚洲欧洲日产国产综合网| 91麻豆免费视频网站| 亚洲精品亚洲人成人网在线播放| 成人免费视频国产免费观看| 亚洲蜜臀av乱码久久精品蜜桃| 欧美日韩国产精品综合| 亚洲福利一区二区| 黄色免费av网站| 欧美性猛片aaaaaaa做受| 91国在线视频| 欧美α欧美αv大片| 深夜福利免费在线观看| 亚洲天堂男人的天堂| 欧美日韩在线看片| 久久久日本电影| 日韩成人影音| 91中文字幕一区| 久久影院资源站| 午夜精品电影在线观看| 欧美1区2区3区| 哪个网站能看毛片| 国产综合一区二区| 亚洲精品女人久久久| 中文字幕乱码久久午夜不卡| 91嫩草|国产丨精品入口| 午夜激情一区二区三区| 中文字幕+乱码+中文字幕明步 | 亚洲视频一区二区免费在线观看| 91视频免费在线看| 色噜噜狠狠一区二区三区果冻| 一级黄色短视频| 亚洲а∨天堂久久精品9966| 极品美乳网红视频免费在线观看| 久久国产精品免费视频 | 午夜精品久久久久久久蜜桃app | 久久不射2019中文字幕| 久久久久久久久久久久久久久国产| 丁香婷婷综合网| 日韩欧美在线视频播放| 香蕉乱码成人久久天堂爱免费| 久久久久久av无码免费看大片| 日韩欧美色电影| 啊v在线视频| 91国内在线视频| 国产精品一区二区三区www| 秋霞久久久久久一区二区| 欧美久久一级| 日本一二区免费| 久久久五月婷婷| 国产成人无码精品亚洲| 欧美丰满嫩嫩电影| 久久经典视频| 91精品国产91久久久久久不卡| 成人亚洲精品| 日韩一区免费观看| 媚黑女一区二区| 视频免费在线观看| 夜夜嗨av一区二区三区网页| 夜夜躁日日躁狠狠久久av| 亚洲精品短视频| 欧美人动性xxxxz0oz| 成人免费网站在线观看| 欧美一区电影| 日韩亚洲在线视频| 91色.com| 欧美一二三区视频| 亚洲精品在线免费播放| 1区2区3区在线视频| 国产中文日韩欧美| 久久精品不卡| 国内自拍视频网| 欧美韩国日本一区| 欧美brazzers| 亚洲人免费视频| 涩涩视频在线| 久久久久久高清| 99精品视频免费观看| 久久人妻少妇嫩草av蜜桃| 亚洲欧美日韩成人高清在线一区| 亚洲一区二区色| 日韩视频免费大全中文字幕| 欧美影视资讯| 香蕉久久夜色| 蜜桃视频在线一区| 国产美女福利视频| 欧美一区午夜精品| 色老头在线观看| 国产精品视频免费观看| 精品动漫3d一区二区三区免费| 日韩精品aaa| 一区二区三区中文字幕在线观看| 国产特级黄色片| 色与欲影视天天看综合网| 日韩一二三区| 一本久道高清无码视频| 99精品桃花视频在线观看| 欧美一级特黄视频| 在线观看日韩www视频免费| 日本综合视频| 在线精品日韩| 国产成人精品1024| 五月婷婷色丁香| 亚洲天堂av在线免费观看| 国产福利亚洲| 99久久99久久精品| 91在线精品一区二区| 中文字幕一区在线播放| 一区二区三区国产视频| 日韩av黄色| 成人免费播放器| 国产亚洲欧美在线| 伊人久久国产精品| 久久91精品国产91久久久| 精品精品精品| 成年人在线观看视频免费| 亚洲视频一二区| 国产91免费看| 国产成人亚洲综合91精品| 欧美韩国日本在线观看| 白丝校花扒腿让我c| 狠狠躁18三区二区一区| 久久日韩视频| 国内精品视频免费| 久久成人免费网| 男人天堂中文字幕| 日韩中文字幕不卡视频| 97精品久久| 无限资源日本好片| 亚洲国产精品一区二区www在线| 久久经典视频| 97视频热人人精品| 日日夜夜精品视频天天综合网| 午夜成人亚洲理伦片在线观看| 亚洲国产精品99| 四虎精品一区二区免费| 国产 福利 在线| 亚洲久草在线视频| www免费网站在线观看|