日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

ZMQ研究

發布時間:2025/7/25 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ZMQ研究 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

FROM:?http://www.open-open.com/lib/view/open1344869477975.html

ZeroMQ,史上最快的消息隊列

—– ZMQ的學習和研究

一、ZeroMQ的背景介紹

引用官方的說法: “ZMQ(以下ZeroMQ簡稱ZMQ)是一個簡單好用的傳輸層,像框架一樣的一個socket library,他使得Socket編程更加簡單、簡潔和性能更高。是一個消息處理隊列庫,可在多個線程、內核和主機盒之間彈性伸縮。ZMQ的明確目標是“成為標準網絡協議棧的一部分,之后進入Linux內核”。現在還未看到它們的成功。但是,它無疑是極具前景的、并且是人們更加需要的“傳統”BSD套接字之上的一 層封裝。ZMQ讓編寫高性能網絡應用程序極為簡單和有趣?!?/p>

近幾年有關”Message Queue”的項目層出不窮,知名的就有十幾種,這主要是因為后摩爾定律時代,分布式處理逐漸成為主流,業界需要一套標準來解決分布式計算環境中節點之間的消息通信。幾年的競爭下來,Apache基金會旗下的符合AMQP/1.0標準的RabbitMQ已經得到了廣泛的認可,成為領先的MQ項目。

與RabbitMQ相比,ZMQ并不像是一個傳統意義上的消息隊列服務器,事實上,它也根本不是一個服務器,它更像是一個底層的網絡通訊庫,在Socket API之上做了一層封裝,將網絡通訊、進程通訊和線程通訊抽象為統一的API接口。

二、ZMQ是什么?

閱讀了ZMQ的Guide文檔后,我的理解是,這是個類似于Socket的一系列接口,他跟Socket的區別是:普通的socket是端到端的(1:1的關系),而ZMQ卻是可以N:M 的關系,人們對BSD套接字的了解較多的是點對點的連接,點對點連接需要顯式地建立連接、銷毀連接、選擇協議(TCP/UDP)和處理錯誤等,而ZMQ屏蔽了這些細節,讓你的網絡編程更為簡單。ZMQ用于node與node間的通信,node可以是主機或者是進程。

三、本文的目的

在集群對外提供服務的過程中,我們有很多的配置,需要根據需要隨時更新,那么這個信息如果推動到各個節點?并且保證信息的一致性和可靠性?本文在介紹ZMQ基本理論的基礎上,試圖使用ZMQ實現一個配置分發中心。從一個節點,將信息無誤的分發到各個服務器節點上,并保證信息正確性和一致性。

四、ZMQ的三個基本模型

ZMQ提供了三個基本的通信模型,分別是“Request-Reply “,”Publisher-Subscriber“,”Parallel Pipeline”,我們從這三種模式一窺ZMQ的究竟

ZMQ的hello world!

由Client發起請求,并等待Server回應請求。請求端發送一個簡單的hello,服務端則回應一個world。請求端和服務端都可以是 1:N 的模型。通常把 1 認為是 Server ,N 認為是Client 。ZMQ 可以很好的支持路由功能(實現路由功能的組件叫作Device),把 1:N 擴展為N:M (只需要加入若干路由節點)。如圖1所示:

圖1:ZMQ的Request-Reply 通信

服務端的php程序如下:

?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 <?php /* * Hello World server * Binds REP socket to tcp://*:5555 * Expects "Hello" from client, replies with "World" * @author Ian Barber &lt;ian(dot)barber(at)gmail(dot)com&gt; */ $context = new ZMQContext(1); // Socket to talk to clients $responder = new ZMQSocket($context, ZMQ::SOCKET_REP); $responder-&gt;bind("tcp://*:5555"); while(true) { // Wait for next request from client $request = $responder-&gt;recv(); printf ("Received request: [%s]\n", $request); // Do some 'work' sleep (1); // Send reply back to client $responder-&gt;send("World"); }

Client程序如下:

?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 <?php /* ?*? Hello World client ?*? Connects REQ socket to tcp://localhost:5555 ?*? Sends "Hello" to server, expects "World" back ?* @author Ian Barber &lt;ian(dot)barber(at)gmail(dot)com&gt; ?*/ $context = new ZMQContext(); //? Socket to talk to server echo "Connecting to hello world server...\n"; $requester = new ZMQSocket($context, ZMQ::SOCKET_REQ); $requester-&gt;connect("tcp://localhost:5555"); for($request_nbr = 0; $request_nbr != 10; $request_nbr++) { ????printf ("Sending request %d...\n", $request_nbr); ????$requester-&gt;send("Hello"); ????$reply = $requester-&gt;recv(); ????printf ("Received reply %d: [%s]\n", $request_nbr, $reply); }

從以上的過程,我們可以了解到使用ZMQ寫基本的程序的方法,需要注意的是:

a) 服務端和客戶端無論誰先啟動,效果是相同的,這點不同于Socket。

b) 在服務端收到信息以前,程序是阻塞的,會一直等待客戶端連接上來。

c) 服務端收到信息以后,會send一個“World”給客戶端。值得注意的是一定是client連接上來以后,send消息給Server,然后Server再rev然后響應client,這種一問一答式的。如果Server先send,client先rev是會報錯的。

d) ZMQ通信通信單元是消息,他除了知道Bytes的大小,他并不關心的消息格式。因此,你可以使用任何你覺得好用的數據格式。Xml、Protocol Buffers、Thrift、json等等。

e) 雖然可以使用ZMQ實現HTTP協議,但是,這絕不是他所擅長的。

ZMQ的Publish-subscribe模式

我們可以想象一下天氣預報的訂閱模式,由一個節點提供信息源,由其他的節點,接受信息源的信息,如圖2所示:

圖2:ZMQ的Publish-subscribe

示例代碼如下 :

Publisher:

