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

Yelp的實(shí)時(shí)流技術(shù)之四:流處理器PaaStorm

大數(shù)據(jù) PaaS
這個(gè)系列會(huì)深度講解我們?nèi)绾斡谩按_保只有一次”的方式把MySQL數(shù)據(jù)庫(kù)中的改動(dòng)實(shí)時(shí)地以流的方式傳輸出去,我們?nèi)绾巫詣?dòng)跟蹤表模式變化、如何處理和轉(zhuǎn)換流,以及最終如何把這些數(shù)據(jù)存儲(chǔ)到Redshift或Salesforce之類的數(shù)據(jù)倉(cāng)庫(kù)中去。

這是關(guān)于Yelp的實(shí)時(shí)流數(shù)據(jù)基礎(chǔ)設(shè)施系列文章的第四篇。這個(gè)系列會(huì)深度講解我們?nèi)绾斡?ldquo;確保只有一次”的方式把MySQL數(shù)據(jù)庫(kù)中的改動(dòng)實(shí)時(shí)地以流的方式傳輸出去,我們?nèi)绾巫詣?dòng)跟蹤表模式變化、如何處理和轉(zhuǎn)換流,以及最終如何把這些數(shù)據(jù)存儲(chǔ)到Redshift或Salesforce之類的數(shù)據(jù)倉(cāng)庫(kù)中去。

在2010年時(shí),Yelp開(kāi)源了一個(gè)名叫MRJob的框架,是用來(lái)在AWS基礎(chǔ)設(shè)施上運(yùn)行大MapReduce Job的。Yelp的工程師們用MRJob實(shí)現(xiàn)了很多功能,從廣告推送到翻譯,比比皆是。事實(shí)證明,MRJob是一個(gè)非常強(qiáng)大的工具,可以在我們當(dāng)時(shí)豐富的數(shù)據(jù)集合上完成計(jì)算和聚集操作。

不幸的是,隨著使用MRJob的服務(wù)數(shù)量巨增,運(yùn)行和調(diào)度任務(wù)開(kāi)始變得越來(lái)越復(fù)雜。由于很多任務(wù)都是要依賴上游任務(wù)的,所以就要好好地安排整個(gè)系統(tǒng)的拓?fù)洹apReduce任務(wù)并不是用于實(shí)時(shí)處理的,所以任務(wù)的拓?fù)湟刻煺{(diào)度一次。更糟的是,萬(wàn)一上游的任務(wù)失敗了,下游的也會(huì)失敗,最終會(huì)輸出錯(cuò)誤的結(jié)果。因此就要有非常專業(yè)的能力來(lái)判斷應(yīng)該從哪個(gè)任務(wù)開(kāi)始、以什么順序重新運(yùn)行,最終輸出正確的結(jié)果。

愛(ài)思考的人就會(huì)問(wèn)了:我們有沒(méi)有什么辦法來(lái)更高效地完成計(jì)算和轉(zhuǎn)換任務(wù)呢?我們還想支持一個(gè)復(fù)雜的數(shù)據(jù)流中不同數(shù)據(jù)轉(zhuǎn)換操作之間的依賴關(guān)系,尤其是要能優(yōu)雅地處理模式改變及上游的故障。我們還希望系統(tǒng)能實(shí)時(shí)或者近實(shí)時(shí)地運(yùn)行。這樣,系統(tǒng)就可以用于業(yè)務(wù)分析及指標(biāo)監(jiān)控。換句話說(shuō),我們需要的是一個(gè)流處理器。

Storm之類現(xiàn)成的計(jì)算系統(tǒng)本來(lái)也是非常不錯(cuò)的。但由于許多主流的流處理框架對(duì)Python的支持都不太好,因此要把我們的其他后臺(tái)程序與Storm或者其他現(xiàn)有流處理系統(tǒng)結(jié)合起來(lái)就會(huì)非常痛苦。

我們***用的是Pyleus,這是一個(gè)讓開(kāi)發(fā)者可以用Python處理和轉(zhuǎn)換數(shù)據(jù)的開(kāi)源框架。Pyleus的底層仍然是使用Storm的,構(gòu)建耗時(shí)比較久,運(yùn)行得也慢。Twitter Heron宣布開(kāi)源后,我們發(fā)現(xiàn)我們也碰上了許多他們碰到過(guò)的問(wèn)題。Yelp自己有功能非常強(qiáng)大的用于部署服務(wù)的Platform-as-a-Service平臺(tái)PaasTA,相比之下我們更喜歡使用PaaSTA,而不是運(yùn)行專用的Storm集群。

從2015年7月開(kāi)始,有一幫工程師們開(kāi)始研發(fā)一種新型的數(shù)據(jù)倉(cāng)庫(kù),也碰上了典型的擴(kuò)展和性能問(wèn)題。最開(kāi)始時(shí)他們想用Pyleus來(lái)先清洗數(shù)據(jù),再拷貝到Redshift上。后來(lái)他們意識(shí)到部署一整套Storm集群來(lái)運(yùn)行些簡(jiǎn)單的Python邏輯實(shí)在太沒(méi)必要了:用Yelp自己的運(yùn)行服務(wù)的平臺(tái)去部署一套基于Python的流處理器就足夠了。我們的流處理器是基于Samza設(shè)計(jì)的,目的是提供一些簡(jiǎn)單的接口,用一種“處理消息”的方法來(lái)做數(shù)據(jù)轉(zhuǎn)換。

工程師們?cè)贖ackathon 17上構(gòu)建了運(yùn)行在PyPy上的流處理器的原型,這樣PassStorm就誕生了。

