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

攜程基于BookKeeper的延遲消息架構(gòu)落地實(shí)踐

移動(dòng)開發(fā) 移動(dòng)應(yīng)用
目前bookie集群部署在物理機(jī)上,集群新建、擴(kuò)縮容相對(duì)比較麻煩,未來將考慮融入k8s體系;bookie的治理與平臺(tái)化也是需要考慮的;我們目前只具備同城多中心容災(zāi)能力,跨region容災(zāi)以及公/私混合云容災(zāi)等高可用架構(gòu)也需要進(jìn)一步補(bǔ)強(qiáng)。

本文作者magiccao、littleorca,來自攜程消息隊(duì)列團(tuán)隊(duì)。目前主要從事消息中間件的開發(fā)與彈性架構(gòu)演進(jìn)工作,同時(shí)對(duì)網(wǎng)絡(luò)/性能優(yōu)化、應(yīng)用監(jiān)控與云原生等領(lǐng)域保持關(guān)注。

一、背景

QMQ延遲消息是以服務(wù)形式獨(dú)立存在的一套不局限于消息廠商實(shí)現(xiàn)的解決方案,其架構(gòu)如下圖所示。

QMQ延遲消息服務(wù)架構(gòu)

延遲消息從生產(chǎn)者投遞至延遲服務(wù)后,堆積在服務(wù)器本地磁盤中。當(dāng)延遲消息調(diào)度時(shí)間過期后,延遲服務(wù)轉(zhuǎn)發(fā)至實(shí)時(shí)Broker供消費(fèi)方消費(fèi)。延遲服務(wù)采用主從架構(gòu),其中,Zone表示一個(gè)可用區(qū)(一般可以理解成一個(gè)IDC),為了保證單可用區(qū)故障后,歷史投遞的待調(diào)度消息正常調(diào)度,master和slave會(huì)跨可用區(qū)部署。

1.1 痛點(diǎn)

此架構(gòu)主要存在如下幾點(diǎn)問題:

  • 服務(wù)具有狀態(tài),無法彈性擴(kuò)縮容;
  • 主節(jié)點(diǎn)故障后,需要主從切換(自動(dòng)或手動(dòng));
  • 缺少一致性協(xié)調(diào)器保障數(shù)據(jù)的一致性。

如果將消息的業(yè)務(wù)層和存儲(chǔ)層分離出來,各自演進(jìn)協(xié)同發(fā)展,各自專注在擅長的領(lǐng)域。這樣,消息業(yè)務(wù)層可以做到無狀態(tài)化,輕松完成容器化改造,具備彈性擴(kuò)縮容能力;存儲(chǔ)層引入分布式文件存儲(chǔ)服務(wù),由存儲(chǔ)服務(wù)來保證高可用與數(shù)據(jù)一致性。

1.2 分布式文件存儲(chǔ)選型

對(duì)于存儲(chǔ)服務(wù)的選型,除了基本的高可用于數(shù)據(jù)一致性特點(diǎn)外,還有至關(guān)重要的一點(diǎn):高容錯(cuò)與低運(yùn)維成本特性。分布式系統(tǒng)最大的特點(diǎn)自然是對(duì)部分節(jié)點(diǎn)故障的容忍能力,畢竟任何硬件或軟件故障是不可百分百避免的。因此,高容錯(cuò)與低運(yùn)維成本將成為我們選型中最為看重的。

2016年由雅虎開源貢獻(xiàn)給Apache的Pulsar,因其云原生、低延遲分布式消息隊(duì)列與流式處理平臺(tái)的標(biāo)簽,在開源社區(qū)引發(fā)轟動(dòng)與追捧。在對(duì)其進(jìn)行相關(guān)調(diào)研后,發(fā)現(xiàn)恰好Pulsar也是消息業(yè)務(wù)與存儲(chǔ)分離的架構(gòu),而存儲(chǔ)層則是另一個(gè)Apache開源基金會(huì)的BookKeeper。

二、BookKeeper