?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 <?php /* * Weather update server * Binds PUB socket to tcp://*:5556 * Publishes random weather updates * @author Ian Barber &lt;ian(dot)barber(at)gmail(dot)com&gt; */ // Prepare our context and publisher $context = new ZMQContext(); $publisher = $context-&gt;getSocket(ZMQ::SOCKET_PUB); $publisher-&gt;bind("tcp://*:5556"); while (true) { // Get values that will fool the boss $zipcode = mt_rand(0, 100000); $temperature = mt_rand(-80, 135); $relhumidity = mt_rand(10, 60); // Send message to all subscribers $update = sprintf ("%05d %d %d", $zipcode, $temperature, $relhumidity); $publisher-&gt;send($update); }</pre> Subscriber <pre>&lt;?php /* * Weather update client * Connects SUB socket to tcp://localhost:5556 * Collects weather updates and finds avg temp in zipcode * @author Ian Barber &lt;ian(dot)barber(at)gmail(dot)com&gt; */ $context = new ZMQContext(); // Socket to talk to server echo "Collecting updates from weather server…", PHP_EOL; $subscriber = new ZMQSocket($context, ZMQ::SOCKET_SUB); $subscriber-&gt;connect("tcp://localhost:5556"); // Subscribe to zipcode, default is NYC, 10001 $filter = $_SERVER['argc'] &gt; 1 ? $_SERVER['argv'][1] : "10001"; $subscriber-&gt;setSockOpt(ZMQ::SOCKOPT_SUBSCRIBE, $filter); // Process 100 updates $total_temp = 0; for ($update_nbr = 0; $update_nbr &lt; 100; $update_nbr++) { $string = $subscriber-&gt;recv(); sscanf ($string, "%d %d %d", $zipcode, $temperature, $relhumidity); $total_temp += $temperature; } printf ("Average temperature for zipcode '%s' was %dF\n", $filter, (int) ($total_temp / $update_nbr));

這段代碼講的是,服務器端生成隨機數zipcode、temperature、relhumidity分別代表城市代碼、溫度值和濕度值。然后不斷的廣播信息,而客戶端通過設置過濾參數,接受特定城市代碼的信息,收集完了以后,做一個平均值。

a) 與Hello World不同的是,Socket的類型變成SOCKET_PUB和SOCKET_SUB類型。

b) 客戶端需要$subscriber->setSockOpt(ZMQ::SOCKOPT_SUBSCRIBE, $filter);設置一個過濾值,相當于設定一個訂閱頻道,否則什么信息也收不到。

c) 服務器端一直不斷的廣播中,如果中途有Subscriber端退出,并不影響他繼續的廣播,當Subscriber再連接上來的時候,收到的就是后來發送的新的信息了。這對比較晚加入的,或者是中途離開的訂閱者,必然會丟失掉一部分信息,這是這個模式的一個問題,所謂的Slow joiner。稍后,會解決這個問題。

d) 但是,如果Publisher中途離開,所有的Subscriber會hold住,等待Publisher再上線的時候,會繼續接受信息。

ZMQ的PipeLine模型

想象一下這樣的場景,如果需要統計各個機器的日志,我們需要將統計任務分發到各個節點機器上,最后收集統計結果,做一個匯總。PipeLine比較適合于這種場景,他的結構圖,如圖3所示。

圖3:ZMQ的PipeLine模型

Parallel task ventilator in PHP

?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 <?php /* * Task ventilator * Binds PUSH socket to tcp://localhost:5557 * Sends batch of tasks to workers via that socket * @author Ian Barber &lt;ian(dot)barber(at)gmail(dot)com&gt; */ $context = new ZMQContext(); // Socket to send messages on $sender = new ZMQSocket($context, ZMQ::SOCKET_PUSH); $sender-&gt;bind("tcp://*:5557"); echo "Press Enter when the workers are ready: "; $fp = fopen('php://stdin', 'r'); $line = fgets($fp, 512); fclose($fp); echo "Sending tasks to workers…", PHP_EOL; // The first message is "0" and signals start of batch $sender-&gt;send(0); // Send 100 tasks $total_msec = 0; // Total expected cost in msecs for ($task_nbr = 0; $task_nbr &lt; 100; $task_nbr++) { // Random workload from 1 to 100msecs $workload = mt_rand(1, 100); $total_msec += $workload; $sender-&gt;send($workload); } printf ("Total expected cost: %d msec\n", $total_msec); sleep (1); // Give 0MQ time to deliver

Parallel task worker in PHP

?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 <?php /* * Task worker * Connects PULL socket to tcp://localhost:5557 * Collects workloads from ventilator via that socket * Connects PUSH socket to tcp://localhost:5558 * Sends results to sink via that socket * @author Ian Barber &lt;ian(dot)barber(at)gmail(dot)com&gt; */ $context = new ZMQContext(); // Socket to receive messages on $receiver = new ZMQSocket($context, ZMQ::SOCKET_PULL); $receiver-&gt;connect("tcp://localhost:5557"); // Socket to send messages to $sender = new ZMQSocket($context, ZMQ::SOCKET_PUSH); $sender-&gt;connect("tcp://localhost:5558"); // Process tasks forever while (true) { $string = $receiver-&gt;recv(); // Simple progress indicator for the viewer echo $string, PHP_EOL; // Do the work usleep($string * 1000); // Send results to sink $sender-&gt;send(""); }

Parallel task sink in PHP

?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 <?php /* * Task sink * Binds PULL socket to tcp://localhost:5558 * Collects results from workers via that socket * @author Ian Barber &lt;ian(dot)barber(at)gmail(dot)com&gt; */ // Prepare our context and socket $context = new ZMQContext(); $receiver = new ZMQSocket($context, ZMQ::SOCKET_PULL); $receiver-&gt;bind("tcp://*:5558"); // Wait for start of batch $string = $receiver-&gt;recv(); // Start our clock now $tstart = microtime(true); // Process 100 confirmations $total_msec = 0; // Total calculated cost in msecs for ($task_nbr = 0; $task_nbr &lt; 100; $task_nbr++) { $string = $receiver-&gt;recv(); if($task_nbr % 10 == 0) { echo ":"; } else { echo "."; } } $tend = microtime(true); $total_msec = ($tend - $tstart) * 1000; echo PHP_EOL; printf ("Total elapsed time: %d msec", $total_msec); echo PHP_EOL;

從程序中,我們可以看到,task ventilator使用的是SOCKET_PUSH,將任務分發到Worker節點上。而Worker節點上,使用SOCKET_PULL從上游接受任務,并使用SOCKET_PUSH將結果匯集到Slink。值得注意的是,任務的分發的時候也同樣有一個負載均衡的路由功能,worker可以隨時自由加入,task ventilator可以均衡將任務分發出去。

五、其他擴展模式

通常,一個節點,即可以作為Server,同時也能作為Client,通過PipeLine模型中的Worker,他向上連接著任務分發,向下連接著結果搜集的Sink機器。因此,我們可以借助這種特性,豐富的擴展原有的三種模式。例如,一個代理Publisher,作為一個內網的Subscriber接受信息,同時將信息,轉發到外網,其結構圖如圖4所示。


圖4:ZMQ的擴展模式

六、多個服務器

ZMQ和Socket的區別在于,前者支持N:M的連接,而后者則只是1:1的連接,那么一個Client連接多個Server的情況是怎樣的呢,我們通過圖5來說明。

圖5:ZMQ的N:1的連接情況