這名字中有什么含義?

PaaStorm的名字其實(shí)是PaaSTA和Storm的組合。那PaaStorm到底是干什么的呢?要回答這個(gè)問(wèn)題,咱們先看看數(shù)據(jù)管道的基本架構(gòu):

主要看看“Transformer”那一步,就會(huì)知道大多數(shù)存儲(chǔ)在Kafka中的消息都并不能直接被導(dǎo)入目標(biāo)系統(tǒng)。設(shè)想有一套R(shí)edshift集群是用來(lái)存儲(chǔ)廣告推送數(shù)據(jù)的。廣告推送集群想存儲(chǔ)的只是上游系統(tǒng)的某一個(gè)字段(比如某個(gè)業(yè)務(wù)的平均權(quán)重),否則它就要保存原始數(shù)據(jù)并對(duì)其進(jìn)行聚合計(jì)算。如果Redhift廣告推送集群要存儲(chǔ)所有上游數(shù)據(jù)的話,就會(huì)浪費(fèi)存儲(chǔ)空間,導(dǎo)致系統(tǒng)性能降低。

在過(guò)去,各個(gè)服務(wù)都會(huì)寫(xiě)復(fù)雜的MapReduce任務(wù),在把數(shù)據(jù)寫(xiě)到目標(biāo)數(shù)據(jù)存儲(chǔ)之前先進(jìn)行數(shù)據(jù)處理。可是,這些MapReduce任務(wù)都碰到了上文所述的性能和擴(kuò)展問(wèn)題。數(shù)據(jù)管道給大家提供的好處之一是消費(fèi)者程序可以拿到它所需要的數(shù)據(jù)的形式,不管上游數(shù)據(jù)本來(lái)是什么樣。

減少示例代碼

本來(lái)我們是可以讓每個(gè)消費(fèi)者程序自己按自己需要的方式做數(shù)據(jù)轉(zhuǎn)換的。比如,廣告推送系統(tǒng)可以自己寫(xiě)一個(gè)轉(zhuǎn)換服務(wù),從Kafka中的業(yè)務(wù)數(shù)據(jù)中提取出查看統(tǒng)計(jì)量,并自己維護(hù)這個(gè)轉(zhuǎn)換服務(wù)的。這種辦法最初工作得很好,但最終系統(tǒng)上規(guī)模時(shí)我們就碰上問(wèn)題了。

我們想提供一個(gè)轉(zhuǎn)換框架是基于以下考慮:

很多轉(zhuǎn)換邏輯是通用的,可以在多個(gè)團(tuán)隊(duì)之間共享。比如把標(biāo)志位轉(zhuǎn)換成有意義的字段。