BookKeeper作為一款可伸縮、高容錯(cuò)、低延遲的分布式強(qiáng)一致存儲(chǔ)服務(wù)已被部分公司應(yīng)用于生產(chǎn)環(huán)境部署使用,最佳實(shí)踐案例包括替代HDFS的namenode、Pulsar的消息存儲(chǔ)與消費(fèi)進(jìn)度持久化以及對(duì)象存儲(chǔ)。

2.1 基本架構(gòu)

BookKeeper基本架構(gòu)

  • Zookeeper集群用于存儲(chǔ)節(jié)點(diǎn)發(fā)現(xiàn)與元信息存儲(chǔ),提供強(qiáng)一致性保證;
  • Bookie存儲(chǔ)節(jié)點(diǎn),提供數(shù)據(jù)的存儲(chǔ)服務(wù)。寫入和讀取過程中,Bookie節(jié)點(diǎn)間彼此無須通信。Bookie啟動(dòng)時(shí)將自身注冊(cè)到Zookeeper集群,暴露服務(wù);
  • Client屬于胖客戶端類型,負(fù)責(zé)與Zookeeper集群和BookKeeper集群直接通信,且根據(jù)元信息完成多副本的寫入,保證數(shù)據(jù)可重復(fù)讀。

2.2 基本特性

a)基本概念

  • Entry:數(shù)據(jù)載體的基本單元
  • Ledger:entry集合的抽象,類似文件
  • Bookie:ledger集合的抽象,物理存儲(chǔ)節(jié)點(diǎn)
  • Ensemble:ledger的bookie集合

b)數(shù)據(jù)讀寫

BookKeeper數(shù)據(jù)讀寫

bookie客戶端通過創(chuàng)建而持有一個(gè)ledger后便可以進(jìn)行entry寫入操作,entry以帶狀方式分布在enemble的bookie中。entry在客戶端進(jìn)行編號(hào),每條entry會(huì)根據(jù)設(shè)置的副本數(shù)(Qw)要求判定寫入成功與否;

bookie客戶端通過打開一個(gè)已創(chuàng)建的ledger進(jìn)行entry讀取操作,entry的讀取順序與寫入保持一致,默認(rèn)從第一個(gè)副本中讀取,讀取失敗后順序從下一個(gè)副本重試。

c)數(shù)據(jù)一致性

持有可寫ledger的bookie客戶端稱為Writer,通過分布式鎖機(jī)制確保一個(gè)ledger全局只有一個(gè)Writer,Writer的唯一性保證了數(shù)據(jù)寫入一致性。Writer內(nèi)存中維護(hù)一個(gè)LAC(Last Add Confirmed),當(dāng)滿足Qw要求后,更新LAC。LAC隨下一次請(qǐng)求或定時(shí)持久化在bookie副本中,當(dāng)ledger關(guān)閉時(shí),持久化在Metadata Store(zookeeper或etcd)中;

持有可讀ledger的bookie客戶端稱為Reader,一個(gè)ledger可以有任意多個(gè)Reader。LAC的強(qiáng)一致性保證了不同Reader看到統(tǒng)一的數(shù)據(jù)視圖,亦可重復(fù)讀,從而保證了數(shù)據(jù)讀取一致性。

d)容錯(cuò)性

典型故障場(chǎng)景:Writer crash或restart、Bookie crash。

Writer故障,ledger可能未關(guān)閉,導(dǎo)致LAC未知。通過ledger recover機(jī)制,關(guān)閉ledger,修復(fù)LAC;

Bookie故障,entry寫入失敗。通過ensemble replace機(jī)制,更新一條新的entry路由信息到Metadata Store中,保障了新數(shù)據(jù)能及時(shí)成功寫入。歷史數(shù)據(jù),通過bookie recover機(jī)制,滿足Qw副本要求,夯實(shí)了歷史數(shù)據(jù)讀取的可靠性。至于副本所在的所有bookie節(jié)點(diǎn)全部故障場(chǎng)景,只能等待修復(fù)。

e)負(fù)載均衡

新擴(kuò)容進(jìn)集群的bookie,當(dāng)創(chuàng)建新的ledger時(shí),便自動(dòng)均衡流量。

2.3 同城多中心容災(zāi)