我們假設Client有R1,R2,R3,R4四個任務,我們只需要一個ZMQ的Socket,就可以連接四個服務,他能夠自動均衡的分配任務。如圖5所示,R1,R4自動分配到了節點A,R2到了B,R3到了C。如果我們是N:M的情況呢?這個擴展起來,也不難,如圖6所示。

圖6:N:M的連接

我們通過一個中間結點(Broker)來進行負載均衡的功能。我們通過代碼了解,其中的Client和我們的Hello World的Client端是一樣的,而Server端的不同是,他不需要監聽端口,而是需要連接Broker的端口,接受需要處理的信息。所以,我們重點閱讀Broker的代碼:

?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 <?php /* * Simple request-reply broker * @author Ian Barber &lt;ian(dot)barber(at)gmail(dot)com&gt; */ // Prepare our context and sockets $context = new ZMQContext(); $frontend = new ZMQSocket($context, ZMQ::SOCKET_ROUTER); $backend = new ZMQSocket($context, ZMQ::SOCKET_DEALER); $frontend-&gt;bind("tcp://*:5559"); $backend-&gt;bind("tcp://*:5560"); // Initialize poll set $poll = new ZMQPoll(); $poll-&gt;add($frontend, ZMQ::POLL_IN); $poll-&gt;add($backend, ZMQ::POLL_IN); $readable = $writeable = array(); // Switch messages between sockets while(true) { $events = $poll-&gt;poll($readable, $writeable); foreach($readable as $socket) { if($socket === $frontend) { // Process all parts of the message while(true) { $message = $socket-&gt;recv(); // Multipart detection $more = $socket-&gt;getSockOpt(ZMQ::SOCKOPT_RCVMORE); $backend-&gt;send($message, $more ? ZMQ::MODE_SNDMORE : null); if(!$more) { break; // Last message part } } } else if($socket === $backend) { $message = $socket-&gt;recv(); // Multipart detection $more = $socket-&gt;getSockOpt(ZMQ::SOCKOPT_RCVMORE); $frontend-&gt;send($message, $more ? ZMQ::MODE_SNDMORE : null); if(!$more) { break; // Last message part } } } }

Broker監聽了兩個端口,接受從多個Client端發送過來的數據,并將數據,轉發給Server。在Broker中,我們監聽了兩個端口,使用了兩個Socket,那么對于多個Socket的情況,我們是不需要通過輪詢的方式去處理數據的,在之前,我們可以使用libevent實現,異步的信息處理和傳輸。而現在,我們只需要使用ZMQ的$poll->poll以實現多個Socket的異步處理。

七、進程間的通信

ZMQ不僅能通過TCP完成節點間的通信,也可以通過Socket文件完成進程間的通信。如圖7所示,我們fork三個PHP進程,將進程1的數據,通過Socket文件發送到進程3。

圖7:進程間的通信

