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

Storm數(shù)據(jù)流模型的分析及討論

開發(fā) 架構(gòu)
本文首先介紹了Storm的基本概念和數(shù)據(jù)流模型,然后結(jié)合一個典型應用場景來說明Storm支持Topology之間數(shù)據(jù)流訂閱的必要性,最后對比了Storm與另一個流處理系統(tǒng)在數(shù)據(jù)流模型上的區(qū)別之處。

Storm基本概念

Storm是一個開源的實時計算系統(tǒng),它提供了一系列的基本元素用于進行計算:Topology、Stream、Spout、Bolt等等。

在Storm中,一個實時應用的計算任務被打包作為Topology發(fā)布,這同Hadoop的MapReduce任務相似。但是有一點不同的是:在Hadoop中,MapReduce任務最終會執(zhí)行完成后結(jié)束;而在Storm中,Topology任務一旦提交后永遠不會結(jié)束,除非你顯示去停止任務。

計算任務Topology是由不同的Spouts和Bolts,通過數(shù)據(jù)流(Stream)連接起來的圖。下面是一個Topology的結(jié)構(gòu)示意圖:

其中包含有:

Spout:Storm中的消息源,用于為Topology生產(chǎn)消息(數(shù)據(jù)),一般是從外部數(shù)據(jù)源(如Message Queue、RDBMS、NoSQL、Realtime Log)不間斷地讀取數(shù)據(jù)并發(fā)送給Topology消息(tuple元組)。

Bolt:Storm中的消息處理者,用于為Topology進行消息的處理,Bolt可以執(zhí)行過濾, 聚合, 查詢數(shù)據(jù)庫等操作,而且可以一級一級的進行處理。

最終,Topology會被提交到storm集群中運行;也可以通過命令停止Topology的運行,將Topology占用的計算資源歸還給Storm集群。

Storm數(shù)據(jù)流模型

數(shù)據(jù)流(Stream)是Storm中對數(shù)據(jù)進行的抽象,它是時間上無界的tuple元組序列。在Topology中,Spout是Stream的源頭,負責為Topology從特定數(shù)據(jù)源發(fā)射Stream;Bolt可以接收任意多個Stream作為輸入,然后進行數(shù)據(jù)的加工處理過程,如果需要,Bolt還可以發(fā)射出新的Stream給下級Bolt進行處理。

下面是一個Topology內(nèi)部Spout和Bolt之間的數(shù)據(jù)流關(guān)系:

Topology中每一個計算組件(Spout和Bolt)都有一個并行執(zhí)行度,在創(chuàng)建Topology時可以進行指定,Storm會在集群內(nèi)分配對應并行度個數(shù)的線程來同時執(zhí)行這一組件。

那么,有一個問題:既然對于一個Spout或Bolt,都會有多個task線程來運行,那么如何在兩個組件(Spout和Bolt)之間發(fā)送tuple元組呢?

Storm提供了若干種數(shù)據(jù)流分發(fā)(Stream Grouping)策略用來解決這一問題。在Topology定義時,需要為每個Bolt指定接收什么樣的Stream作為其輸入(注:Spout并不需要接收Stream,只會發(fā)射Stream)。

目前Storm中提供了以下7種Stream Grouping策略:Shuffle Grouping、Fields Grouping、All Grouping、Global Grouping、Non Grouping、Direct Grouping、Local or shuffle grouping,具體策略可以參考這里。

一種Storm不能支持的場景

以上介紹了一些Storm中的基本概念,可以看出,Storm中Stream的概念是Topology內(nèi)唯一的,只能在Topology內(nèi)按照“發(fā)布-訂閱”方式在不同的計算組件(Spout和Bolt)之間進行數(shù)據(jù)的流動,而Stream在Topology之間是無法流動的。

這一點限制了Storm在一些場景下的應用,下面通過一個簡單的實例來說明。

假設現(xiàn)在有一個Topology1的結(jié)構(gòu)如下:通過Spout產(chǎn)生數(shù)據(jù)流后,依次需要經(jīng)過Filter Bolt,Join Bolt,Business1 Bolt。其中,F(xiàn)ilter Bolt用于對數(shù)據(jù)進行過濾,Join Bolt用于數(shù)據(jù)流的聚合,Business1 Bolt用于進行一個實際業(yè)務的計算邏輯。