上海區(qū)域(region)存在多個(gè)可用區(qū)(az,available zone),各可用兩兩間網(wǎng)絡(luò)延遲低于2ms,此種網(wǎng)絡(luò)架構(gòu)下,多副本分散在不同的az間是一個(gè)可接受的高可用方案。BookKeeper基于Zone感知的ensemble替換策略便是應(yīng)對(duì)此種場(chǎng)景的解決方案。

基于Zone感知策略的同城多中心容災(zāi)

開啟Zone感知策略有兩個(gè)限制條件:a)E % Qw == 0;b)Qw > minNumOfZones。其中E表示ensemble大小,Qw表示副本數(shù),minNumOfZones表示ensemble中的最小zone數(shù)目。

譬如下面的例子:

minNumOfZones = 2
desiredNumZones = 3
E = 6
Qw = 3
[z1, z2, z3, z1, z2, z3]

故障前,每條數(shù)據(jù)具有三副本,且分布在三個(gè)可用區(qū)中;當(dāng)z1故障后,將以滿足minNumOfZones限制生成新的ensemble:[z1, z2, z3, z1, z2, z3] -> [z3, z2, z3, z3, z2, z3]。顯然對(duì)于三副本的每條數(shù)據(jù)仍將分布在兩個(gè)可用區(qū)中,仍能容忍一個(gè)可用區(qū)故障。

DNSResolver

客戶端在挑選bookie組成ensemble時(shí),需要通過ip反解出對(duì)應(yīng)的zone信息,需要用戶實(shí)現(xiàn)解析器。考慮到zone與zone間網(wǎng)段是認(rèn)為規(guī)劃且不重合的,因此,我們落地時(shí),簡單的實(shí)現(xiàn)了一個(gè)可動(dòng)態(tài)配置生效的子網(wǎng)解析器。示例給出的是ip精確匹配的實(shí)現(xiàn)方式。

public class ConfigurableDNSToSwitchMapping extends AbstractDNSToSwitchMapping {

private final Map<String, String> mappings = Maps.newHashMap();

public ConfigurableDNSToSwitchMapping() {
super();
mappings.put("192.168.0.1", "/z1/192.168.0.1"); // /zone/upgrade domain
mappings.put("192.168.1.1", "/z2/192.168.1.1");
mappings.put("192.168.2.1", "/z3/192.168.2.1");
}

@Override
public boolean useHostName() {
return false;
}

@Override
public List<String> resolve(List<String> names) {
List<String> rNames = Lists.newArrayList();
names.forEach(name -> {
String rName = mappings.getOrDefault(name, "/default-zone/default-upgradedomain");
rNames.add(rName);
});
return rNames;
}
}

可配置化DNS解析器示例

數(shù)據(jù)副本分布在單zone

當(dāng)某些原因(譬如可用區(qū)故障演練)導(dǎo)致只有一個(gè)可用區(qū)可用時(shí),新寫入的數(shù)據(jù)的全部副本都將落在單可用區(qū),當(dāng)故障可用區(qū)恢復(fù)后,仍然有部分歷史數(shù)據(jù)只存在于單可用區(qū),不滿足多可用區(qū)容災(zāi)的高可用需求。

AutoRecovery機(jī)制中有一個(gè)PlacementPolicy檢測(cè)機(jī)制,但缺少恢復(fù)機(jī)制。于是我們打了個(gè)patch,支持動(dòng)態(tài)機(jī)制開啟和關(guān)閉此功能。這樣,當(dāng)可用區(qū)故障恢復(fù)后可以自動(dòng)發(fā)現(xiàn)和修復(fù)數(shù)據(jù)全部副本分布在單可用區(qū)從而影響數(shù)據(jù)可用性的問題。

三、彈性架構(gòu)落地

引入BookKeeper后,延遲消息服務(wù)的架構(gòu)相對(duì)漂亮不少。消息業(yè)務(wù)層面和存儲(chǔ)層面完全分離,延遲消息服務(wù)本身無狀態(tài)化,可以輕易伸縮。當(dāng)可用區(qū)故障后,不再需要主從切換。

延遲消息服務(wù)新架構(gòu)

3.1 無狀態(tài)化改造