這樣的轉(zhuǎn)換邏輯通常會(huì)需要很多示例代碼。比如連接數(shù)據(jù)源或數(shù)據(jù)目的、保存狀態(tài)、監(jiān)控吞吐量、故障恢復(fù)等。這樣的代碼本來(lái)并不需要在各種服務(wù)之間拷來(lái)拷去。

要保證能對(duì)數(shù)據(jù)進(jìn)行實(shí)時(shí)處理的話,數(shù)據(jù)轉(zhuǎn)換操作要盡可能地快,要基于流。

減少示例代碼最自然的方式就是提供一個(gè)轉(zhuǎn)換接口。大家的服務(wù)實(shí)現(xiàn)接口中完成一次轉(zhuǎn)換操作的具體邏輯,然后,剩下的工作就由我們的流處理框架完成。

把Kafka作為消息總線

最初PaaStorm是一個(gè)Kafka-to-Kafka的轉(zhuǎn)換框架,慢慢地才演進(jìn)成也支持了其他類型的終端節(jié)點(diǎn)。把Kafka做為PaaStorm的終端節(jié)點(diǎn)簡(jiǎn)化了很多東西:每個(gè)對(duì)數(shù)據(jù)感興趣的服務(wù)都可以注冊(cè)到Topic上,關(guān)注任意轉(zhuǎn)換過(guò)的數(shù)據(jù)或者原始數(shù)據(jù),有新消息到來(lái)就處理就好了,完全不必在意是誰(shuí)創(chuàng)建了這個(gè)Topic。轉(zhuǎn)換過(guò)的數(shù)據(jù)按Kafka的保留策略持久化。因?yàn)镵afka是一個(gè)發(fā)布-訂閱系統(tǒng),下游系統(tǒng)也可以在任何它想的時(shí)候消費(fèi)數(shù)據(jù)。

用Storm處理一切

當(dāng)采用了PaaStorm之后,我們?cè)撛鯓影盐覀兊腒afka Topic之間的關(guān)系可視化呢?因?yàn)橛行㏕opic中的數(shù)據(jù)會(huì)按照源到端的方式流向別的Topic,我們可以把我們的拓?fù)浣Y(jié)構(gòu)當(dāng)成一個(gè)有向無(wú)環(huán)圖:

每個(gè)節(jié)點(diǎn)都是一個(gè)Kafka Topic,箭頭表示PaaStorm提供的轉(zhuǎn)換操作。這時(shí)候“PaaStorm”這個(gè)名字就變得更有意義了:象Storm一樣,PaaStorm通過(guò)轉(zhuǎn)換模塊(象Bolt一樣)提供對(duì)數(shù)據(jù)流的源(象Spout一樣)的實(shí)時(shí)轉(zhuǎn)換。

PaaStorm內(nèi)部機(jī)制

PaaStorm的核心抽象叫做Spolt(Spout和Bolt的結(jié)合物)。象名字表示的一樣,Spolt接口也定義了兩個(gè)重要的東西:一個(gè)輸入數(shù)據(jù)源,一種對(duì)那個(gè)源的消息數(shù)據(jù)進(jìn)行的某種處理。

下面例子定義了一個(gè)最簡(jiǎn)單的Spolt:

這個(gè)Spolt會(huì)處理“refresh_primary.business.abc123efg456”這個(gè)Topic中的每一條消息,增加一個(gè)字段,保存原始消息中的‘name’字段的大寫(xiě)的值,然后再把這條處理過(guò)的新版本的消息發(fā)送出去。

值得一提的是數(shù)據(jù)管道中的所有消息都是不可修改的。要得到一條修改過(guò)的消息,就要?jiǎng)?chuàng)建一個(gè)新的對(duì)象。而且,因?yàn)槲覀冊(cè)跒橄Ⅲw中增加一個(gè)新字段(就是那個(gè)增加的“大寫(xiě)字母的name”字段),新消息的模式已經(jīng)改變了。在生產(chǎn)環(huán)境中,消息的模式ID是從來(lái)都不能寫(xiě)死的。我們要依靠Schematizer服務(wù)來(lái)為一條修改過(guò)的消息注冊(cè)并提供合適的模式。