目前這個Topology1已經(jīng)被提交到Storm集群運行,而現(xiàn)在我們又有了新的需求,需要計算一個新的業(yè)務邏輯,而這個Topology的特點是和Topology1公用同樣的數(shù)據(jù)源,而且前期的預處理過程完全一樣(依次經(jīng)歷Filter Bolt和Join Bolt),那么這時候Storm怎么來滿足這一需求?據(jù)個人了解,有以下幾種“曲折”的實現(xiàn)方式:

1)  第一種方式:首先kill掉已經(jīng)在集群中運行的Topology1計算任務,然后實現(xiàn)Business2 Bolt的計算邏輯,并重新打包形成一個新的Topology計算任務jar包后,提交到Storm集群中重新運行,這時候Storm內(nèi)的整體Topology結(jié)構(gòu)如下:

這種方式的缺點在于:由于要重啟Topology,所以如果Spout或Bolt有狀態(tài)則會丟失掉;同時由于Topology結(jié)構(gòu)發(fā)生了變化,因此重新運行Topology前需要對程序的穩(wěn)定性、正確性進行驗證;另外Topology結(jié)構(gòu)的變化也會帶來額外的運維開銷。

2)  第二種方式:完全開發(fā)部署一套新的Topology,其中前面的公共部分的Spout和Bolt可以直接復用,只需要重新開發(fā)新的計算邏輯Business2 Bolt來替換原有的Business1 Bolt即可。然后重新提交新的Topology運行。這時候Storm內(nèi)的整體Topology結(jié)構(gòu)如下:

這種方式的缺點在于:由于兩個Topology都會從External Data Source讀取同一份數(shù)據(jù),無疑增加了External Data Source的負載壓力;而且會導致同樣的數(shù)據(jù)在Storm集群內(nèi)被傳輸相同的兩份,被同樣的計算單元Bolt進行處理,浪費了Storm的計算資源和網(wǎng)絡傳輸帶寬。假設現(xiàn)在不止有兩個這樣的Topology計算任務,而是有N個,那么對Storm的計算Slot的浪費很嚴重。

注意:上述兩種方式還有一個公共的缺點——系統(tǒng)可擴展性不好,這意味著不管哪種方式,只要以后有這種新增業(yè)務邏輯的需求,都需要進行復雜的人工操作或線性的資源浪費現(xiàn)象。

3) 第三種方式:OK,看了以上兩種方式后,也許你會提出下面的解決方案:通過Kafka這樣的消息中間件,實現(xiàn)不同Topology的Spout共享數(shù)據(jù)源,而且這樣可以做到消息可靠傳輸、消息rewind回傳等,好處是對于Storm來說,已經(jīng)有了storm-kafka插件的支持。這時候Storm內(nèi)的整體Topology結(jié)構(gòu)如下:

這種實現(xiàn)方式可以通過引入一層消息中間件減少對External Data Source的重復訪問的壓力,而且可以通過消息中間件層,屏蔽掉External Data Source的細節(jié),如果需要擴展新的業(yè)務邏輯,只需要重新部署運行新的Topology,應該說是現(xiàn)有Storm版本下很好的實現(xiàn)方式了。不過消息中間件的引入,無疑將給系統(tǒng)帶來了一定的復雜性,這對于Storm上的應用開發(fā)來說提高了門檻。

值得注意的是,方案三中仍遺留有一點問題沒有解決:對于Storm集群來說,這種方式還是沒有能夠從根本上避免數(shù)據(jù)在Storm不同Topology內(nèi)的重復發(fā)送與處理。這是由于Storm的數(shù)據(jù)流模型上的限制所導致的,如果Storm實現(xiàn)了不同Topology之間Stream的共享,那么這一問題也就迎刃而解了。

一個流處理系統(tǒng)的數(shù)據(jù)流模型

個人工作中有幸參與過一個流處理框架的開發(fā)與應用。下面我們來簡單看看其中所采用的數(shù)據(jù)流模型。

首先,先來看一下該流處理系統(tǒng)內(nèi)的幾個基本概念:

1)數(shù)據(jù)流(data stream):時間分布和數(shù)量上無限的一系列數(shù)據(jù)記錄的集合體;