存儲(chǔ)層分離出去后,業(yè)務(wù)層實(shí)現(xiàn)無狀態(tài)化成為可能。要達(dá)成這一目標(biāo),還需解決一些問題。我們先看看BookKeeper使用上的一些約束:

  • BookKeeper不支持共享寫入的,也即業(yè)務(wù)層多個(gè)節(jié)點(diǎn)如果都寫數(shù)據(jù),則各自寫的必然是不同的ledger;
  • 雖然BookKeeper允許多讀,但多個(gè)應(yīng)用節(jié)點(diǎn)各自讀取的話,進(jìn)度是相互獨(dú)立的,應(yīng)用必須自行解決進(jìn)度協(xié)調(diào)問題。

上述兩個(gè)主要問題,決定我們實(shí)現(xiàn)無狀態(tài)和彈性擴(kuò)縮容時(shí),必需自行解決讀寫資源分配的問題。為此,我們引入了任務(wù)協(xié)調(diào)器。

我們首先將存儲(chǔ)資源進(jìn)行分片管理,每個(gè)分片上都支持讀寫操作,但同一時(shí)刻只能有一個(gè)業(yè)務(wù)層節(jié)點(diǎn)來讀寫。如果我們把分片看作資源,把業(yè)務(wù)層節(jié)點(diǎn)看作工作者,那么任務(wù)協(xié)調(diào)器的主要職責(zé)為:

  • 在盡可能平均的前提下以粘滯優(yōu)先的方式把資源分配給工作者;
  • 監(jiān)視資源和工作者的變化,如有增減,重新執(zhí)行職責(zé)1;
  • 在資源不夠用時(shí),根據(jù)具體策略配置,添加初始化新的資源。

由于是分布式環(huán)境,協(xié)調(diào)器自身完成上述職責(zé)時(shí)需要保證分布式一致性,當(dāng)然還要滿足可用性要求。我們選擇了基于ZooKeeper進(jìn)行選主的一主多從式架構(gòu)。

如圖所示,協(xié)調(diào)器對(duì)等部署在業(yè)務(wù)層應(yīng)用節(jié)點(diǎn)中。運(yùn)行時(shí),協(xié)調(diào)器通過基于ZooKeeper的leader競選機(jī)制決出leader節(jié)點(diǎn),并由leader節(jié)點(diǎn)負(fù)責(zé)前述任務(wù)分配工作。

協(xié)調(diào)器選舉的實(shí)現(xiàn)參考ZooKeeper官方文檔,這里不再贅述。

3.2 持久化數(shù)據(jù)

原有架構(gòu)將延遲消息根據(jù)調(diào)度時(shí)間按每10分鐘桶存儲(chǔ)在本地,時(shí)間臨近的桶加載到內(nèi)存中,使用HashedWheelTimer來調(diào)度。該設(shè)計(jì)存在兩個(gè)弊端:

  • 分桶較多(我們支持2年范圍的延遲,理論分桶數(shù)量達(dá)10萬多);
  • 單個(gè)桶的數(shù)據(jù)(10分鐘)如不能全部加載到內(nèi)存,則由于桶內(nèi)未按調(diào)度時(shí)間排序,可能出現(xiàn)未加載的部分包含了調(diào)度時(shí)間較早的數(shù)據(jù),等它被加載時(shí)已經(jīng)滯后了。

弊端1的話,單機(jī)本地10萬+文件還不算多大問題,但改造后這些桶信息以元信息的方式存儲(chǔ)在ZooKeeper上,我們的實(shí)現(xiàn)方案決定了每個(gè)桶至少占用3個(gè)ZooKeeper節(jié)點(diǎn)。假設(shè)我們要部署5個(gè)集群,平均每個(gè)集群有10個(gè)分片,每個(gè)分片有10萬個(gè)桶,那使用的ZooKeeper節(jié)點(diǎn)數(shù)量就是1500萬起,這個(gè)量級(jí)是ZooKeeper難以承受的。

弊端2則無論新老架構(gòu),都是個(gè)潛在問題。一旦某個(gè)10分鐘消息量多一些,就可能導(dǎo)致消息延遲。往內(nèi)存加載時(shí),應(yīng)該有更細(xì)的顆粒度才好。

