精品欧美一区二区三区在线观看 _久久久久国色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)

国产成人精品免费在线| 亚洲视频精选| 中文字幕一区二区三| 国产九九精品视频| 久久精品99国产精| 老牛国内精品亚洲成av人片| 精品久久久久久久久中文字幕 | 日本不卡不卡| 狠狠色丁香婷综合久久| 欧美高清自拍一区| 少妇户外露出[11p]| 99久久精品一区二区成人| 一区二区三区在线视频免费| 久久久福利视频| 91丨九色丨蝌蚪丨对白| 亚洲激情精品| 精品国产一区二区三区久久狼黑人| 亚洲天堂一区二区在线观看| 在线观看福利电影| 亚洲欧美乱综合| 欧美高清视频一区二区三区在线观看| 一级黄色大片免费| 亚洲中字在线| 欧美成人免费视频| 一区二区三区在线观看免费视频| 日韩欧美久久| 欧美视频第二页| 91国在线高清视频| 黄色电影免费在线看| 国产盗摄一区二区三区| 国产成人精品999| 久久精品美女视频| 91精品啪在线观看国产81旧版| 亚洲成人aaa| 青娱乐精品在线| 男人亚洲天堂| 色94色欧美sute亚洲线路一久| 欧美中文字幕在线观看视频| 免费网站免费进入在线| 欧美国产精品v| 日本一区二区三区精品视频| 四季av日韩精品一区| 韩国女主播成人在线| 国产热re99久久6国产精品| jizz国产在线观看| 久久久成人网| 欧美最猛性xxxxx(亚洲精品)| 国产一级片免费看| 红桃视频欧美| 性视频1819p久久| 日本天堂在线视频| 99亚洲精品| 97在线视频免费播放| 国产在线成人精品午夜| 亚洲小说区图片区| 欧美大片免费看| 国产一级片视频| 99国产成+人+综合+亚洲欧美| 性色av一区二区三区| 亚洲欧美综合另类| 视频一区二区中文字幕| 国产精品久久久久aaaa九色| 中文字幕在线观看高清| 男女性色大片免费观看一区二区| 国产精品一区二区三区免费视频| 最近中文字幕av| 韩国欧美国产1区| 懂色一区二区三区av片| 欧美特黄一级视频| 久久久亚洲精品一区二区三区| 日本一区二区在线视频| www在线播放| 成人欧美一区二区三区1314| 亚洲av综合色区| 精品极品在线| 欧美在线观看禁18| 手机看片国产精品| 任我爽精品视频在线播放| 亚洲日本aⅴ片在线观看香蕉| 美女100%露胸无遮挡| 自拍偷拍欧美专区| 欧美一区二三区| 亚洲中文一区二区三区| 国产成人av电影在线观看| 久久riav| 国产在线观看av| 五月天亚洲精品| 亚洲欧美自拍视频| 波多野结衣在线观看一区二区三区| 在线精品国产成人综合| 日本一级二级视频| 亚洲永久免费精品| 成人黄色午夜影院| 午夜福利视频一区二区| 国产精品污污网站在线观看| 国产午夜精品视频一区二区三区| 黄视频免费在线看| 欧美精品丝袜中出| av无码av天天av天天爽| 亚洲成av人片一区二区密柚| 国内自拍欧美激情| 97精品人妻一区二区三区香蕉| 99久久精品一区| 一本色道久久综合亚洲精品婷婷| a天堂资源在线| 欧美日韩精品欧美日韩精品| 欧产日产国产精品98| 久久精品国产www456c0m| 午夜精品一区二区三区在线播放| 在线播放成人av| av在线不卡免费看| 日本三日本三级少妇三级66| 另类专区亚洲| 亚洲精品videossex少妇| www日韩在线| 久久一区二区三区超碰国产精品| 97超级碰碰| 欧洲不卡av| 91黄色在线观看| 少妇一级淫免费观看| 99久久夜色精品国产亚洲96| 欧美在线观看网站| 丰满大乳国产精品| 亚洲视频资源在线| 91女神在线观看| 欧美精美视频| 26uuu另类亚洲欧美日本一| 国产乱人乱偷精品视频| 国产精品三级视频| wwwwww.色| 蜜桃成人av| 欧美在线视频一区二区| 丰满肥臀噗嗤啊x99av| 亚洲人成网站精品片在线观看| 成人免费视频久久| 欧美人妖在线| 啪一啪鲁一鲁2019在线视频| 亚洲经典一区二区| 一区二区三区在线免费播放| 亚洲涩涩在线观看| 婷婷精品进入| 91九色精品视频| 麻豆视频网站在线观看| 欧美揉bbbbb揉bbbbb| a天堂中文字幕| 久久国产66| 日本一区免费在线观看| 中老年在线免费视频| 日韩av最新在线观看| 一级免费在线观看| 91蜜桃免费观看视频| 欧美三级在线观看视频| 日本精品影院| 青青久久av北条麻妃海外网| 午夜激情小视频| 日韩欧美在线视频| 中文字幕第24页| 久久电影网站中文字幕| 日韩视频在线免费播放| 国模大尺度视频一区二区| 另类美女黄大片| www久久久久久| 亚洲成人在线网站| 国产精品成人一区二区三区电影毛片| 午夜宅男久久久| 亚洲欧美日韩精品综合在线观看| 欧美视频第一| 欧美日韩成人精品| 亚州精品国产精品乱码不99按摩| 91福利在线播放| 国产黄色片在线| 国产成人在线视频免费播放| 精品日韩在线播放| 好吊妞视频这里有精品| 奇米成人av国产一区二区三区| 成人av毛片| 日韩一区二区免费在线电影| 国产无码精品久久久| 91麻豆国产香蕉久久精品| 美女网站视频黄色| 欧美成人日韩| 欧美理论一区二区| 亚洲a成人v| 午夜精品久久久久久久久久久久 | 成人国产精品免费观看视频| 国产精品97在线| 亚洲二区三区不卡| 国产日韩欧美一区二区三区四区| 校园春色亚洲| 久久精品国亚洲| 天堂中文在线8| 欧美精品乱码久久久久久按摩| 国产精品16p| 日本一区二区综合亚洲| 最好看的中文字幕| 日韩精品电影在线观看| 欧美 亚洲 视频| 一区二区三区视频免费观看| 成人精品在线视频| 久热在线观看视频| 久热精品视频在线观看一区| 神马久久精品| 欧美一级精品大片| 国产成人自拍偷拍| 一区二区三区高清| 蜜桃传媒一区二区亚洲| 国产美女在线精品| 日日摸天天爽天天爽视频| 中文精品久久| 日韩欧美视频第二区| 久久97久久97精品免视看秋霞| 国产美女久久久| 第84页国产精品| 久久久久国产精品免费网站| 免费在线毛片网站| 国产午夜精品全部视频在线播放| 人妻丰满熟妇av无码区hd| 欧美三级午夜理伦三级中视频| 中文字幕在线观看免费视频| 一色屋精品亚洲香蕉网站| 欧洲美一区二区三区亚洲| 国产a视频精品免费观看| 爱豆国产剧免费观看大全剧苏畅| 久久av一区| 欧美色图色综合| 亚洲精品激情| 日本中文字幕在线视频观看| 一区二区三区在线| 日日噜噜夜夜狠狠久久丁香五月| 成人毛片在线| 性欧美大战久久久久久久免费观看| 神马久久影院| 久久综合九色综合久99| 激情小说一区| 精品国产一区二区三区四区精华| 成人在线超碰| 国产综合动作在线观看| 97精品久久| 国产在线精品一区二区三区| 99精品中文字幕在线不卡| 成人黄色片视频网站| 综合激情五月婷婷| 国产精品久久久久久免费观看| 88久久精品| 国产精品二区在线观看| 哺乳一区二区三区中文视频| 国产精品theporn88| 99re8这里有精品热视频8在线| 亚洲自拍偷拍在线| 日韩中文字幕视频网| 国产成人免费观看| 国产精品久久久久久久久久白浆| 国产精品日韩高清| 日本欧美韩国国产| 色播亚洲视频在线观看| 欧美顶级大胆免费视频| 中文视频一区视频二区视频三区| 91精品秘密在线观看| 国产精品igao激情视频| 伊人久久婷婷| 欧美三级一级片| 久久久久久黄| 天天干天天av| 国产a久久麻豆| 日本高清www| 国产精品久久久久久久裸模| 亚洲欧美精品aaaaaa片| 亚洲国产日韩一区二区| 久久久久女人精品毛片九一| 在线中文字幕一区二区| 国产精品久久久午夜夜伦鲁鲁| 日韩一区二区精品| 婷婷开心激情网| 中文字幕不卡在线视频极品| 含羞草www国产在线视频| 国内精久久久久久久久久人| 欧美专区福利免费| 成人日韩在线电影| 国产精品极品| 亚洲欧美日韩另类精品一区二区三区 | 亚洲精品成人免费| 999在线视频| 欧美丰满少妇xxxxx做受| 国产精品一二三产区| 国产国产精品人在线视| 麻豆一区在线| 品久久久久久久久久96高清| 91精品国产成人观看| 激情伊人五月天| 国精产品一区一区三区mba桃花 | 亚洲精品久久久蜜桃| 国产成人无码精品亚洲| 欧美日韩国产综合一区二区三区| 免费看黄色一级视频| 在线中文字幕日韩| a级片免费在线观看| 国产自产女人91一区在线观看| 久久资源综合| 国产911在线观看| 日韩国产在线观看一区| 国产69视频在线观看| 国产精品久久久久影院老司| 可以免费看的av毛片| 日韩亚洲欧美中文三级| 成人亚洲性情网站www在线观看| 欧美精品18videos性欧美| 亚洲视频自拍| 日韩不卡av| 国产精品久久久久9999高清| 天天操精品视频| 国产精品乱码人人做人人爱| 久久国产黄色片| 欧美tk—视频vk| www在线视频| 国产综合在线观看视频| 国产精品亚洲二区| 人妻有码中文字幕| 成人福利视频网站| 男的操女的网站| 欧美精品亚洲二区| 午夜毛片在线| 国产精品99久久久久久人 | 男人亚洲天堂| 亚洲精品中文字幕乱码三区不卡| 久久av一区二区三区| 亚洲色图14p| 狠狠综合久久av一区二区小说| 久久久老熟女一区二区三区91| 在线欧美亚洲| 国内av免费观看| 国产精品麻豆久久久| 日韩人妻精品中文字幕| 亚洲精品美女久久久| 欧美亚洲系列| 99在线视频免费观看| 中文字幕午夜精品一区二区三区| 奇米视频7777| 中文字幕亚洲成人| 国产又粗又猛又黄又爽无遮挡| 在线电影av不卡网址| 澳门av一区二区三区| 欧美亚洲一级二级| 日日夜夜精品视频天天综合网| 欧美成人午夜精品免费| 色综合久久久网| 精品亚洲综合| 国产精品免费网站| 四虎成人精品永久免费av九九| 天天干天天草天天| 最新国产精品久久精品| 国产av无码专区亚洲av| 欧美日韩国产成人| 国产区精品视频在线观看豆花| 日韩视频在线视频| 91玉足脚交白嫩脚丫在线播放| 91丝袜一区二区三区| 亚洲视频在线播放| 日韩深夜福利网站| www国产免费| 不卡的av在线播放| 免费观看日批视频| 日韩在线播放av| a级日韩大片| 1024av视频| 国产精品色哟哟| 午夜精品在线播放| 欧美一区三区三区高中清蜜桃| 国模吧精品视频| 久久久久久久久久一区| 亚洲一二三专区| 美国一级片在线免费观看视频| 国产精品视频中文字幕91| 午夜视频一区| 亚洲第一黄色网址| 欧美日韩精品一区二区三区 | 自拍亚洲一区| 日韩不卡一二三| 亚洲一区二区在线观看视频| 日韩欧美在线观看一区二区| 国产精品狼人色视频一区| 欧美福利在线| 蜜桃av免费看| 91精品在线免费| 色吧亚洲日本| 在线观看免费黄色片| 91在线精品一区二区三区| 一本色道久久综合亚洲| 97国产suv精品一区二区62| 日韩精品久久久久久久电影99爱| 国产大学生av| 欧美亚洲动漫制服丝袜| 日本动漫理论片在线观看网站 | 92裸体在线视频网站| 免费欧美在线| 麻豆亚洲av熟女国产一区二| 亚洲网站视频福利| 18国产精品| 免费av不卡在线| 欧美午夜精品久久久久久人妖 | 国产成人久久久|