2)數(shù)據(jù)記錄(data record):數(shù)據(jù)流的最小組成單元,每條數(shù)據(jù)記錄包括 3 類數(shù)據(jù):所屬數(shù)據(jù)流名稱(stream name)、用于路由的數(shù)據(jù)(keys)和具體數(shù)據(jù)處理邏輯所需的數(shù)據(jù)(value);

3)數(shù)據(jù)處理任務定義(task definition):定義一個數(shù)據(jù)處理任務的基本屬性,無法直接被執(zhí)行,必須特化為具體的任務實例。其基本屬性包括:

(可選)輸入流(input stream):描述該任務依賴哪些數(shù)據(jù)流作為輸入,是一個數(shù)據(jù)流名稱列表;數(shù)據(jù)流產(chǎn)生源不會依賴其他數(shù)據(jù)流,可忽略該配置;

數(shù)據(jù)處理邏輯(process logic):描述該任務具體的處理邏輯,例如由獨立進程進行的外部處理邏輯;

(可選)輸出流(output stream):描述該任務產(chǎn)生哪個數(shù)據(jù)流,是一個數(shù)據(jù)流名稱;數(shù)據(jù)流處理鏈末級任務不會產(chǎn)生新的數(shù)據(jù)流,可忽略該配置;

4)數(shù)據(jù)處理任務實例(task instance):對一個數(shù)據(jù)處理任務定義進行具體約束后,可推送到某個處理結(jié)點上運行的邏輯實體。附加下列屬性:

數(shù)據(jù)處理任務定義:指向該任務實例對應的數(shù)據(jù)處理任務定義實體;

輸入流過濾條件(input filting condition):一個 boolean 表達式列表,描述每個輸入流中符合什么條件的數(shù)據(jù)記錄可以作為有效數(shù)據(jù)交給處理邏輯;若某個輸入流中所有數(shù)據(jù)記錄都是有效數(shù)據(jù),則可直接用 true 表示;

(可選)強制輸出周期(output interval):描述以什么頻率強制該任務實例產(chǎn)生輸出流記錄,可以用輸入流記錄個數(shù)或間隔時間作為周期;忽略該配置時,輸出流記錄產(chǎn)生周期完全由處理邏輯自身決定,不受框架約束;

5)數(shù)據(jù)處理結(jié)點(node):可容納多個數(shù)據(jù)處理任務實例運行的實體機器,每個數(shù)據(jù)處理結(jié)點的IPv4地址必須保證唯一。

該流處理系統(tǒng),采用分布式策略,由多個數(shù)據(jù)處理結(jié)點進行數(shù)據(jù)的處理過程;將流式數(shù)據(jù)的處理過程劃分為不同的階段,每個階段伴隨數(shù)據(jù)流的流入、任務的處理及數(shù)據(jù)流的流出;各個階段會有若干個處理結(jié)點參與完成,其中,每個處理結(jié)點上會有若干個數(shù)據(jù)處理任務實例運行,每個數(shù)據(jù)處理任務實例則是對一個數(shù)據(jù)處理任務定義進行具體約束后,可推送到某個處理結(jié)點上運行的邏輯實體。在不同的處理結(jié)點之間,數(shù)據(jù)流根據(jù)配置信息進行傳輸;在處理結(jié)點內(nèi)部,結(jié)點根據(jù)配置信息對流經(jīng)該結(jié)點的數(shù)據(jù)進行處理。

下圖為系統(tǒng)對于流式數(shù)據(jù)的基本處理流程:

1)定義數(shù)據(jù)流:將流式數(shù)據(jù)的處理過程劃分成不同的階段,定義出不同的數(shù)據(jù)流名稱;

2)定義數(shù)據(jù)處理任務:為數(shù)據(jù)流的處理過程定義相應的數(shù)據(jù)處理任務,其中,各個處理任務定義了外部處理邏輯,且其輸入/輸出數(shù)據(jù)流須從1)中預定義的數(shù)據(jù)流列表中選取;

3)定義數(shù)據(jù)處理結(jié)點:定義各個數(shù)據(jù)處理結(jié)點的名稱及其IPv4地址信息;