基于以上問題分析,我們參考多級(jí)時(shí)間輪調(diào)度的思路,略加變化,設(shè)計(jì)了一套基于滑動(dòng)時(shí)間分桶的多級(jí)調(diào)度方案。

如上表所示,最大的桶是1周,其次是1天,1小時(shí),1分鐘。每個(gè)級(jí)別覆蓋不同的時(shí)間范圍,組合起來覆蓋2年的時(shí)間范圍理論上只需286個(gè)桶,相比原來的10萬多個(gè)桶有了質(zhì)的縮減。

同時(shí),只有L0m這一級(jí)調(diào)度器需要加載數(shù)據(jù)到HashedWheelTimer,故而加載粒度細(xì)化到了1分鐘,大大減少了因不能完整加載一個(gè)桶而導(dǎo)致的調(diào)度延遲。

多級(jí)調(diào)度器以類似串聯(lián)的方式協(xié)同工作。

每一級(jí)調(diào)度器收到寫入請(qǐng)求時(shí),首先嘗試委托給其上級(jí)(顆粒度更大)調(diào)度器處理。如果上級(jí)接受,則只需將上級(jí)的處理結(jié)果向下返回;如果上級(jí)不接受,再判斷是否歸屬本級(jí),是的話寫入桶中,否則打回給下級(jí)。

每一級(jí)調(diào)度器都會(huì)將時(shí)間臨近的桶打開并發(fā)送其中的數(shù)據(jù)到下一級(jí)調(diào)度器。比如L1h發(fā)現(xiàn)最小的桶到了預(yù)加載時(shí)間,則把該桶的數(shù)據(jù)讀出并發(fā)送給L0m調(diào)度器,最終該小時(shí)的數(shù)據(jù)被轉(zhuǎn)移到L0m并展開為(最多)60個(gè)分鐘級(jí)的桶。

四、未來規(guī)劃

目前bookie集群部署在物理機(jī)上,集群新建、擴(kuò)縮容相對(duì)比較麻煩,未來將考慮融入k8s體系;bookie的治理與平臺(tái)化也是需要考慮的;我們目前只具備同城多中心容災(zāi)能力,跨region容災(zāi)以及公/私混合云容災(zāi)等高可用架構(gòu)也需要進(jìn)一步補(bǔ)強(qiáng)。

責(zé)任編輯:未麗燕 來源: 攜程技術(shù)
相關(guān)推薦

2022-08-20 07:46:03

Dynamo攜程數(shù)據(jù)庫

2022-05-13 07:22:39

攜程微服務(wù)SOA

2023-07-07 12:19:43

攜程技術(shù)

2016-09-04 15:14:09

攜程實(shí)時(shí)數(shù)據(jù)數(shù)據(jù)平臺(tái)

2022-06-27 09:36:29

攜程度假GraphQL多端開發(fā)

2022-06-27 09:42:55

攜程金融nebula圖平臺(tái)

2024-04-26 09:38:36

2023-06-06 11:49:24

2022-07-15 12:58:02

鴻蒙攜程華為

2022-05-13 09:27:55

Widget機(jī)票業(yè)務(wù)App

2022-11-29 20:32:07

2023-06-28 14:01:13

攜程實(shí)踐

2023-07-07 12:26:39

攜程開發(fā)

2017-10-09 09:12:35

攜程運(yùn)維架構(gòu)

2016-12-15 21:41:15

大數(shù)據(jù)

2022-08-12 08:34:32

攜程數(shù)據(jù)庫上云

2023-02-08 16:34:05

數(shù)據(jù)庫工具

2022-07-08 09:38:27

攜程酒店Flutter技術(shù)跨平臺(tái)整合

2022-07-15 09:20:17

性能優(yōu)化方案

2023-11-24 09:44:07

數(shù)據(jù)攜程
點(diǎn)贊
收藏

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