***提一句,數(shù)據(jù)管道的客戶端庫(kù)提供了好幾種非常相似的用名字空間、Topic名、源名和模式ID的組合來(lái)生成“spolt_source”的方法。這樣就可以很容易地讓某個(gè)Spolt去找到它需要的所有源并從中讀取數(shù)據(jù)。

與Kafka相關(guān)的處理是怎樣的?

也許你已經(jīng)發(fā)現(xiàn)上面的Spolt中沒(méi)有什么代碼是與Kafka Topic相交互的。這是因?yàn)樵赑aaStorm中,所有真正的Kafka接口相關(guān)處理都是由一個(gè)內(nèi)部實(shí)例(恰好也叫PaaStorm)完成的。PaaStorm實(shí)例會(huì)把一個(gè)特定的Spolt與對(duì)應(yīng)的源和目的關(guān)聯(lián)起來(lái),并把消息送給Spolt處理,再把Spolt輸出的消息發(fā)布到正確的Topic上去。

每個(gè)PaaStorm實(shí)例都用一個(gè)Spolt初始化。比如,下面的命令就用上文中定義的UppercaseNameSpolt開(kāi)啟了一次處理:

  1. PaaStorm(UppercaseNameSpolt()).start() 

這就意味著所有有意寫(xiě)一個(gè)新轉(zhuǎn)換器的人都可以簡(jiǎn)單地定義一個(gè)新的Spolt子類,壓根不用修改任何PaaStorm運(yùn)行體相關(guān)的東西。

從內(nèi)部來(lái)看,PaaStorm運(yùn)行體的主方法也是驚人的簡(jiǎn)單,偽碼如下:

這個(gè)運(yùn)行體先做了一些設(shè)置:初始化了生產(chǎn)者和消費(fèi)者,以及消息計(jì)數(shù)器。然后,它一直等待上游Topic中的新數(shù)據(jù)。如果有新數(shù)據(jù)到來(lái),就用Spolt處理它。Spolt處理之后會(huì)輸出一條或多條消息,生產(chǎn)者再把它發(fā)布到下游的Topic。

另外簡(jiǎn)單提一下,PaaStorm運(yùn)行體也提供了比如消費(fèi)者注冊(cè)、心跳機(jī)制(名叫“tick”)等。比如某個(gè)Spolt要經(jīng)常性地清空它的內(nèi)容,那就可以用tick來(lái)觸發(fā)。

關(guān)于狀態(tài)保存

PaaStorm保證可以可靠地從故障中恢復(fù)。萬(wàn)一發(fā)生了崩潰,我們就該從正確的偏移位置開(kāi)始重新消費(fèi)。但不幸的是,這個(gè)正確的偏移量一般情況下都并不是我們從上游的Topic中消費(fèi)的***那一條消息。原因是雖然我們已經(jīng)消費(fèi)了它,但事實(shí)上我們還沒(méi)來(lái)得及把轉(zhuǎn)換后的版本發(fā)布出去。

所以重新啟動(dòng)時(shí)正確的位置應(yīng)該是上游Topic與已經(jīng)成功發(fā)布到下游的***一條消息對(duì)應(yīng)的位置。在知道發(fā)到下游的***一條消息的情況之后,我們需要知道它對(duì)應(yīng)的上游的消息是哪一條,這樣就可以從那里恢復(fù)了。