4)定義數(shù)據(jù)處理任務實例:為3)中定義好的每個處理結(jié)點,分別定義運行在其上的數(shù)據(jù)處理任務實例,其中,每個任務實例所對應的數(shù)據(jù)處理任務實體須從2)中預定義的處理任務列表中選??;

5)加載數(shù)據(jù)流的相關(guān)配置信息及訂閱信息(具體格式見“附錄:配置信息格式”),然后開始從數(shù)據(jù)流產(chǎn)生源讀取數(shù)據(jù);

6)運行數(shù)據(jù)流源結(jié)點上的任務實例:數(shù)據(jù)流處理鏈源結(jié)點上的處理任務實例直接對數(shù)據(jù)流產(chǎn)生源的數(shù)據(jù)進行處理,然后產(chǎn)生新的輸出數(shù)據(jù)流;

7)運行下一級結(jié)點上的任務實例:中間的處理結(jié)點上的處理任務實例依賴于上一級處理結(jié)點的輸出數(shù)據(jù)流作為輸入數(shù)據(jù)流,從中讀取數(shù)據(jù),進行處理,產(chǎn)生輸出數(shù)據(jù)流,并傳遞到下一級處理結(jié)點;

8)判斷是否到達數(shù)據(jù)流末級結(jié)點:

  • 如果不是,則繼續(xù)返回步驟7),按照數(shù)據(jù)流的流動關(guān)系,繼續(xù)運行下一級結(jié)點上的任務實例;

  • 否則為數(shù)據(jù)流末級結(jié)點,則進行步驟9)。

9)輸出結(jié)果:數(shù)據(jù)流處理鏈末級結(jié)點上的處理任務不會產(chǎn)生新的數(shù)據(jù)流,完成最終的數(shù)據(jù)處理任務后將結(jié)果進行輸出。

以上是數(shù)據(jù)流在不同處理結(jié)點之間的處理流程。每個處理結(jié)點作為流處理的一個環(huán)節(jié),其結(jié)點內(nèi)部的處理流程如下圖所示:

1)每個處理結(jié)點啟動流處理過程后,開啟網(wǎng)絡服務,監(jiān)聽從上一級處理結(jié)點發(fā)出的TCP連接請求,接收從上一級結(jié)點發(fā)來的數(shù)據(jù);

2)處理結(jié)點不間斷地接收從上一級處理結(jié)點發(fā)來的數(shù)據(jù),對于每條數(shù)據(jù)記錄,根據(jù)數(shù)據(jù)流名進行篩選,將其分發(fā)到該數(shù)據(jù)流所對應的處理進程中;

3)將從每個特定數(shù)據(jù)流發(fā)來的數(shù)據(jù),廣播到所有以該數(shù)據(jù)流作為輸入數(shù)據(jù)流的數(shù)據(jù)處理任務實例中;

4)數(shù)據(jù)處理任務實例從其輸入數(shù)據(jù)流中接收數(shù)據(jù),按照過濾條件進行篩選,然后將符合過濾條件的數(shù)據(jù)記錄發(fā)送給外部應用程序進行處理;

5)外部應用程序啟動外部處理進程,對數(shù)據(jù)進行實際處理過程,并將每條數(shù)據(jù)記錄的處理結(jié)果返回給相應的數(shù)據(jù)處理任務實例;

6)數(shù)據(jù)處理任務實例從外部應用程序收集處理后的結(jié)果數(shù)據(jù),并依次將其轉(zhuǎn)發(fā)到對應的輸出數(shù)據(jù)流中;

7)輸出數(shù)據(jù)流進程接收發(fā)向該數(shù)據(jù)流的數(shù)據(jù),然后按照數(shù)據(jù)流的訂閱關(guān)系,將數(shù)據(jù)發(fā)送到所有訂閱了該數(shù)據(jù)流的下一級處理結(jié)點;

8)根據(jù)下一級處理結(jié)點的IP地址和端口號,通過TCP請求與下一級處理結(jié)點建立網(wǎng)絡連接,然后將數(shù)據(jù)按序傳輸?shù)较乱患壧幚斫Y(jié)點。

二者在數(shù)據(jù)流模型上的不同之處

至于兩個系統(tǒng)的實現(xiàn)細節(jié),我們先不去做具體比較,下面僅列出二者在數(shù)據(jù)流模型上的一些不同之處(這里并不是為了全面對比二者的不同之處,只是列出其中的關(guān)鍵部分):