欧美一级久久久| 久久亚洲精品国产精品紫薇| 久久视频在线观看免费| 巨乳女教师的诱惑| 亚洲十八**毛片| 国产精品天干天干在观线| 91精品国产高清久久久久久91裸体| 精品少妇一二三区| 禁果av一区二区三区| 欧美日高清视频| 国产极品尤物在线| 欧美尤物美女在线| 99re这里都是精品| 川上优av一区二区线观看| 日本一区二区三区精品| 911久久香蕉国产线看观看| 精品视频—区二区三区免费| 超碰中文字幕在线观看| 在线日本欧美| 亚洲www啪成人一区二区麻豆| 麻豆成人在线观看| 亚洲a在线视频| 欧美日本在线播放| 日本毛片在线免费观看| h片在线播放| 国产精品午夜在线| 精品久久久久久中文字幕动漫| 亚洲一区二区三区网站| 老鸭窝毛片一区二区三区| 欧美疯狂性受xxxxx另类| 亚洲图片另类小说| 欧美理论电影在线精品| 日韩一区二区三区电影在线观看 | 成人在线电影在线观看视频| 亚洲第一精品自拍| 91亚洲一区二区| 91丨精品丨国产| 欧美日韩午夜在线视频| 欧美丰满熟妇xxxxx| 激情国产在线| 亚洲一区二区成人在线观看| 好吊色这里只有精品| 日本中文字幕视频在线| 中文字幕欧美激情| 日韩少妇中文字幕| 第九色区av在线| 国产亚洲欧美一级| 欧美一区二区三区四区夜夜大片 | 在线国产精品播放| 精品无码国产污污污免费网站 | 亚洲午夜在线观看| 东凛在线观看| 国产日韩欧美激情| 日本在线视频不卡| 国产精品影院在线| 亚洲国产成人自拍| 伊人久久av导航| 精品国产99久久久久久| 亚洲同性同志一二三专区| 亚洲一区二区三区色| 免费av网站在线看| 一区二区三区精密机械公司| 亚洲国产一二三精品无码| 四虎影院观看视频在线观看| 亚洲宅男天堂在线观看无病毒| 99在线观看视频免费| 欧洲一区二区三区| 欧美日韩国产限制| 国产精品亚洲二区在线观看| 韩日一区二区| 欧美精品乱人伦久久久久久| 搡的我好爽在线观看免费视频| 97久久综合精品久久久综合| 亚洲国模精品私拍| 熟女俱乐部一区二区| 日韩理论电影| 欧美国产欧美亚洲国产日韩mv天天看完整| 久久久久久久中文字幕| 99国产精品久久久久久久| 欧美综合第一页| 中文字幕第99页| 国产福利视频一区二区三区| 精品国产免费人成电影在线观... 精品国产免费久久久久久尖叫 | 国产乱码精品一区二区三区卡| 午夜成人免费影院| 欧美激情中文字幕| 国产 欧美 日本| 在线女人免费视频| 欧美精品tushy高清| 日韩成人av影院| 欧美日韩黑人| 欧美黑人国产人伦爽爽爽| 91入口在线观看| 久草免费新视频| 国产尤物精品| 国产精品va在线播放我和闺蜜| 91在线视频国产| 成人黄色一级视频| 亚洲欧美日韩在线综合| 丁香花电影在线观看完整版 | 小泽玛利亚一区二区三区视频| 极品少妇一区二区三区精品视频 | 亚洲卡通动漫在线| 亚洲欧洲日产国码无码久久99| 久久91视频| 亚洲国产精品中文| 四虎永久免费地址| 国产日本在线观看| 久88久久88久久久| 精品免费视频123区| 日本在线观看www| 欧美日韩国产专区| 尤物网站在线看| 国语产色综合| 久久久之久亚州精品露出| 在线视频精品免费| 北条麻妃国产九九精品视频| 天天成人综合网| 欧美大片高清| 亚洲国产成人久久| 日本中文在线视频| 日韩电影在线一区二区| 国产日韩精品一区观看| 国产婷婷视频在线 | 成年人视频免费| 成人综合婷婷国产精品久久免费| 亚洲一区二区在线观| 中文字幕成在线观看| 精品免费国产一区二区三区四区| 精品丰满少妇一区二区三区| 久久xxxx| 日韩欧美一二区| 日本久久久精品视频| 黄色欧美在线| 欧美剧在线观看| 国产又黄又大又爽| 国产精品第13页| xxxx一级片| 久操成人av| 日韩免费观看网站| 牛牛影视精品影视| 午夜激情久久久| 成人做爰www看视频软件| 欧美成人午夜| 91麻豆蜜桃| 欧美1—12sexvideos| 日韩你懂的电影在线观看| 18岁成人毛片| 国产经典欧美精品| 奇米777四色影视在线看| 国色天香久久精品国产一区| 久久天天躁日日躁| 国产喷水福利在线视频| 亚洲美女免费在线| 欧美69精品久久久久久不卡| 欧美日本精品| 国产高清在线精品一区二区三区| 欧美色图天堂| 亚洲高清一区二| 天天干天天干天天| 国产视频一区二区在线| 国产97色在线 | 日韩| 菠萝蜜一区二区| 国产在线播放91| 少妇视频在线| 日韩精品视频在线| 国产成人免费看| 国产日韩欧美麻豆| 中文字幕久久av| 欧美~级网站不卡| 不卡视频一区二区三区| h片在线观看| 亚洲人成免费电影| 一级黄色大片免费观看| 亚洲丝袜另类动漫二区| 极品白嫩的小少妇| 久久影院亚洲| 亚洲欧美日本国产有色| 精品视频一二| 91超碰中文字幕久久精品| 精品资源在线看| 91精品国产手机| 国产精品7777| 亚洲国产高清不卡| 日本精品一二三| 久久激情婷婷| 欧美aaa在线观看| 伦理一区二区三区| 国产精品视频色| 牛牛在线精品视频| 亚洲一区二区精品| www日本高清视频| 欧美午夜激情视频| 一级黄色录像视频| 久久精品视频在线看| 成人免费黄色av| 亚欧美中日韩视频| 好色先生视频污| 伊人成综合网yiren22| 成人精品一区二区三区电影黑人| а√在线天堂官网| 久久精品国产99国产精品澳门 | 四虎一区二区| 国产成人精品亚洲线观看| 国产成人久久久精品一区| 18加网站在线| 一色桃子一区二区| a一级免费视频| 久久久久久久久久久久电影| 国内伊人久久久久久网站视频| av色图一区| 日韩av在线网页| 国产jzjzjz丝袜老师水多| 日本国产一区二区| 亚洲精品77777| 亚洲三级电影网站| 日韩精品无码一区二区三区久久久| 国产成人综合亚洲网站| 亚洲久久中文字幕| 久久久久国产精品一区三寸| 国产妇女馒头高清泬20p多| 国产精品久久久久久麻豆一区软件| 欧美二区三区| 老司机在线精品视频| 亚洲一区亚洲二区亚洲三区| 丁香婷婷久久| 国产精品69久久| 人人视频精品| 日本一本a高清免费不卡| 成人ssswww在线播放| 欧美日韩国产91| 中文在线字幕免费观看| www.欧美精品一二三区| 香蕉视频免费在线播放| 怡红院精品视频| 国产午夜在线视频| 国产亚洲欧洲黄色| 国产高清美女一级毛片久久| 亚洲精品影视在线观看| 香蕉国产在线视频| 日韩精品中文在线观看| 天堂在线观看视频| 日韩精品在线视频美女| 涩涩视频在线观看免费| 日韩精品在线影院| 黄网在线观看| 这里只有精品在线播放| 成年女人的天堂在线| 国产亚洲aⅴaaaaaa毛片| yw193.com尤物在线| 在线视频精品一| www日韩tube| 日韩中文字幕在线视频| 免费网站黄在线观看| 久久精品国产99国产精品澳门| caoporn免费在线视频| 欧美成人免费全部| 成人性生交大片免费看在线播放| 亚洲91精品在线| 爱情电影社保片一区| 国产精品久久久久久久av电影| 福利一区二区三区视频在线观看| 91精品久久久久久久久青青| 国产精品日本一区二区不卡视频| 亚洲精品女av网站| 岛国成人av| 欧美裸体网站| 欧美国产美女| 黄色三级中文字幕| 欧美亚洲专区| 久久人人爽av| 国产91高潮流白浆在线麻豆| 玖玖爱在线精品视频| 久久久久国色av免费看影院| 人妻一区二区视频| 亚洲乱码国产乱码精品精可以看 | 欧美少妇一区二区| 精品人妻一区二区三区蜜桃| 日韩精品高清在线| aaa日本高清在线播放免费观看| 久久精品视频99| 爱情岛亚洲播放路线| 国产精品第2页| 亚洲精品a区| 欧美下载看逼逼| 欧美精品色网| 国产精品天天av精麻传媒| 国产老肥熟一区二区三区| 亚洲天堂网一区二区| 国产精品高潮呻吟| 国产在线拍揄自揄拍| 91福利在线导航| 国产精品久久免费| 亚洲精品一区二区三区蜜桃下载 | 欧美成人合集magnet| 亚洲天堂av在线| 亚洲自拍欧美另类| 国产欧美日韩在线一区二区| 日本高清xxxx| 久久午夜av| 在线播放av网址| 亚洲视频免费在线观看| 日韩精品久久久久久免费| 日韩一区二区不卡| 大胆av不用播放器在线播放| 久久久女人电视剧免费播放下载| 亚洲综合av一区二区三区| 国产亚洲自拍偷拍| 亚洲综合小说| 久草在在线视频| 26uuu久久天堂性欧美| 青青操国产视频| 欧美精品v日韩精品v韩国精品v| 天天操天天摸天天爽| 日韩视频在线观看一区| 欧美午夜女人视频在线| a天堂在线观看视频| 在线观看国产欧美| 成人香蕉视频| 丁香婷婷久久久综合精品国产 | 国产成人午夜99999| 国产三级黄色片| 色综合久久久久久久久久久| 高h震动喷水双性1v1| 欧美成年人视频网站| 日韩免费大片| 日韩欧美亚洲精品| 国产免费成人| 一级黄色电影片| 亚洲精品日韩综合观看成人91| 97超碰资源站| 宅男66日本亚洲欧美视频| 不卡福利视频| 欧美12av| 久久久久91| 亚洲午夜久久久久久久久红桃 | 久久精品99久久久香蕉| 成人日韩av| 日韩中文一区| 男女男精品视频网| 在线观看福利片| 日韩欧美高清视频| 女人天堂在线| 国产精品精品国产| 成人高清电影网站| 亚洲第一中文av| 久久精品亚洲精品国产欧美kt∨| 伦av综合一区| 亚洲视频在线播放| 日韩精品第一| 亚洲日本精品国产第一区| 免费成人av资源网| 国产精品免费在线视频| 6080yy午夜一二三区久久| 欧美成人hd| 亚洲xxxx在线| 国产精品二区影院| 国产人妻黑人一区二区三区| 亚洲国产色一区| 欧美视频综合| 国产精品爽黄69| 91成人免费| 天天躁日日躁狠狠躁免费麻豆| 午夜久久电影网| 国产高清视频免费最新在线| 成人综合网网址| 在线播放不卡| 蜜桃无码一区二区三区| 欧美巨大另类极品videosbest | 日本一区二区三区在线免费观看| 一区二区理论电影在线观看| 蜜桃91麻豆精品一二三区| 51久久精品夜色国产麻豆| 欧美极品在线观看| 99九九精品视频| 一区免费观看视频| 亚洲国产视频一区二区三区| 98精品在线视频| 中文字幕免费高清在线观看| 久久一区二区三区四区| 黄色在线免费观看| 中文字幕亚洲欧美日韩在线不卡| 99久久久国产| 又粗又黑又大的吊av| 国产精品久久久久一区二区三区 | 快灬快灬一下爽蜜桃在线观看| 伊人青青综合网| 久热精品在线观看视频| 一区二区三区四区精品在线视频| 国产黄色美女视频| 热re91久久精品国99热蜜臀| 国产精品久久观看| 日本丰满少妇裸体自慰| 91精品婷婷国产综合久久竹菊| 6699嫩草久久久精品影院| 亚洲乱码国产乱码精品天美传媒| 国产美女精品人人做人人爽| 欧美性猛交bbbbb精品| 欧美成人中文字幕| 精品国产一区二区三区久久久樱花|