為了方便實(shí)現(xiàn)這個(gè)功能,PaaStorm的Spolt在處理一條原始消息時(shí),會(huì)把與這條原始消息相對(duì)應(yīng)的在上游Topic中的Kafka偏移量也加到轉(zhuǎn)換后的包里。轉(zhuǎn)換后的消息隨后會(huì)在生產(chǎn)者的回調(diào)函數(shù)中把這個(gè)偏移量傳回來(lái)。這樣,我們就可以知道與下游Topic中***一條消息對(duì)應(yīng)的上游Topic的偏移量了。因?yàn)榛卣{(diào)函數(shù)只有在生產(chǎn)者成功地把轉(zhuǎn)換后的消息發(fā)布出去之后才會(huì)調(diào)用,也就意味著原始消息已經(jīng)被成功處理了,在這種情況下,消費(fèi)者就可以很放心的在那個(gè)回調(diào)函數(shù)中提交這個(gè)偏移量了。萬(wàn)一發(fā)生崩潰,我們可以直接從還沒(méi)有被完全處理的上游消息那里開(kāi)始繼續(xù)處理。

從上面的偽碼中可以看到,PaaStorm也會(huì)統(tǒng)計(jì)消費(fèi)掉的消息數(shù)和發(fā)布的消息數(shù)。這樣,感興趣的用戶可以檢查上游和下游Topic中的吞吐量。這讓我們很輕松地有了對(duì)任意轉(zhuǎn)換操作的監(jiān)控和性能檢查功能。在Yelp,我們是把我們的統(tǒng)計(jì)信息發(fā)給SignalFX的:

SignalFX圖可以顯示出在一個(gè)PaaStorm實(shí)例中生產(chǎn)者和消費(fèi)者的吞吐量。在這個(gè)例子中,輸入輸出消息量并不匹配。

在PaaStorm中對(duì)生產(chǎn)者和消費(fèi)者分開(kāi)做統(tǒng)計(jì)的好處之一是我們可以把這兩個(gè)吞吐量放在一起,看看瓶頸是在哪里。如果到不了這個(gè)粒度,是很難發(fā)現(xiàn)管道中的性能問(wèn)題的。

PaaStorm的未來(lái)

PaaStorm提供了兩個(gè)東西:一個(gè)接口,并實(shí)現(xiàn)了一套框架來(lái)支持這個(gè)接口。盡管我們并不希望PaaStorm的接口很快就被改動(dòng),但已經(jīng)有一些孵化項(xiàng)目在計(jì)劃解決“轉(zhuǎn)換并連接”的問(wèn)題了。在將來(lái),我們希望能把PaaStorm的內(nèi)部換成Kafka Stream或者Apache Beam,主要的障礙是對(duì)Python的支持程度如何,我們尤其看重的是對(duì)終端節(jié)點(diǎn)的支持。總之,在有開(kāi)源的Python流處理項(xiàng)目成熟之前,我們會(huì)一直把PaaStorm用下去。

 

責(zé)任編輯:武曉燕 來(lái)源: 網(wǎng)絡(luò)大數(shù)據(jù)
相關(guān)推薦

2016-09-29 13:24:33

YelpStormHeron

2016-12-08 14:02:25

存儲(chǔ)服務(wù)Schematizer

2013-03-20 09:45:57

Titan流處理器NVIDIA

2021-09-30 12:55:44

數(shù)據(jù)處理流處理引擎

2013-02-21 16:27:07

開(kāi)源開(kāi)源流計(jì)算

2025-01-14 08:59:16

2023-11-13 11:01:25

數(shù)據(jù)技術(shù)

2015-10-08 10:35:47

架構(gòu)師開(kāi)源實(shí)時(shí)流處理

2024-08-21 08:00:00

2010-10-28 14:53:46

播放實(shí)時(shí)rtsp流bada

2018-01-31 21:26:48

HadoopSparkStream大數(shù)據(jù)

2009-03-24 17:58:58

Vmwareesx虛擬化

2010-02-05 18:57:14

2009-03-22 21:35:19

多核處理器

2023-08-18 09:29:59

Java數(shù)據(jù)流

2017-06-29 14:10:35

NiFi數(shù)據(jù)數(shù)據(jù)源

2011-01-04 13:27:49

ARMFreescale

2023-09-26 09:29:08

Java數(shù)據(jù)

2019-11-25 10:02:29

CPU處理器架構(gòu)

2010-04-21 14:20:45

處理器緩存技術(shù)
點(diǎn)贊
收藏

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

精品人妻无码一区二区| 三级电影在线看| 色呦呦在线看| 久久天堂av综合合色蜜桃网| 国产精品羞羞答答| 久久久精品91| 国产在线日韩精品| 日韩三级免费观看| 久久9精品区-无套内射无码| 麻豆影视在线观看_| 成人avav影音| 国产欧美日韩综合精品| 日韩精品视频免费播放| 日韩欧美高清在线播放| 亚洲精品久久久久久久久久久 | 影音先锋一区| 国产亚洲精品久久久久久777| 日本成人在线免费观看| 国产麻豆久久| 精品免费在线视频| 日韩欧美亚洲区| 婷婷在线观看视频| 国产综合色产在线精品| 日本精品久久中文字幕佐佐木| 顶臀精品视频www| 成人激情免费视频| 亚洲黄在线观看| 亚洲成人福利视频| 95精品视频| 欧美视频中文字幕| 日本xxxxxxx免费视频| 成人福利影视| 夜色激情一区二区| 大桥未久一区二区三区| 成人在线视频成人| 国产亚洲精品久| 国产日韩欧美精品| 亚洲免费成人在线| 国产一区二区女| 成人黄色激情网| 中文字幕第2页| 国产日产高清欧美一区二区三区| 欧美精品久久久久久久| 欧美日韩黄色网| 91中文字幕精品永久在线| 一区二区三区精品99久久 | 黑人操亚洲人| 国产午夜一区二区| 国产18无套直看片| 欧美日韩国产高清电影| 亚洲视频网站在线观看| xxxxx在线观看| 国产乱码精品一区二区亚洲 | 麻豆传媒视频在线| 国产精品人妖ts系列视频| 日韩影院一区| 午夜视频在线| 亚洲少妇屁股交4| 男人天堂成人网| 午夜成年人在线免费视频| 亚洲视频中文字幕| 日韩a级黄色片| а√天堂8资源在线| 香蕉成人伊视频在线观看| 男女超爽视频免费播放| 亚洲人成午夜免电影费观看| 欧美视频在线观看免费| 国产日韩成人内射视频| 青青国产精品| 日韩一级免费一区| 理论片大全免费理伦片| 亚洲欧洲av| 伊人久久久久久久久久久久久 | 亚洲综合男人的天堂| www.欧美黄色| 成人av免费电影网站| 欧美图区在线视频| 天天做天天干天天操| 亚洲成av人片在线观看www| 精品国产一二三| 玖玖爱在线观看| 天天射成人网| 97久久精品人人澡人人爽缅北| 国产精品免费精品一区| 久久国产精品区| 国产精品对白一区二区三区| 欧洲亚洲精品视频| 国产精品进线69影院| 成人手机在线播放| 自拍视频在线看| 717成人午夜免费福利电影| 在线播放av网址| 欧美日韩色图| 久久久久久久久久国产| 福利网址在线观看| 国产激情91久久精品导航| 欧美极品视频一区二区三区| 黄色片免费在线观看| 午夜日韩在线观看| 国产又黄又猛的视频| 精品自拍偷拍| 久久精品视频在线观看| 精品欧美一区二区三区免费观看 | 国产精品99久久精品| 国产69精品久久久| 亚洲一区二区天堂| 99久精品国产| 天天想你在线观看完整版电影免费 | 久久亚洲精精品中文字幕早川悠里| 在线视频亚洲自拍| 2022成人影院| 精品乱人伦一区二区三区| 日本高清www| 国内一区二区三区| 国产精品香蕉av| 免费资源在线观看| 亚洲网友自拍偷拍| 亚洲色图欧美自拍| 日韩精品水蜜桃| 茄子视频成人在线| 可以免费看毛片的网站| 亚洲欧洲日产国码二区| 亚洲精品一二三四五区| 欧美色资源站| 久久久久国产一区二区三区| 国产模特av私拍大尺度| 国产精品沙发午睡系列990531| 国产视频九色蝌蚪| 精品国产一区二区三区成人影院| www日韩中文字幕在线看| 一级一片免费看| 91免费视频观看| 一女被多男玩喷潮视频| 精品国产乱子伦一区二区| 欧美日韩国产成人在线| 国产精选久久久| 国产精品国产三级国产三级人妇| 能看的毛片网站| 久久99视频| 91国产精品电影| 人人妻人人澡人人爽人人欧美一区 | 成人网页在线观看| 黄网站色视频免费观看| 亚洲一区网址| 欧美精品www| 少妇人妻偷人精品一区二区| 亚洲成精国产精品女| 国产在线不卡av| 一区二区三区四区五区精品视频| 国产日韩一区欧美| 蜜桃视频在线观看播放| 日韩精品久久久久久福利| 日韩黄色三级视频| 91网站黄www| 无码内射中文字幕岛国片| 精品久久中文| 91在线无精精品一区二区| 精品自拍一区| 精品91自产拍在线观看一区| 久久久精品人妻一区二区三区四 | 91精品在线麻豆| 18岁成人毛片| 不卡的av中国片| 男人的天堂99| 日韩在线看片| 91手机在线播放| sm久久捆绑调教精品一区| 国产婷婷色综合av蜜臀av| 99re这里只有精品在线| 国产精品二三区| 俄罗斯女人裸体性做爰| 亚洲国产高清视频| 欧美久久久久久久| 天堂久久一区| 久久免费观看视频| 四季av日韩精品一区| 欧美性猛交xxxxxxxx| 日韩欧美综合视频| av动漫一区二区| 欧美性猛交xxx乱久交| 亚洲激情中文| 久久久人人爽| 亚洲欧美综合久久久久久v动漫| 久久99精品视频一区97| 少妇一区二区三区四区| 欧美日韩在线播放三区| 久久国产在线视频| 91啪亚洲精品| 日本一二三区在线| 先锋影音久久久| 亚洲小说欧美另类激情| 欧美18免费视频| 91精品国产自产在线| 国产不卡人人| 久久久国产91| 麻豆国产在线播放| 日韩一卡二卡三卡| 天天综合久久综合| 亚洲成人高清在线| 黄色香蕉视频在线观看| 91首页免费视频| 精品人妻一区二区三| 久久亚洲风情| 欧洲精品一区二区三区久久| 久久激情电影| 欧美极品色图| 理论片一区二区在线| 成人免费直播live| 欧美艳星kaydenkross| 欧美激情中文网| 男女啪啪在线观看| 亚洲午夜久久久久久久| 三级在线观看网站| 91精品国产91久久综合桃花 | 日韩你懂的在线观看| 久久久久精彩视频| 懂色av一区二区三区| 欧美精品久久久久性色| 国产精品久久久久久久久免费丝袜 | 三年中国国语在线播放免费| 亚洲精品三级| 欧美无砖专区免费| 最新欧美人z0oozo0| 亚洲欧美日韩精品在线| 国产精品一国产精品| 国产一区二区三区无遮挡 | 欧美日韩在线精品| 午夜精品福利影院| 国产一区二区三区奇米久涩| 亚洲国产视频二区| 亚洲自拍欧美另类| 91精品一久久香蕉国产线看观看| 国产精品亚洲综合天堂夜夜| 亚洲第一影院| 国产精品久久久久久久一区探花 | 四虎永久免费在线观看| 91在线视频观看| 538国产视频| 26uuu亚洲综合色欧美 | 亚洲欧美日韩人成在线播放| 1024在线看片| 国产精品你懂的| 中文字幕在线观看二区| 中文字幕不卡在线观看| 亚洲一级黄色录像| 国产精品全国免费观看高清 | 秘密基地免费观看完整版中文| 国产白丝精品91爽爽久久| 999热精品视频| 国产电影精品久久禁18| 中文字幕一区二区三区人妻在线视频 | 欧美日韩国产123区| 一本色道久久综合无码人妻| 欧美日韩不卡一区二区| 国产精品久久久久久久免费| 91精品啪在线观看国产60岁| 国产情侣自拍小视频| 欧美大片拔萝卜| 天堂网在线资源| 亚洲人成网在线播放| fc2在线中文字幕| 精品激情国产视频| 欧美亚洲系列| 日韩av免费在线看| 久久精品xxxxx| 999日本视频| 美女呻吟一区| 色涩成人影视在线播放| 欧美一区网站| 日日碰狠狠添天天爽超碰97| 日韩av一级电影| caoporm在线视频| 懂色av一区二区三区免费看| 成人在线视频免费播放| 国产欧美一区二区三区在线老狼| 国产精品久久国产精麻豆96堂| 亚洲色图一区二区| 色婷婷在线观看视频| 欧美性猛交xxxx乱大交退制版| 91激情在线观看| 亚洲精品国产电影| 调教视频免费在线观看| 国内精品视频久久| 日韩av电影资源网| 99在线免费观看视频| 欧美美女在线| 狠狠精品干练久久久无码中文字幕| 日韩一级在线| 97人人爽人人| 久久久久久久久99精品| 福利所第一导航| 欧洲精品在线观看| 好男人在线视频www| 国产亚洲福利一区| 久草成色在线| 国产日韩欧美影视| 午夜欧洲一区| 日韩一级片免费视频| 免费成人小视频| 国产乱了高清露脸对白| 亚洲视频精选在线| 中国老头性行为xxxx| 亚洲国产精品电影在线观看| 尤物视频在线免费观看| 91精品国产91久久久久久| 亚洲人成777| 日韩av电影免费在线观看| 国产精品jizz在线观看美国| 奇米影音第四色| 久久嫩草精品久久久精品一| 毛片a片免费观看| 欧美日韩一卡二卡三卡| 日本在线丨区| 久久久免费电影| 国产精品一区二区美女视频免费看| 欧美午夜欧美| 亚洲激情社区| 精品国产免费久久久久久婷婷| 国产精品久久久久aaaa樱花 | 亚洲成色www8888| av免费看在线| 成人美女av在线直播| 欧美一级淫片| 少妇性l交大片| 26uuu亚洲综合色欧美 | 欧美精品粉嫩高潮一区二区| 国产黄色片在线观看| 欧美性视频网站| 久久成人福利| 午夜免费福利小电影| 高清久久久久久| 久久精品性爱视频| 精品福利av导航| 2020国产在线| 国产精品视频福利| 亚洲国产裸拍裸体视频在线观看乱了中文 | 午夜精品久久久久久毛片| 亚洲精品高清视频| 免费观看在线综合色| 99久久99久久精品免费| 欧美在线高清视频| 91在线视频| 成人黄色生活片| 欧美在线免费一级片| 欧美性猛交乱大交| 亚洲一区中文在线| 人妻中文字幕一区| 日本欧美一级片| av伊人久久| 小明看看成人免费视频| 亚洲欧洲成人自拍| 99久久婷婷国产一区二区三区| 久久网福利资源网站| 欧美区一区二区| 精品人妻少妇一区二区| www.爱久久.com| 亚洲精品久久久久久久蜜桃| 中文国产成人精品| 国产精品亚洲欧美日韩一区在线| 国产日韩欧美大片| 成人午夜电影网站| 亚洲va在线观看| 日韩有码在线观看| 亚洲不卡视频| 三级4级全黄60分钟| 欧美国产亚洲另类动漫| 97精品人妻一区二区三区香蕉| 久久电影一区二区| 国内精品偷拍| 91热这里只有精品| 亚洲三级理论片| 少妇人妻精品一区二区三区| 日本最新高清不卡中文字幕| 欧美xxxxx视频| av电影在线播放| 欧美性三三影院| 欧美wwww| 亚洲 国产 欧美一区| 国产精品1024久久| 亚洲免费黄色网址| 日韩中文娱乐网| 嫩草国产精品入口| 亚洲综合色在线观看| 一区二区国产盗摄色噜噜| 十九岁完整版在线观看好看云免费| 国产精品视频成人| 在线不卡亚洲| 永久av免费网站| 亚洲精品电影网站| 国产精品亚洲综合在线观看| 国产白丝袜美女久久久久| 国产精品久久免费看| 欧美一级免费片| 91日韩在线播放| 久久五月激情| 久久香蕉精品视频| 日韩一区二区欧美| 亚洲最好看的视频| www.四虎精品| 欧美一区二区三区精品|