1)  在Storm中,數(shù)據(jù)流Stream是在Topology內(nèi)進行定義,并在Topology內(nèi)進行傳輸?shù)?;而在上面提到的流處理系統(tǒng)中,數(shù)據(jù)流Stream是在整個系統(tǒng)內(nèi)全局唯一的,可以在整個集群內(nèi)被訂閱。

2)  在Storm中,數(shù)據(jù)流Stream的發(fā)布和訂閱都是靜態(tài)的,所謂靜態(tài)是指數(shù)據(jù)流的發(fā)布與訂閱關(guān)系在向Storm集群提交Topology計算任務時,被一次性生成的,這一關(guān)系在Topology的運行過程中是不能被改變的;而在上面提到的流處理系統(tǒng)中,數(shù)據(jù)流Stream的發(fā)布和訂閱都是動態(tài)的,即數(shù)據(jù)處理任務task可以動態(tài)的發(fā)布Stream,也可以動態(tài)的訂閱系統(tǒng)內(nèi)已經(jīng)生成的任意Stream,數(shù)據(jù)流的訂閱關(guān)于通過分布式應用程序協(xié)調(diào)服務ZooKeeper集群的動態(tài)節(jié)點來維護管理。

好了,有了以上的對比,我們不難發(fā)現(xiàn),對于本文所舉的應用場景實例,Storm的數(shù)據(jù)流模式尚不能很方便的支持,而在這里提到的這個流處理系統(tǒng)的全局數(shù)據(jù)流模型下,這一應用場景的需求可以很方便的滿足。

總結(jié)的話

個人覺得,Storm有必要實現(xiàn)不同Topology之間Stream的共享,這個至少可以在不損失Storm現(xiàn)有功能的前提下,使得Storm在處理實際生產(chǎn)環(huán)境下的一些應用場景時更加從容應對。

至于如何在現(xiàn)有Storm的基礎上實現(xiàn)這一需求,可能的方式很多。一種簡單的方式是通過Zookeeper來集中存儲、動態(tài)感知Topology之間Stream的“發(fā)布-訂閱”關(guān)系,同時在Storm的消息分發(fā)過程中對這種情況加以處理。

以上觀點,如果不對之處,歡迎大家指出。

原文鏈接:http://www.cnblogs.com/panfeng412/archive/2012/07/29/storm-stream-model-analysis-and-discussion.html

【編輯推薦】

  1. Storm源碼淺析之topology的提交
  2. PHP集成開發(fā)工具PHPStorm 3.0發(fā)布
  3. 漫談Java開源5年:自由但帶著枷鎖
  4. JavaFX2.0網(wǎng)格布局窗格GridPane
  5. BicaVM:基于JavaScript的JVM-為什么呢?
責任編輯:彭凡 來源: 博客園
相關(guān)推薦

2011-12-14 15:57:13

javanio

2023-02-16 08:00:00

數(shù)據(jù)流客戶端開發(fā)數(shù)據(jù)集

2010-04-30 09:53:34

Unix系統(tǒng)

2024-04-18 09:02:11

數(shù)據(jù)流Mixtral混合模型

2016-11-14 19:01:36

數(shù)據(jù)流聊天系統(tǒng)web

2009-08-19 10:41:12

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

2022-03-18 08:57:17

前端數(shù)據(jù)流選型

2021-10-27 10:43:36

數(shù)據(jù)流中位數(shù)偶數(shù)

2017-11-16 19:26:34

海量數(shù)據(jù)算法計算機

2011-04-14 14:43:38

SSISTransformat

2019-12-19 14:38:08

Flink SQL數(shù)據(jù)流Join

2011-04-19 09:18:02

SSIS數(shù)據(jù)轉(zhuǎn)換

2009-07-15 09:06:11

Linux圖形系統(tǒng)X11的CS架構(gòu)

2013-10-21 10:58:50

微軟大數(shù)據(jù)SQL Server

2014-02-11 08:51:15

亞馬遜PaaSAppStream

2014-12-02 10:56:47

TCPIP交互數(shù)據(jù)流

2020-02-06 19:12:36

Java函數(shù)式編程編程語言

2021-06-29 19:24:42

數(shù)據(jù)流數(shù)據(jù)排序