?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 <?php function step1() { ????????$context = new ZMQContext(); ????????// Signal downstream to step 2 ????????$sender = new ZMQSocket($context, ZMQ::SOCKET_PAIR); ????????$sender-&gt;connect("ipc://step2.ipc"); ????????$sender-&gt;send("hello ,i am step1"); } function step2() { ????????$pid = pcntl_fork(); ????????if($pid == 0) { ????????????????step1(); ????????????????exit(); ????????} ????????$context = new ZMQContext(); ????????//? Bind to ipc: endpoint, then start upstream thread ????????$receiver = new ZMQSocket($context, ZMQ::SOCKET_PAIR); ????????$receiver-&gt;bind("ipc://step2.ipc"); ????????// Wait for signal?? ????????sleep(10); ????????$strings = $receiver-&gt;recv(); ????????echo "step2 receiver is $strings". PHP_EOL; ????????sleep(10); ????????// Signal downstream to step 3 ????????$sender = new ZMQSocket($context, ZMQ::SOCKET_PAIR); ????????$sender-&gt;connect("ipc://step3.ipc"); ????????$sender-&gt;send($strings); } // Start upstream thread then bind to icp: endpoint $pid = pcntl_fork(); if($pid == 0) { ????????step2(); ????????exit(); } $context = new ZMQContext(); $receiver = new ZMQSocket($context, ZMQ::SOCKET_PAIR); $receiver-&gt;bind("ipc://step3.ipc"); // Wait for signal $sr = $receiver-&gt;recv(); echo "the result is {$sr}".PHP_EOL;

在運行中,我們可以看到多了兩個文件,如圖8所示。

圖8:運行過程中生成的文件

八、利用ZeroMQ實現一個配置推送中心

當我們將WEB代碼部署到集群上的時候,如果需要實時的將最新的配置信息,主動的推送到各個機器節點。在此過程中,我們一定要保證,各個節點收到的信息的一致性和正確性,如果使用HTTP,由于他的無狀態性,我們無法保證信息的一致性,當然,你可以使用HTTP來實現,只是更復雜,為什么不用ZMQ?他能讓你更簡單的實現這些功能。

我們使用ZMQ的信息訂閱模式。在那個模式中,我們注意到,對于后來的加入節點,始終會丟失在他加入之前,已經發送的信息(Slow joiner)。我們可以開啟另外一個ZMQ的通信通道,用于報告當前節點的情況(節點的身份、準備狀態等),其結構如圖9所示。

圖9:擴展ZMQ的訂閱者模式

我們通過$context->getSocket(ZMQ::SOCKET_REQ);設置一個新的Request-Reply連接,來用于Subscriber向Publisher報告自己的身份信息,而Publisher則等待所有的Subscriber都連接上的時候,再選擇Publish自己的信息。

Subscriber端的程序如下:

?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 <?php $hostname = $_SERVER['argc'] &gt; 1 ? $_SERVER['argv'][1] : "s1"; $context = new ZMQContext(2); $sub = new ZMQSocket($context,ZMQ::SOCKET_SUB); $sub-&gt;connect("tcp://localhost:5561"); //$subscriber-&gt;setSockOpt(ZMQ::SOCKOPT_IDENTITY, $hostname); $sub-&gt;setSockOpt(ZMQ::SOCKOPT_SUBSCRIBE,""); $client = $context-&gt;getSocket(ZMQ::SOCKET_REQ); $client-&gt;connect("tcp://localhost:5562"); while(1) { //$client-&gt;connect("tcp://localhost:5562"); $client-&gt;send($hostname); $version = $client-&gt;recv(); echo $version."\r\n"; if (!empty($version)) { $recive = $sub-&gt;recv(); $vars = json_decode($recive); var_dump($vars); } }

Publisher端的程序如下:

?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 <?php $CONFIG["TAOKE_BTS"]["ENABLE"] = true; $CONFIG["QP_BTS"]["ENABLE"] = true; $CONFIG["QP_BTS"]["TK_TEST"] = 13; $string = json_encode($CONFIG); $clients = array("s2","s1","s3"); $context = new ZMQContext(10); //Socket talk to clients $publisher = new ZMQSocket($context,ZMQ::SOCKET_PUB); $publisher-&gt;bind("tcp://*:5561"); //Socket to publish message $server = new ZMQSocket($context,ZMQ::SOCKET_REP); $server-&gt;bind("tcp://*:5562"); while(count($clients)!=0) { ??????$client_name = $server-&gt;recv(); ????????echo "{$client_name} is connect!\r\n"; if (in_array($client_name, $clients)) { //coming one client ????????$key = array_search($client_name, $clients); ????????unset($clients[$key]); ????????echo "$client_name has come in!\r\n"; ????????$server-&gt;send("Version is 2.0"); } else { ????????$server-&gt;send("You are a stranger!"); } } $publisher-&gt;send($string); ?&gt;

每個節點通過5562端口,使用Rep模式和Publisher連接,通過這個連接告之Publisher自己的機器名,而Publisher端通過白名單的方式,維護一個機器列表,當機器列表中所有的機器連接上來以后,通過5561端口,將最新的配置信息發送出去。

后續的處理,Subscriber可以選擇將配置信息寫入到APC緩存,程序將始終從緩存中讀取部分配置信息,Subscriber并將更新后的狀態信息,實時的通過5562報告給Publisher。

雖然,在本示例中不會出現,但是,如果需要發布的信息量過大,在接受信息的過程中,Subscriber端突然中斷網絡(或者是程序崩潰),那么當他在連接上來的時候,有部分信息就會丟失?ZMQ考慮到這個問題,通過$subscriber->setSockOpt(ZMQ::SOCKOPT_IDENTITY, $hostname);設置一個id,當這個id的Subscriber重新連接上來的時候,他可以從上次中斷的地方,繼續接受信息,當然,節點的中斷,不會影響其他的節點繼續的接受信息。

那么ZMQ是怎么實現斷線重連后,繼續發送信息呢 ?他會將斷開的Subscriber應該接受到的信息發到內存中,等待他重新上線后,將緩存的信息,繼續發送給他。當然,內存必然是有限的,過多就會出現內存溢出。ZMQ通過

SetSockOpt(ZMQ::SOCKOPT_SWAP, 250000)設置Swap空間的大小,來防止out of memory and crash。最終,我們的程序運行結果,如圖10所示。


圖10:配置中心的運行結果

當然,這只是一個大體的思路,如果應用到實際的成產環境中,還需要考慮更多的問題,包含穩定性,容錯等等。然而,ZMQ由于高并發,以及穩定性和易用性,前景不錯,他的目標是進入Linux內核,我們期待那一天的到來。

參考資料 :

http://www.infoq.com/cn/news/2010/09/introduction-zero-mq Infoq對zeromq的簡介

http://zguide.zeromq.org/page:all ZeroMQ的guide文檔

來自: www.searchtb.com


總結

以上是生活随笔為你收集整理的ZMQ研究的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

91pony九色丨交换 | 国产精品18久久久久久久久 | 久久免费视频6 | 久久综合毛片 | 国产黄色av影视 | 婷婷色社区 | 久久九九影视网 | 97操操操 | 在线电影 一区 | 午夜久久成人 | 国产亚洲无 | 欧美日韩国产一区二 | av高清一区二区三区 | 91网在线观看 | 欧美日本在线视频 | 香蕉手机在线 | 国产精品69av | 国产精品一区二区三区视频免费 | 精品久久久久久国产偷窥 | 久久欧美综合 | 九九热久久久 | 337p日本大胆噜噜噜噜 | 国产精品美女久久久免费 | 97**国产露脸精品国产 | www日日夜夜 | 久久免费视频99 | 亚洲毛片一区二区三区 | 91免费视频国产 | 97免费在线观看视频 | 免费情缘| 国产午夜精品一区二区三区四区 | 2000xxx影视| 天天操比 | 国产专区视频 | 黄色亚洲在线 | 亚洲闷骚少妇在线观看网站 | 婷婷激情综合五月天 | 黄在线 | 天天操狠狠操夜夜操 | 涩涩资源网 | 日本久久精品视频 | 色综合天天狠天天透天天伊人 | 久久你懂的 | 99高清视频有精品视频 | 日日综合网 | 91精品老司机久久一区啪 | 国产日本在线播放 | 久久久在线| 在线 高清 中文字幕 | 成年人免费在线观看 | av免费电影在线观看 | 91免费观看国产 | 日韩在线在线 | 精品视频久久 | 日韩三级精品 | 91自拍视频在线 | 操操操人人人 | 天天色综合久久 | 久久精品视频中文字幕 | 天堂av在线7 | 午夜影视一区 | 国产第一页精品 | 四虎成人精品在永久免费 | 免费网站黄| 国产成人精品一区二区三区网站观看 | 久久精品久久久久电影 | 日韩电影在线观看一区二区 | 国产精品欧美一区二区 | 九九色在线观看 | 久久精品99久久久久久2456 | 丁香六月婷婷开心 | 在线看一区 | 天天草天天插 | 国产高清精品在线观看 | 久久视频6| 一本色道久久综合亚洲二区三区 | 超碰97久久 | www国产一区 | 亚洲专区免费观看 | 最近中文字幕在线 | 欧美精品一二 | 808电影免费观看三年 | 久久激情日本aⅴ | 日韩免费视频在线观看 | 狠狠天天 | 在线播放 日韩专区 | 久久欧美综合 | 一区二区在线影院 | 久久精品中文字幕 | 九九免费精品视频在线观看 | 青春草免费在线视频 | 99在线精品免费视频九九视 | 2022久久国产露脸精品国产 | 国产精品欧美 | 欧美性大战 | 欧美精品中文在线免费观看 | 国产日产精品久久久久快鸭 | 国产对白av | 免费在线国产黄色 | 国产在线观看免 | 国产91在线看 | 九九色视频 | 欧美亚洲一区二区在线 | 欧美日韩在线观看视频 | 国产又黄又硬又爽 | 亚洲一级理论片 | 激情综合色播五月 | 精品国产一区二区三区久久 | 香蕉在线视频观看 | 久久视频99 | 国产又黄又硬又爽 | 欧美极品少妇xxxxⅹ欧美极品少妇xxxx亚洲精品 | 成人免费观看在线视频 | 天天天天天天干 | 999在线精品| 高清中文字幕 | 色午夜 | 天天在线免费视频 | 日韩高清精品一区二区 | 国产一级免费片 | 91三级在线观看 | 日韩a级黄色片 | 成人网在线免费视频 | 麻豆国产精品va在线观看不卡 | 成年人视频在线免费 | 精品国产亚洲一区二区麻豆 | 毛片的网址 | 国产在线观看h | 国产无遮挡猛进猛出免费软件 | 日韩国产欧美在线视频 | 国产中文字幕在线播放 | 国产精品一码二码三码在线 | 麻豆精品传媒视频 | 国产精品av免费 | 久久9视频| 亚洲午夜精品久久久久久久久久久久 | 国产精品成人国产乱 | 在线免费观看视频你懂的 | 国产97视频在线 | 亚洲综合导航 | 精品一区免费 | 在线 视频 亚洲 | 色com网 | 中文字幕一区二区三区视频 | 天天色天天射天天操 | 国产三级视频在线 | 天天干天天玩天天操 | 亚洲成 人精品 | 天天操天天干天天操天天干 | 亚洲禁18久人片 | 亚洲一区二区视频 | www.久久精品视频 | 91男人影院 | 亚洲欧美激情精品一区二区 | 综合色婷婷 | 亚洲国内在线 | 国产成人久久av免费高清密臂 | 国内精品久久久精品电影院 | 国产午夜激情视频 | 日韩一区二区三免费高清在线观看 | 福利片视频区 | 国产中文字幕一区 | 99精品视频免费在线观看 | 69av视频在线观看 | 日韩欧美在线国产 | 天天摸天天干天天操天天射 | 黄色av电影一级片 | 九色精品 | 国产亚洲成av人片在线观看桃 | 开心婷婷色 | 国产亚洲视频在线免费观看 | 日韩在线电影 | 日本精品一区二区三区在线观看 | 国产亚洲精品综合一区91 | 日日夜夜精品免费观看 | 欧美色图30p | 成人久久久久久久久久 | 九色精品免费永久在线 | 免费在线成人 | 中文在线免费视频 | 日韩免费一区二区在线观看 | 日韩二区在线观看 | 久久91久久久久麻豆精品 | 波多野结衣一区二区 | 久久免费视频99 | 成人资源站 | 亚洲精品一区中文字幕乱码 | 处女av在线 | av黄色亚洲 | 中文字幕一区二区三区在线观看 | 天天天插 | 国产三级精品在线 | 久久精品在线免费观看 | 激情视频网页 | 久久九九精品久久 | 久久精品中文字幕一区二区三区 | 热久久免费国产视频 | 玖玖视频在线 | 麻豆视频网址 | 亚洲一区视频在线播放 | 美女国产在线 | 久久1区| 九九热视频在线免费观看 | 天天操天天色天天 | 精品资源在线 | 国产破处在线播放 | 亚洲综合在线观看视频 | 成人一区不卡 | 狠狠插狠狠操 | 国产日韩精品一区二区三区 | 激情综合网色播五月 | 91视视频在线直接观看在线看网页在线看 | 亚洲精品美女久久 | 国产精品免费观看在线 | www.亚洲精品视频 | 在线亚洲人成电影网站色www | 字幕网在线观看 | 曰本免费av| 日韩成人邪恶影片 | 国产免费小视频 | 亚洲国产精品免费 | 在线观看中文字幕一区 | 手机看片1042 | 91在线视频免费91 | 成人久久18免费网站 | 亚洲福利精品 | 人人插人人搞 | 婷婷色中文网 | 国产精品初高中精品久久 | 国产青草视频在线观看 | 免费看污污视频的网站 | 国产精品涩涩屋www在线观看 | 少妇高潮流白浆在线观看 | 成人免费xxxxxx视频 | 色资源在线 | 夜夜嗨av色一区二区不卡 | 天堂在线一区 | 又色又爽的网站 | 日韩丝袜视频 | 欧美日韩18 | 久久久午夜剧场 | 国产欧美综合在线观看 | 欧美一级片免费在线观看 | 国产亚洲视频在线免费观看 | 国产精品2区 | 手机在线免费av | 欧美激情综合网 | 999视频网| 国产亚洲在线视频 | 亚洲精品综合在线观看 | 国产黄色片在线 | 97精品国产91久久久久久久 | 免费在线观看av的网站 | 欧美日韩在线视频免费 | 午夜精品在线看 | 国产盗摄精品一区二区 | 日韩视频免费看 | 国产中文| 欧美久草网| 中文字幕一区在线观看视频 | 免费一级片观看 | 日韩精品免费一区二区在线观看 | 日本中文字幕网址 | 亚洲一级片在线看 | 99久久久久免费精品国产 | 激情视频久久 | 亚洲免费国产视频 | 亚洲视频网站在线观看 | 国产成人专区 | 香蕉视频在线免费 | 欧美午夜视频在线 | 亚洲精选在线 | 欧美国产日韩久久 | 91精品国产九九九久久久亚洲 | 少妇性bbb搡bbb爽爽爽欧美 | 人人添人人 | 亚洲热视频 | 日韩色av色资源 | 九九精品视频在线 | 97精品在线观看 | 久久综合桃花 | 69精品 | 国产成人在线免费观看 | 国产精品欧美久久久久三级 | 国产午夜精品在线 | 欧美大jb| 久久久久久国产精品美女 | 久久久精品国产一区二区电影四季 | av在线免费播放网站 | 波多野结衣视频一区 | 99产精品成人啪免费网站 | 91精品国产自产在线观看永久 | 黄色成人在线观看 | 五月婷婷激情 | 在线观看视频99 | 91黄色免费网站 | 九色视频网站 | 天天干天天操天天 | 久久激情五月丁香伊人 | 在线国产视频观看 | 国产精品视频在线观看 | 91久久精品日日躁夜夜躁国产 | www免费视频com | 91污污视频在线观看 | 国产资源在线视频 | 韩国一区二区三区在线观看 | 蜜臀aⅴ精品一区二区三区 久久视屏网 | 久久不射电影院 | 国产精品久久三 | 超碰97免费观看 | 在线免费观看欧美日韩 | 久草| 欧美视屏一区二区 | 国产精品专区一 | 久久婷婷综合激情 | 波多野结衣一区 | 91亚洲精品久久久中文字幕 | 色综合久久久久综合体 | 五月婷婷激情网 | 欧美乱码精品一区二区 | 免费看污网站 | 成人久久18免费网站 | 91免费国产在线观看 | 亚洲精品中文在线资源 | 国际精品久久久久 | 免费在线观看亚洲视频 | 天天做天天爱天天综合网 | 四虎国产精品成人免费4hu | 久草视频免费在线观看 | 五月天九九| 视频二区在线 | 麻豆精品视频在线 | 国产aaa毛片 | 国产伦理一区二区三区 | 久久深夜福利免费观看 | 91在线蜜桃臀 | 手机成人av | 黄色国产高清 | 99热这里| 黄色app网站在线观看 | 久久精品国产精品亚洲 | 麻豆91在线 | 狠狠色丁香婷婷综合久小说久 | 国产高清在线a视频大全 | 中文字幕免费高清av | 免费色视频 | 免费精品久久久 | 超级碰碰碰视频 | 久久久久久久久久久国产精品 | 中文字幕av全部资源www中文字幕在线观看 | 精品国产一区二区三区在线 | 免费男女羞羞的视频网站中文字幕 | 欧美一级专区免费大片 | 国产日韩一区在线 | 日本夜夜草视频网站 | 日日狠狠| 国产精品久久99综合免费观看尤物 | 久久成人精品视频 | 国产日韩精品在线 | 欧美ⅹxxxxxx | 亚洲动漫在线观看 | 国产伦精品一区二区三区无广告 | 亚洲黄色激情小说 | 五月开心婷婷网 | 天天操天天吃 | 在线不卡视频 | 国产福利一区二区在线 | 国产最新福利 | 日韩免费在线一区 | 日韩精品极品视频 | 91久久黄色 | 国产精品视频免费看 | 亚洲片在线观看 | 成人国产精品久久久久久亚洲 | 91精品国产欧美一区二区成人 | 92精品国产成人观看免费 | 4hu视频| 国产麻豆电影 | 激情综合六月 | 三级视频日韩 | 天天干天天拍 | 精品久久久久久久久久久久久久久久久久 | 特级大胆西西4444www | 久久国产高清 | 日韩精品在线播放 | 欧美日韩国产一区二 | 中文字幕高清有码 | 久热爱| 青青草视频精品 | 午夜影院先 | 日韩在线电影一区二区 | 欧美精品免费在线观看 | 麻豆传媒电影在线观看 | 一区二区三区在线电影 | 国产高清 不卡 | 欧美日韩中文国产一区发布 | 在线国产视频观看 | 久久久电影网站 | 91成人精品一区在线播放69 | 久久国产日韩 | 亚洲黄色免费网站 | 日韩av中文字幕在线免费观看 | 国产亚洲综合在线 | 激情图片久久 | 日韩v欧美v日本v亚洲v国产v | 亚洲精品国产精品国自 | 久久这里只有精品久久 | 麻豆免费视频 | 欧美精品免费视频 | 97超碰影视| 亚洲成人黄色在线观看 | 国产成人中文字幕 | 国产一区二区不卡视频 | 国产免费av一区二区三区 | 欧美视频xxx | 久久99视频精品 | 91精品国产高清自在线观看 | 国产美女在线精品免费观看 | 玖玖视频免费在线 | 最近最新最好看中文视频 | 欧美网址在线观看 | 欧美片一区二区三区 | 久久三级视频 | 亚洲,播放 | 亚洲综合小说电影qvod | 亚洲美女精品视频 | 国产精品扒开做爽爽的视频 | 日韩av在线网站 | 国内精品久久久久影院一蜜桃 | 天天色草| 特及黄色片| 亚洲播播| 久操视频在线观看 | 精品久久久久国产 | 久久久久久久久亚洲精品 | 午夜久久福利视频 | 日韩色爱 | 色在线免费视频 | 久久精品五月 | 久久久久久久久电影 | 在线国产视频观看 | 精品国模一区二区 | 国产资源在线视频 | 国产成人三级在线 | 欧美综合在线观看 | 日韩欧美高清不卡 | 不卡电影一区二区三区 | 欧美一级电影在线观看 | 国产亚洲一区二区在线观看 | 99精品久久久久久久久久综合 | 免费一级片视频 | 亚洲日韩欧美一区二区在线 | 日韩av电影网站在线观看 | 久久看片 | 久久三级毛片 | 97视频总站 | 视频三区在线 | 最新亚洲视频 | 91.精品高清在线观看 | 91色一区二区三区 | 国产系列 在线观看 | 99精品免费在线 | 国产日本在线观看 | 8090yy亚洲精品久久 | 伊人视频 | 精品v亚洲v欧美v高清v | 久久免费99精品久久久久久 | 在线看91| 精品黄色在线观看 | 日韩一级理论片 | 91精品入口 | 国产亚洲在 | 91av成人 | 我爱av激情网 | 亚洲综合色站 | 丝袜美女视频网站 | 中文字幕4 | 在线免费av观看 | 狠狠色丁香婷婷综合基地 | 亚洲电影免费 | 欧美性大战久久久久 | 国产麻豆传媒 | 国产福利精品在线观看 | 国精产品999国精产品视频 | 新版资源中文在线观看 | 国产精品婷婷 | 又黄又爽又色无遮挡免费 | 精品一区精品二区 | 亚洲国产欧美在线人成大黄瓜 | 888av| 91探花系列在线播放 | 四虎小视频 | 国产一区麻豆 | 成人在线观看资源 | 特黄特黄的视频 | 色播五月激情综合网 | 免费国产一区二区视频 | 在线观看久草 | 国产精品涩涩屋www在线观看 | 久久乐九色婷婷综合色狠狠182 | 国语对白少妇爽91 | 中文字幕日本在线观看 | aa一级片 | 午夜在线日韩 | 国产91在线观 | 日本视频久久久 | av中文字幕亚洲 | 久久久国产一区二区三区 | 亚洲视频axxx | 天堂在线视频免费观看 | 色婷婷国产精品一区在线观看 | 视频91在线 | 不卡的av | 欧美精品黑人性xxxx | 97色婷婷人人爽人人 | 精品国产久 | 国产亚洲字幕 | 特级毛片在线观看 | 日韩欧美一区二区三区视频 | 激情视频区| 久久久久久不卡 | 久久一区国产 | 午夜国产福利在线 | 欧美日韩一区二区三区免费视频 | 人人干网站 | 久久精品这里精品 | 91大神在线观看视频 | 日韩视频精品在线 | 激情久久久 | 日韩在线观看一区 | 在线播放国产一区二区三区 | 九九免费在线观看视频 | 日韩在线一二三区 | 极品国产91在线网站 | 国产精品美女久久久久久 | 亚洲精品观看 | 黄色大全免费网站 | 国产精品免费一区二区 | 色a资源在线| 激情av网 | 日韩精品一区二区三区不卡 | 国产精品婷婷午夜在线观看 | 免费亚洲电影 | 国产91影院| 欧洲精品视频一区二区 | 精品亚洲在线 | 免费在线观看亚洲视频 | 少妇视频一区 | 国产精品99免视看9 国产精品毛片一区视频 | 国产精品久久久久久久婷婷 | 91亚洲精品乱码久久久久久蜜桃 | 国产成人精品久久久久蜜臀 | 免费观看av | 国产一级二级三级在线观看 | 国产成人av免费在线观看 | 一区三区视频在线观看 | 精品免费观看 | 色小说在线 | 97精品视频在线 | 欧美日韩一区二区三区视频 | 亚洲人在线7777777精品 | 日本精品一区二区在线观看 | 中文字幕亚洲情99在线 | 999日韩 | 丝袜av网站| 欧美色操 | 一级片免费视频 | 国产在线国产 | 青青草华人在线视频 | 久久精品电影院 | 天天色天天操天天爽 | 国产精品嫩草影视久久久 | 日韩在线观看第一页 | 在线看片一区 | 精品国产乱码久久久久久三级人 | 丁香国产视频 | 国产精品成人国产乱一区 | 久草资源在线 | 国产精品久久久久久久婷婷 | 久久激情视频网 | 国产精品久久久毛片 | 在线观看中文字幕 | 国产美女免费观看 | 一区二区三区中文字幕在线 | 色婷五月天 | 国产午夜精品一区二区三区四区 | 在线成人性视频 | 99热高清 | 久久99热这里只有精品 | 国产剧情久久 | 国产在线视频在线观看 | 在线有码中文 | 国产成人精品一区在线 | 亚洲综合色激情五月 | 久久久激情网 | 欧美一级小视频 | 国产成人精品一区二区在线观看 | 午夜国产福利在线观看 | 精品中文字幕视频 | 久久久久久久av | 波多野结衣电影一区二区 | 欧美激情精品久久久久久 | va视频在线观看 | 色人久久| 综合网欧美| 一区二区三区动漫 | 色综合色综合色综合 | 精品国内自产拍在线观看视频 | 五月天婷婷在线观看视频 | 久久神马影院 | 二区三区毛片 | 玖玖999 | 国产美女无遮挡永久免费 | 国内精品免费久久影院 | 成人av片免费看 | 亚洲色五月 | 国产又粗又猛又色又黄视频 | 久久极品 | 狠狠躁18三区二区一区ai明星 | 国产做aⅴ在线视频播放 | 欧美在线1区 | 亚洲欧美婷婷六月色综合 | av在线超碰 | 丁香花五月 | 久久影院午夜论 | 国产不卡在线播放 | 中文字幕欧美日韩va免费视频 | 深夜视频久久 | 毛片3 | 麻豆精品国产传媒 | www.五月激情.com | 久久爱综合 | 91av手机在线 | 日韩二区三区 | 91黄色在线看 | 一区二区三区中文字幕在线观看 | 欧美日韩另类在线 | 日韩精品一卡 | 午夜视频一区二区三区 | 国产精品久久久久久久久久99 | 国产精品一区二区三区观看 | 国产黄色网 | av不卡中文字幕 | 99精品99 | 天天操天操 | 久久试看| 亚洲久草在线视频 | 在线观看视频三级 | 欧美日韩高清不卡 | 国产伦理一区二区三区 | 日韩在线免费视频 | 欧美精品在线观看免费 | 久久久不卡影院 | 91福利专区 | 亚洲精品视频在线 | 天天色天天干天天 | 国产亚洲人 | 亚洲人成在线观看 | 亚洲精品字幕在线 | 国产精品久久久久久久久久久久久久 | 日日干夜夜爱 | 69精品在线 | 亚洲伊人av | 国产亚洲精品久久久久久大师 | 欧美色噜噜噜 | 在线观看亚洲免费视频 | 欧美日韩中文字幕综合视频 | 亚洲成av人影片在线观看 | 香蕉手机在线 | 久久精品美女视频网站 | 国产又黄又爽又猛视频日本 | 亚洲欧美日韩一区二区三区在线观看 | 国产精品亚洲视频 | 九九免费在线观看视频 | 在线激情网| 夜夜操夜夜干 | 91麻豆精品国产91久久久久 | 999一区二区三区 | 青青久草在线视频 | 国产99在线免费 | 亚洲精品久久久久58 | 在线视频一区观看 | 国产成人精品一区二三区 | 黄色app网站在线观看 | 麻豆视频免费入口 | 久久久久区 | av一级片| 成人全视频免费观看在线看 | 久久桃花网 | 国产一区二区三区在线免费观看 | 国产九九在线 | 国产免费资源 | 欧美a级在线 | 精品高清美女精品国产区 | 日本中文乱码卡一卡二新区 | 亚洲国产精品资源 | 亚洲做受高潮欧美裸体 | www黄色com| 久久久麻豆 | 在线观看日韩专区 | 亚洲视频一区二区三区在线观看 | 成人91在线| 久免费视频 | 亚洲欧美在线视频免费 | 狠狠激情中文字幕 | av久久在线| 国产精品久久久影视 | 色婷婷97| 精品一区二区三区香蕉蜜桃 | 国产亚洲精品日韩在线tv黄 | 久久99久久99精品免观看软件 | 日韩av午夜在线观看 | 国产视频精品久久 | 2022久久国产露脸精品国产 | 精品久久久久久综合日本 | 欧美专区日韩专区 | 97色国产| 国产永久网站 | 99re国产| 成年人免费在线观看网站 | 日韩av一区二区在线 | 国产精品免费观看网站 | 97超碰在线久草超碰在线观看 | 欧美日产在线观看 | 97韩国电影| 五月导航 | 亚洲婷婷伊人 | 九九久久影院 | 日本久久久影视 | 高清不卡一区二区在线 | 欧美成人精品xxx | 国产精品欧美精品 | 国产丝袜| 久久久精品综合 | 亚洲精品黄色片 | 精品一区二区免费在线观看 | 久久伦理电影 | 色欧美视频 | 亚洲一级片在线观看 | 中文字幕影片免费在线观看 | 99精品视频精品精品视频 | 91精品一 | 欧美日本在线视频 | 国产一区精品在线观看 | 久久久久www| 色丁香婷婷| 国产对白av| 最新国产视频 | 亚洲精品国精品久久99热 | 午夜在线日韩 | 天天操天天干天天玩 | 99热在线国产精品 | 婷婷伊人网 | 中文字幕在线看人 | 亚洲美女在线一区 | 欧美精品中文字幕亚洲专区 | 国产一卡久久电影永久 | 久久精彩视频 | 国产精品久久久久aaaa九色 | 超碰在线公开 | 在线观看视频在线观看 | 国产精品视频永久免费播放 | 精品特级毛片 | 日韩成年视频 | 久久久久麻豆v国产 | 日韩欧美视频 | 天天操天天操天天爽 | 日韩城人在线 | 色婷婷亚洲 | 91理论片午午伦夜理片久久 | 在线国产日韩 | 成年人黄色免费视频 | 欧美一级黄色视屏 | 91高清免费看 | 久久99婷婷 | 国产免费成人 | 91av原创 | 在线国产精品视频 | 亚洲伊人第一页 | 欧美日韩免费视频 | 精品国产99国产精品 | 探花系列在线 | 99热在线免费观看 | 99精品免费在线 | 欧美污在线观看 | 91精品伦理| 女人18片 | 啪啪资源 | 在线观看免费一区 | 在线电影av | 韩国视频一区二区三区 | 91麻豆精品久久久久久 | 久久视频国产精品免费视频在线 | 久久av观看 | 欧美综合色在线图区 | 美女网站黄在线观看 | 麻豆精品视频在线观看免费 | 国产精品中文字幕在线观看 | 亚洲精品久久久蜜臀下载官网 | 综合色中色 | 国产成人三级在线观看 | 日韩高清国产精品 | 波多野结衣网址 | 丁香影院在线 | 欧美日韩在线视频免费 | 日本 在线 视频 中文 有码 | 在线观看亚洲精品视频 | 亚洲精品久久视频 | 人人爽人人澡 | av网站免费在线 | 日p视频在线观看 | 国产精品乱码在线 | 日本精品在线 | 婷婷色中文字幕 | 91chinesexxx| 日韩精品久久久久久 | 亚洲欧洲精品一区二区 | 色综合婷婷 | 久久国产精品影视 | 国产精品videossex国产高清 | 天天爽网站| 98涩涩国产露脸精品国产网 | www.国产精品 | 狠狠狠综合 | 天天亚洲综合 | 日本精品久久久久影院 | 国产aaa毛片| 在线欧美最极品的av | 久久字幕精品一区 | 在线高清av| 视频在线播放国产 | 国产精品久久久久av福利动漫 | 国产精品一区二区在线免费观看 | 97精品国产91久久久久久 | 不卡的av中文字幕 | 奇米影视777四色米奇影院 | 伊人久久婷婷 | 免费亚洲黄色 | 亚洲欧美怡红院 | 欧美视频www | 国产中文字幕在线观看 | 国产自制av | 免费一级片视频 | www色网站 | 91在线中字| 欧美精品在线观看一区 | 日本三级在线观看中文字 | 三级免费黄 | 天天色综合天天 | 久久久国产精品网站 | 欧美资源 | 中文字幕在线国产 | 亚洲精选在线 | 久久久精品 一区二区三区 国产99视频在线观看 | 一区二区三区四区久久 | 久草精品视频在线看网站免费 | 久久手机视频 | 在线国产一区 | 久草在线视频在线观看 | 免费男女羞羞的视频网站中文字幕 | 国产精品女主播一区二区三区 | 97免费公开视频 | 99视频在线观看一区三区 | 98福利在线 | 色婷婷免费| av电影中文 | 国产91精品在线播放 | 久久99精品久久久久久三级 | 天天色天天射天天干 | 91热爆在线观看 | 国产精品久久久久影院日本 | 久草免费在线 | 婷婷精品在线视频 | 黄色小网站免费看 | 九九精品在线观看 | 国产97视频在线 | 中文字幕欧美日韩va免费视频 | 亚洲成色777777在线观看影院 | 五月婷激情 | 青青草国产成人99久久 | 国产精品久久久久高潮 | 日韩av在线看 | 成人一级片免费看 | 亚洲国产一二三 | 亚洲精品天天 | 久久久午夜精品理论片中文字幕 | 国产精品久久久久久久久久久久冷 | 免费亚洲电影 | 日韩区在线观看 | 在线免费观看视频一区二区三区 | 99视频在线精品国自产拍免费观看 | 精品自拍网 | 黄色在线观看网站 | a在线观看免费视频 | 亚洲精品乱码久久久久久高潮 | 日日夜夜狠狠干 | 波多野结衣日韩 | 国产精品区免费视频 | 日本成人中文字幕在线观看 | 日本免费一二三区 | 九九久久影视 | 国产精品久久久久久久7电影 | 国产手机av | www亚洲视频 | 亚洲狠狠婷婷综合久久久 | 国产白浆视频 | 97成人在线 | 中文字幕丝袜一区二区 | 婷婷亚洲五月色综合 | 日韩在线观看小视频 | 综合激情av| 日韩一二区在线观看 | 91喷水 | 91大神视频网站 | 久久 一区 | 欧美日韩不卡在线观看 | 91麻豆国产福利在线观看 | 久久久精品国产一区二区 | 亚洲一级电影视频 | 精品理论片| 久久久久国产成人免费精品免费 | 国产婷婷色 | 狠狠狠的干 | 国产成人一二片 | 麻豆视频免费入口 | 婷婷综合激情 | 特黄一级毛片 | 亚洲精欧美一区二区精品 | 91免费试看 | 999久久国精品免费观看网站 | 中文字幕在线观看第一区 | 人人爱人人添 | 亚洲国产天堂av | 久久人人爽人人爽人人片av免费 | 天天色欧美 | 国产精品手机播放 | 在线黄色免费av | 91毛片在线| 精品一区二区三区在线播放 | 黄色三级久久 | 天天天综合网 | 亚洲精选99 | 手机在线免费av | 综合久久网站 | 成人小视频在线 | 国产精品h在线观看 | 亚洲日本精品 | 黄色免费电影网站 | 久久精品国产免费看久久精品 | 久久免费看毛片 | 日韩精品国产一区 | 精品亚洲欧美无人区乱码 | 亚洲欧美乱综合图片区小说区 | 久久人人97超碰国产公开结果 | 国产高清免费在线观看 | 欧美a√大片 | 97夜夜澡人人双人人人喊 | 色欧美日韩 | 黄色片网站大全 | 日韩激情片在线观看 | 久久久伊人网 | 在线播放你懂 | 亚洲毛片视频 | 在线免费看黄色 | 国产成人一区二区三区影院在线 | 精品一区电影 | 国产综合片 | 9色在线视频 | 精品国产理论片 | 狠狠干成人综合网 | av免费在线免费观看 | 免费网址在线播放 | 日日干干夜夜 | 国产又黄又猛又粗 | 在线免费av网站 | 日本午夜在线亚洲.国产 | 久久理论片 | 一区二区三区电影大全 | 国产在线不卡视频 | 欧美一二三区播放 | 欧美国产日韩一区二区三区 | av资源在线看 | 国产亚洲精品av | 精品亚洲视频在线观看 | 国产成人精品一区二三区 | 欧美91精品| 天堂网中文在线 | 91福利社在线观看 | 欧美在线1| 国产小视频在线免费观看 | 99资源网| 日韩欧美视频一区二区三区 | 456成人精品影院 | 五月激情天| 波多野结衣精品视频 | 日韩精品免费一区二区三区 | 国产一区二区精品久久91 | 久久av网|