2021-07-12 18:10:10

數(shù)據(jù)流阿里云

2020-10-21 10:51:43

數(shù)據(jù)分析
點贊
收藏

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

亚洲 小说区 图片区| 国产精品视频资源| 欧美黄色免费影院| 青草久久伊人| 极品美女销魂一区二区三区免费| 久久久国产视频| 在线观看免费视频国产| 神马电影网我不卡| 亚洲欧美日韩国产一区二区三区| 亚洲精品免费在线视频| 最新中文字幕一区| 91av精品| 精品亚洲国产视频| 国产视频在线视频| 影音先锋男人资源在线| 国产视频在线观看一区二区三区| 亚洲aa在线观看| 国产suv精品一区二区33| 99九九热只有国产精品| 亚洲精品久久久久久下一站| 欧美伦理片在线观看| 国内小视频在线看| |精品福利一区二区三区| 久久国产精品久久精品国产| 国产农村老头老太视频| 久久精品盗摄| 欧美国产日韩视频| 蜜桃视频最新网址| 九九热线有精品视频99| 精品免费国产二区三区| 亚洲免费视频播放| 青青操视频在线| 国产aⅴ综合色| 国产伦精品免费视频| 欧美 日韩 精品| 国产一区日韩一区| 久久视频在线观看免费| 国产综合精品久久久久成人av| 日本成人中文| 亚洲精品短视频| 欧美图片自拍偷拍| 成人污污视频| 欧美日本国产视频| 国产福利影院在线观看| 依依综合在线| 狠狠操狠狠色综合网| 岛国大片在线播放| 男女视频在线| 一区二区三区国产精品| 国产精品88久久久久久妇女| 久久精品视频免费看| 国产精品欧美综合在线| 成人免费视频网| 亚洲精品毛片一区二区三区| 久久精品麻豆| 日本a级片电影一区二区| 国产欧美日韩另类| 国产欧美日韩视频在线| 日韩成人av网址| 亚洲色偷偷色噜噜狠狠99网| 国产精品videossex| 精品对白一区国产伦| 浮妇高潮喷白浆视频| 97人澡人人添人人爽欧美| 97成人超碰视| 国产伦精品一区二区三区免费视频| 国产婷婷色一区二区在线观看| 国产欧美日韩综合一区在线播放| 国产一区二区三区丝袜| 四虎国产精品成人免费入口| 欧美色蜜桃97| 日韩在线观看免费全| 亚洲视频 中文字幕| 成人资源在线| 日韩黄色高清视频| 成人国产精品久久久网站| 狠狠操综合网| 久久精品国产亚洲精品| 欧美精品一区二区蜜桃| 99精品免费网| 国产精品电影在线观看| 久久久久久免费观看| 欧美三区视频| 8x拔播拔播x8国产精品| 一级特黄免费视频| 国内一区二区在线| 国产九区一区在线| 国产视频精品久久| av在线免费不卡| 国产日韩亚洲欧美| 99热在线只有精品| 成人黄色av电影| 欧美一区二区三区成人久久片 | 免费在线一级片| 一区二区91| 国产免费一区二区三区在线观看| 国产99久一区二区三区a片| www.欧美日韩| 亚洲乱码一区二区三区三上悠亚| 性欧美ⅴideo另类hd| 欧美日韩精品在线播放| 香蕉视频999| 欧美成人专区| 久久天天躁狠狠躁夜夜爽蜜月| 日本熟妇毛茸茸丰满| 美女爽到高潮91| 久久av一区二区| 成人国产免费电影| 国产欧美精品一区二区三区四区| 精品一区二区三区毛片| a欧美人片人妖| 日韩免费性生活视频播放| 在哪里可以看毛片| 国产精品地址| 国产男人精品视频| 五月激情婷婷综合| 亚洲精品视频在线观看免费| 无码人妻精品一区二区三区66| 日韩精品中文字幕吗一区二区| 亚洲男人第一网站| 久久婷婷综合国产| 青青草国产精品97视觉盛宴| 激情视频在线观看一区二区三区| 免费黄网在线观看| 欧美亚洲自拍偷拍| 国产精品jizz| 亚洲电影男人天堂| 色综合男人天堂| 中文字幕乱码无码人妻系列蜜桃| 97se亚洲国产综合自在线不卡| 日韩a级黄色片| 91亚洲精品在看在线观看高清| 亚洲新声在线观看| 西西44rtwww国产精品| 国产suv精品一区二区三区| 亚洲欧洲精品一区二区| 浪潮色综合久久天堂| 精品香蕉一区二区三区| 99精品视频99| 99精品视频在线观看| 成人免费观看在线| 亚洲一区网址| 欧美另类极品videosbest最新版本 | 精品久久影院| 99久久婷婷国产综合精品电影| 国产日韩精品入口| 国产免费a∨片在线观看不卡| 五月激情综合网| 亚洲激情 欧美| 激情偷拍久久| zzijzzij亚洲日本成熟少妇| www.久久久久久久| 久久久亚洲精品石原莉奈| 男女午夜激情视频| 99蜜月精品久久91| 欧美久久一二三四区| 欧美黄色一级生活片| 久久中文在线| 日韩欧美手机在线| 另类中文字幕国产精品| 国产一区二区激情| 真实的国产乱xxxx在线91| 国产欧美日本一区二区三区| 97超碰成人在线| 91精品国产91久久综合| 96sao精品视频在线观看| 国产鲁鲁视频在线观看特色| 3d欧美精品动漫xxxx无尽| 区一区二视频| 午夜精品一区二区三区在线播放| 丰满人妻一区二区三区免费视频| 夜夜亚洲天天久久| 最新版天堂资源在线| 99精品视频免费观看| 欧美系列一区| 欧美大片1688网站| 97精品久久久午夜一区二区三区 | 日韩免费高清在线| 久久国产影院| 在线观看91久久久久久| 中文字幕永久在线| 亚洲免费av观看| 亚洲天堂2024| 日韩电影免费在线| 国产盗摄视频在线观看| 国产成人精品福利| 日韩免费观看网站| 成人免费在线| 日韩精品免费视频| 97超视频在线观看| 久久品道一品道久久精品| 老司机午夜av| 亚洲最大黄网| 欧美不卡在线一区二区三区| 日本免费成人| 国产亚洲精品一区二555| 亚洲最大成人在线视频| 亚洲一区二区影院| 国产精品国产三级国产专业不| 国产一区三区三区| 国产aaa一级片| 亚洲欧美文学| 91香蕉嫩草影院入口| 久久不射影院| 中文字幕日本精品| 日本黄色中文字幕| 一区二区视频在线| 香蕉视频久久久| 成人黄色网址在线观看| 国产福利精品一区二区三区| 亚洲一区二区毛片| wwwjizzjizzcom| 国产影视一区| 精品一区二区三区免费毛片| 亚洲男人在线| 国产精品h在线观看| 国产福利小视频在线| 欧美哺乳videos| 在线播放国产一区| 欧美色欧美亚洲高清在线视频| 男男做爰猛烈叫床爽爽小说| 美女久久久精品| 日韩av一二三四区| 亚洲天堂偷拍| av不卡在线免费观看| 精品视频99| 欧美国产一区二区在线| 99精品在免费线中文字幕网站一区| 亚洲三级av| 高清亚洲成在人网站天堂| 国产suv一区二区| 欧美三区在线观看| 日本中文在线播放| 亚洲成人精品在线观看| 老熟妇高潮一区二区三区| 中文字幕不卡在线观看| 全黄一级裸体片| 91视频国产观看| 亚洲av无码一区东京热久久| 国产很黄免费观看久久| 亚洲第一区第二区第三区| 美国三级日本三级久久99| 亚欧在线免费观看| 天堂av在线一区| 黄色国产精品视频| 亚洲一区日韩| 五月天婷亚洲天综合网鲁鲁鲁| 全球av集中精品导航福利| 国产精品乱子乱xxxx| 综合伊人久久| av成人观看| 粉嫩久久久久久久极品| 高清国产在线一区| 91蝌蚪精品视频| 国产伦精品一区二区三区四区免费| 福利片一区二区| 国产精品一区二区三区精品| 国偷自产av一区二区三区| 国产日韩欧美一区二区三区四区| 美女呻吟一区| 欧美日韩精品一区| 精品久久不卡| 宅男一区二区三区| 自产国语精品视频| 性高湖久久久久久久久aaaaa| 亚洲激情亚洲| 国产精品亚洲a| 蜜桃精品视频在线观看| 樱花草www在线| 成人午夜激情影院| 99热一区二区| 国产一区二区三区免费看| 久久久国产精品久久久| bt欧美亚洲午夜电影天堂| 三级网站在线免费观看| 国产精品福利一区| 黄页网站免费观看| 狠狠色香婷婷久久亚洲精品| 中文字幕 国产精品| 3751色影院一区二区三区| 亚洲美女性生活| 国产一区二区三区在线免费观看| 欧美成人精品一区二区男人看| 欧美多人爱爱视频网站| 欧美aa在线| 欧美高清视频在线观看| 久草免费在线色站| 日本一区二区不卡| 亚洲香蕉久久| 精品中文字幕人| 久久激情电影| 你懂的av在线| 精品一区二区在线观看| 亚洲久久久久久| 国产精品久久久久久久久免费樱桃 | 美女久久久久久久久久久| 成人国产电影在线观看| 国产精品日韩久久久久| 加勒比色老久久爱综合网| 先锋影音一区二区三区| 在线观看一区视频| 污污网站在线观看视频| 91在线视频网址| 免费看特级毛片| 日本高清视频一区二区| 亚洲精品18p| 中文字幕欧美亚洲| jk漫画禁漫成人入口| 成人片在线免费看| 日韩精品一卡| 777久久久精品一区二区三区| 国内成人精品2018免费看| 色哟哟精品观看| 亚洲国产视频一区二区| 91theporn国产在线观看| 亚洲乱亚洲乱妇无码| wwww亚洲| 91亚洲精品视频| 日韩精品诱惑一区?区三区| 色欲av无码一区二区人妻| 国产传媒日韩欧美成人| 国产人与禽zoz0性伦| 在线视频一区二区三| 日韩在线无毛| 久久久久久久av| 亚洲不卡视频| 国产麻豆电影在线观看| 日本不卡视频在线| 欧美 日韩 国产 成人 在线观看 | 黄页网站在线观看视频| 国产精品一卡二卡在线观看| 熟女少妇a性色生活片毛片| 欧美亚洲国产一区二区三区| 精品99又大又爽又硬少妇毛片| 久久久久日韩精品久久久男男| 日韩三级精品| 黑人巨大国产9丨视频| 久久国产福利国产秒拍| 在线免费看视频| 欧美三级韩国三级日本一级| 国产一区二区影视| 国产成人精品最新| 国产尤物久久久| 久久国产色av免费观看| www国产精品av| 91video| 亚洲人免费视频| 日韩久久一区二区三区| 日韩精品大片| 蜜桃av一区二区| 欧美巨胸大乳hitomi| 欧美人与禽zozo性伦| 色欧美激情视频在线| 成人日韩av在线| 欧美在线三区| 一二三区视频在线观看| 97久久精品人人做人人爽| 国产精品19乱码一区二区三区| 精品成a人在线观看| 都市激情久久综合| 九九九九久久久久| 另类天堂av| 一二三四在线观看视频| 欧美日韩国产美女| av在线免费网站| 国产精品久久久久久久久久久久冷 | 国产精品亚洲lv粉色| 久久久999国产| 91精品短视频| 免费观看日韩毛片| 国产视频一区二区在线| 曰批又黄又爽免费视频| 九九视频这里只有精品| 国产欧美啪啪| 已婚少妇美妙人妻系列| 国产精品国产三级国产a| www.午夜激情| 欧美亚洲国产视频| 久久美女视频| 稀缺呦国内精品呦| 日韩欧美有码在线| 黄色在线视频网站| 国产精品免费观看高清| 丝袜亚洲另类欧美综合| 日本精品在线免费观看| 亚洲成人激情视频| 亚洲成人短视频| 黑人巨茎大战欧美白妇| 久久嫩草精品久久久精品| 国产又大又黄又爽| 国外成人在线视频| 成人动漫免费在线观看| 无码人妻丰满熟妇区毛片蜜桃精品| 精品久久久久久久中文字幕| av网站无病毒在线| 国产一区二区精品在线| 麻豆91精品91久久久的内涵| 日本少妇吞精囗交| 日韩在线免费视频观看| 日韩伦理一区二区三区|