国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频

面試官:知道時間輪算法嗎?在Netty和Kafka中如何應用的?

共 5698字,需瀏覽 12分鐘

 ·

2020-08-17 20:25

最近看 Kafka 看到了時間輪算法,記得以前看 Netty 也看到過這玩意,沒太過關注。今天就來看看時間輪到底是什么東西。
為什么要用時間輪算法來實現(xiàn)延遲操作?
延時操作 Java 不是提供了 Timer 么?
還有 DelayQueue 配合線程池或者 ScheduledThreadPool 不香嗎?
我們先來簡單看看 Timer、DelayQueue 和 ScheduledThreadPool 的相關實現(xiàn),看看它們是如何實現(xiàn)延時任務的,源碼之下無秘密。再來剖析下為何 Netty 和 Kafka 特意實現(xiàn)了時間輪來處理延遲任務。
如果在手機上閱讀其實純看字也行,不用看代碼,我都會先用文字描述清楚。不過電腦上看效果更佳。


Timer

Timer 可以實現(xiàn)延時任務,也可以實現(xiàn)周期性任務。我們先來看看 Timer 核心屬性和構造器。
核心就是一個優(yōu)先隊列和封裝的執(zhí)行任務的線程,從這我們也可以看到一個 Timer 只有一個線程執(zhí)行任務。
再來看看如何實現(xiàn)延時和周期性任務的。我先簡單的概括一下,首先維持一個小頂堆,即最快需要執(zhí)行的任務排在優(yōu)先隊列的第一個,根據(jù)堆的特性我們知道插入和刪除的時間復雜度都是 O(logn)。
然后 TimerThread 不斷地拿排著的第一個任務的執(zhí)行時間和當前時間做對比。如果時間到了先看看這個任務是不是周期性執(zhí)行的任務,如果是則修改當前任務時間為下次執(zhí)行的時間,如果不是周期性任務則將任務從優(yōu)先隊列中移除。最后執(zhí)行任務。如果時間還未到則調用 wait() 等待。
再看下圖,整理下流程。
流程知道了再對著看下代碼,這塊就差不多了。看代碼不爽的可以跳過代碼部分,影響不大。
先來看下 TaskQueue,就簡單看下插入任務的過程,就是個普通的堆插入操作。
再來看看 TimerThread 的 run 操作。

小結一下

可以看出 Timer 實際就是根據(jù)任務的執(zhí)行時間維護了一個優(yōu)先隊列,并且起了一個線程不斷地拉取任務執(zhí)行。
有什么弊端呢?
首先優(yōu)先隊列的插入和刪除的時間復雜度是O(logn),當數(shù)據(jù)量大的時候,頻繁的入堆出堆性能有待考慮。
并且是單線程執(zhí)行,那么如果一個任務執(zhí)行的時間過久則會影響下一個任務的執(zhí)行時間(當然你任務的run要是異步執(zhí)行也行)。
并且從代碼可以看到對異常沒有做什么處理,那么一個任務出錯的時候會導致之后的任務都無法執(zhí)行。

?

ScheduledThreadPoolExecutor

在說 ScheduledThreadPoolExecutor 之前我們再看下 Timer 的注釋,注釋可都是干貨千萬不要錯過。我做了點修改,突出了下重點。
Java 5.0 introduced ScheduledThreadPoolExecutor, It is effectively a more versatile replacement for the Timer, it allows multiple service threads. Configuring with one thread makes it equivalent to Timer。
簡單翻譯下:1.5 引入了 ScheduledThreadPoolExecutor,它是一個具有更多功能的 Timer 的替代品,允許多個服務線程。如果設置一個服務線程和 Timer 沒啥差別。
從注釋看出相對于 Timer ,可能就是單線程跑任務和多線程跑任務的區(qū)別。我們來看下。
繼承了 ThreadPoolExecutor,實現(xiàn)了 ScheduledExecutorService??梢远ㄐ圆僮骶褪钦>€程池差不多了。區(qū)別就在于兩點,一個是 ScheduledFutureTask ,一個是 DelayedWorkQueue。
其實 DelayedWorkQueue 就是優(yōu)先隊列,也是利用數(shù)組實現(xiàn)的小頂堆。而 ScheduledFutureTask 繼承自 FutureTask 重寫了 run 方法,實現(xiàn)了周期性任務的需求。

小結一下

ScheduledThreadPoolExecutor 大致的流程和 Timer 差不多,也是維護一個優(yōu)先隊列,然后通過重寫 task 的 run 方法來實現(xiàn)周期性任務,主要差別在于能多線程運行任務,不會單線程阻塞。
并且 Java 線程池的設定是 task 出錯會把錯誤吃了,無聲無息的。因此一個任務出錯也不會影響之后的任務。

?

DelayQueue

Java 中還有個延遲隊列 DelayQueue,加入延遲隊列的元素都必須實現(xiàn) Delayed 接口。延遲隊列內部是利用 PriorityQueue 實現(xiàn)的,所以還是利用優(yōu)先隊列!Delayed 接口繼承了Comparable 因此優(yōu)先隊列是通過 delay 來排序的。
然后我們再來看下延遲隊列是如何獲取元素的。

小結一下

也是利用優(yōu)先隊列實現(xiàn)的,元素通過實現(xiàn) Delayed ?接口來返回延遲的時間。不過延遲隊列就是個容器,需要其他線程來獲取和執(zhí)行任務。
這下是搞明白了 Timer 、ScheduledThreadPool 和 DelayQueue,總結的說下它們都是通過優(yōu)先隊列來獲取最早需要執(zhí)行的任務,因此插入和刪除任務的時間復雜度都為O(logn),并且 Timer 、ScheduledThreadPool 的周期性任務是通過重置任務的下一次執(zhí)行時間來完成的。
問題就出在時間復雜度上,插入刪除時間復雜度是O(logn),那么假設頻繁插入刪除次數(shù)為 m,總的時間復雜度就是O(mlogn),這種時間復雜度滿足不了 Kafka 這類中間件對性能的要求,而時間輪算法的插入刪除時間復雜度是O(1)。我們來看看時間輪算法是如何實現(xiàn)的。

?

時間輪算法

俗話說藝術源于生活,技術也能從日常生活中找到靈感。咱們先來看塊表,嗯金色的表。
都看清楚了吧,時間輪就是和手表時鐘很相似的存在。時間輪用環(huán)形數(shù)組實現(xiàn),數(shù)組的每個元素可以稱為槽,和 HashMap一樣稱呼。
槽的內部用雙向鏈表存著待執(zhí)行的任務,添加和刪除的鏈表操作時間復雜度都是 O(1),槽位本身也指代時間精度,比如一秒掃一個槽,那么這個時間輪的最高精度就是 1 秒。
也就是說延遲 1.2 秒的任務和 1.5 秒的任務會被加入到同一個槽中,然后在 1 秒的時候遍歷這個槽中的鏈表執(zhí)行任務。
從圖中可以看到此時指針指向的是第一個槽,一共有八個槽0~7,假設槽的時間單位為 1 秒,現(xiàn)在要加入一個延時 5 秒的任務,計算方式就是 5 % 8 + 1 = 6,即放在槽位為 6,下標為 5 的那個槽中。更具體的就是拼到槽的雙向鏈表的尾部。
然后每秒指針順時針移動一格,這樣就掃到了下一格,遍歷這格中的雙向鏈表執(zhí)行任務。然后再循環(huán)繼續(xù)。
可以看到插入任務從計算槽位到插入鏈表,時間復雜度都是O(1)。那假設現(xiàn)在要加入一個50秒后執(zhí)行的任務怎么辦?這槽好像不夠???難道要加槽嘛?和HashMap一樣擴容?
不是的,常見有兩種方式,一種是通過增加輪次的概念。50 % 8 + 1 = 3,即應該放在槽位是 3,下標是 2 的位置。然后 (50 - 1) / 8 = 6,即輪數(shù)記為 6。也就是說當循環(huán) 6 輪之后掃到下標的 2 的這個槽位會觸發(fā)這個任務。Netty 中的 HashedWheelTimer 使用的就是這種方式。
還有一種是通過多層次的時間輪,這個和我們的手表就更像了,像我們秒針走一圈,分針走一格,分針走一圈,時針走一格。
多層次時間輪就是這樣實現(xiàn)的。假設上圖就是第一層,那么第一層走了一圈,第二層就走一格。
可以得知第二層的一格就是8秒,假設第二層也是 8 個槽,那么第二層走一圈,第三層走一格,可以得知第三層一格就是 64 秒。
那么一格三層,每層8個槽,一共 24 個槽時間輪就可以處理最多延遲 512 秒的任務。
而多層次時間輪還會有降級的操作,假設一個任務延遲 500 秒執(zhí)行,那么剛開始加進來肯定是放在第三層的,當時間過了 436 秒后,此時還需要 64 秒就會觸發(fā)任務的執(zhí)行,而此時相對而言它就是個延遲 64 秒后的任務,因此它會被降低放在第二層中,第一層還放不下它。
再過個 56 秒,相對而言它就是個延遲 8 秒后執(zhí)行的任務,因此它會再被降級放在第一層中,等待執(zhí)行。
降級是為了保證時間精度一致性。Kafka內部用的就是多層次的時間輪算法。

Netty中的時間輪

在 Netty 中時間輪的實現(xiàn)類是 HashedWheelTimer,代碼中的 wheel 就是上圖畫的循環(huán)數(shù)組,mask 的設計和HashMap一樣,通過限制數(shù)組的大小為2的次方,利用位運算來替代取模運算,提高性能。tickDuration 就是每格的時間即精度。可以看到配備了一個工作線程來處理任務的執(zhí)行。
接下來我們再來看看任務是如何添加的。
可以看到任務并沒有直接添加到時間輪中,而是先入了一個 mpsc 隊列,我簡單說下 mpsc 是 JCTools 中的并發(fā)隊列,用在多個生產(chǎn)者可同時訪問隊列,但只有一個消費者會訪問隊列的情況。篇幅有限,有興趣的朋友自行了解實現(xiàn)。
然后我們再來看看工作線程是如何運作的。
很直觀沒什么花頭,我們先來看看 waitForNextTick,是如何得到下一次執(zhí)行時間的。
簡單的說就是通過 tickDuration 和此時已經(jīng)滴答的次數(shù)算出下一次需要檢查的時間,時候未到就sleep等著。
再來看下任務如何入槽的。
注釋的很清楚了,實現(xiàn)也和上述分析的一致。
最后再來看下如何執(zhí)行的。
就是通過輪數(shù)和時間雙重判斷,執(zhí)行完了移除任務。

小結一下

總體上看 Netty 的實現(xiàn)就是上文說的時間輪通過輪數(shù)的實現(xiàn),完全一致??梢钥闯鰰r間精度由 TickDuration 把控,并且工作線程的除了處理執(zhí)行到時的任務還做了其他操作,因此任務不一定會被精準的執(zhí)行。
而且任務的執(zhí)行如果不是新起一個線程,或者將任務扔到線程池執(zhí)行,那么耗時的任務會阻塞下個任務的執(zhí)行。
并且會有很多無用的 tick 推進,例如 TickDuration 為1秒,此時就一個延遲350秒的任務,那就是有349次無用的操作。
但是從另一面來看,如果任務都執(zhí)行很快(當然你也可以異步執(zhí)行),并且任務數(shù)很多,通過分批執(zhí)行,并且增刪任務的時間復雜度都是O(1)來說。時間輪還是比通過優(yōu)先隊列實現(xiàn)的延時任務來的合適些。

?

Kafka 中的時間輪

上面我們說到 Kafka 中的時間輪是多層次時間輪實現(xiàn),總的而言實現(xiàn)和上述說的思路一致。不過細節(jié)有些不同,并且做了點優(yōu)化。
先看看添加任務的方法。在添加的時候就設置任務執(zhí)行的絕對時間。
那么時間輪是如何推動的呢?Netty 中是通過固定的時間間隔掃描,時候未到就等待來進行時間輪的推動。上面我們分析到這樣會有空推進的情況。
而 Kafka 就利用了空間換時間的思想,通過 DelayQueue,來保存每個槽,通過每個槽的過期時間排序。這樣擁有最早需要執(zhí)行任務的槽會有優(yōu)先獲取。如果時候未到,那么 ?delayQueue.poll 就會阻塞著,這樣就不會有空推進的情況發(fā)送。
我們來看下推進的方法。
從上面的 add 方法我們知道每次對比都是根據(jù)expiration < currentTime + interval 來進行對比的,而advanceClock 就是用來推進更新 currentTime ?的。

小結一下

Kafka 用了多層次時間輪來實現(xiàn),并且是按需創(chuàng)建時間輪,采用任務的絕對時間來判斷延期,并且對于每個槽(槽內存放的也是任務的雙向鏈表)都會維護一個過期時間,利用 DelayQueue 來對每個槽的過期時間排序,來進行時間的推進,防止空推進的存在。
每次推進都會更新 currentTime 為當前時間戳,當然做了點微調使得 currentTime 是 tickMs 的整數(shù)倍。并且每次推進都會把能降級的任務重新插入降級。
可以看到這里的 DelayQueue 的元素是每個槽,而不是任務,因此數(shù)量就少很多了,這應該是權衡了對于槽操作的延時隊列的時間復雜度與空推進的影響。

?

總結

首先介紹了 Timer、DelayQueue 和 ScheduledThreadPool,它們都是基于優(yōu)先隊列實現(xiàn)的,O(logn) 的時間復雜度在任務數(shù)多的情況下頻繁的入隊出隊對性能來說有損耗。因此適合于任務數(shù)不多的情況
Timer 是單線程的會有阻塞的風險,并且對異常沒有做處理,一個任務出錯 Timer 就掛了。而 ScheduledThreadPool 相比于 Timer 首先可以多線程來執(zhí)行任務,并且線程池對異常做了處理,使得任務之間不會有影響。
并且 Timer 和 ScheduledThreadPool 可以周期性執(zhí)行任務。而 DelayQueue 就是個具有優(yōu)先級的阻塞隊列。
對比而言時間輪更適合任務數(shù)很大的延時場景,它的任務插入和刪除時間復雜度都為O(1)。對于延遲超過時間輪所能表示的范圍有兩種處理方式,一是通過增加一個字段-輪數(shù),Netty 就是這樣實現(xiàn)的。二是多層次時間輪,Kakfa 是這樣實現(xiàn)的。
相比而言 Netty 的實現(xiàn)會有空推進的問題,而 Kafka 采用 DelayQueue 以槽為單位,利用空間換時間的思想解決了空推進的問題。
可以看出延遲任務的實現(xiàn)都不是很精確的,并且或多或少都會有阻塞的情況,即使你異步執(zhí)行,線程不夠的情況下還是會阻塞。


巨人的肩膀

《深入理解Kafka:核心設計與實踐原理》
https://www.cnblogs.com/luozhiyun/p/12075326.html

有道無術,術可成;有術無道,止于術

歡迎大家關注Java之道公眾號


好文章,我在看??

瀏覽 55
點贊
評論
收藏
分享

手機掃一掃分享

分享
舉報
評論
圖片
表情
推薦
點贊
評論
收藏
分享

手機掃一掃分享

分享
舉報

感谢您访问我们的网站,您可能还对以下资源感兴趣:

国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频 中文字幕牛牛婷婷| 久久人人超碰| 91福利视频网| 国产精品激情| 天天干天天拍| 久久久噜噜噜| 日韩久久婷婷| 97精品人人A片免费看| 日韩欧美一区二区三区不卡| 亚洲视频在线看| 久久国产片| 日韩夜夜操| 丁香AV| 日本女人操逼视频| 亚洲加勒比在线| 欧美成人在线视频网站| 无码无码一区二区三区| 中文字幕免费在线观看视频| 先锋AV资源在线| 久久久精品国产视频| 天堂资源地址在线| 久久久精品| 这里有精品| 乱伦三级| 亚洲AV无码成人精品区久| 中文字幕永久在线视频v1.0| 999日本不卡影院| 制服丝袜人妻| 黄色小视频在线免费观看| 一级A片免费| 在线看的av| 在线观看免费欧美操逼视频| 91成人在线| 欧美色交| 亚洲第一页在线| 99久久99九九九99九他书对| 粉嫩99精品99久久久久久特污兔 | 欧美熟妇性爱视频| 欧美性爱天天| 色逼高清| 高颜值呻吟给力| 99国产精品| 国产强伦轩免费视频在线| 亚洲高清无码专区| 国产Av影视| 日韩做爱网站| 国产一级做a爱免费视频| 天干夜操| 男同人到爽无套狂欢| 欧美成人一区二区三区| 热久久中文字幕| 国产永久精品| 一级黄色免费看| 69国产精品视频免费观看| 一区无码精品| 亚洲在线观看网站| 亚洲视频在线看| 成人特级毛片全部免费播放| 蜜桃视频成人app| 国产真实露脸乱子伦对白高清视频| 99Re66精品免费视频| 久久精品视频网站| 玖玖av| 91久久精品无码一区| 国产l精品久久久久久久久久 | 国产综合久久久777777色胡同 | 自拍偷拍第一页| 人人操人人插| 伊人91| 色图欧美色图| 人妻少妇无码精品| 怡春院欧美| 无码一区视频| 99久久婷婷国产综合| 91亚洲一区| 亚洲一卡| 人妻懂色av粉嫩av浪潮av| 亚洲AV中文| 亚洲国产中文字幕| 黄页网站在线免费观看| 日本乱伦视频| 亚洲精品黄色| 欧美一区二区在线观看| 黄网站在线观看| 精品黑人| 激情视频免费在线观看| 九九热视频在线观看| 91精品啪| 婷婷高清无码| 婷婷国产精品视频| 久操视频免费看| www.日逼| 免费人成视频在线| 亚洲黄色Av| 国产中文字幕第一页| 成人黄网站免费观看| 国产综合亚洲精品一区二| 黄色免费在线观看网站| 久久久无码精品亚洲日韩男男| 亚洲污网| 成人做爰100部片视频| 日韩AA视频| 亚洲无码p| 色婷操逼| 在线观看视频日韩| 国产精品aaa| AV天堂手机| 亚洲高清视频无码| 精品国产免费无码久久噜噜噜AV| 超碰免费视| 密臀91| 亚洲日韩在线视频观看| 五月天婷婷在线视频| 女邻居的B好大| 人人摸天天| 午夜丁香婷婷| 精品色哟哟| 69国产成人综合久久精品欧美| 成人免费视频在线| 精品无码人妻一区二区媚黑| 日屄电影| 91黑人丨人妻丨国产丨| 大香蕉免费网站| 中文字幕日本无码| 午夜福利视频网| 久久成人三级片| 成人视频一区| 久久婷婷亚洲| 先锋影音AV在线| 五月丁香成人网| 日韩精品人妻中文字幕有码| 一区二区三区不卡视频| 狠狠干狠狠操| 麻豆91免费视频| 欧美视频A| 三级片网页| 人人人射| 黄色A片免费| 成人做爰黄A片免费| 成人网站www污污污网站公司| 爱逼综合| 麻豆传媒在线播放| 麻豆午夜成人无码电影| 91麻豆精品传媒国产| 日产久久视频| 成人A片在线观看| 国产97视频| 日本三级网站| 91香蕉在线观看视频在线播放| 欧美高清久久| 欧美日韩美女| 真实白嫖91探花无码| 大香蕉色伊人| 五月无码| 中文字幕免费高清在线观看| 亚洲精品成人电影| 日韩一区二区在线观看| footjobvk| 欧美日韩h| 唐嫣一级婬片A片AAA| 操逼超碰| 国产性爱自拍视频| 国产小视频在线播放| 夜夜嗨AV一区二区三区| 少妇熟女网| 欧美一级在线| 久久久精品电影91| 激情青青草| 全国男人的天堂网站| 久色视频在线| 丁香五月亚洲| 欧美在线视频一区| 草久视频| 玉米地一级婬片A片| 亚洲操逼网| 天天爽夜夜爽精品成人免费| 黄色三极片| 欧美日屄视频| 欧美又粗又长| 欧洲成人免费视频| 一区二区三区毛片| 亚洲一区| 欧美三级免费| 久草视频在线免费看| 无码日韩人妻精品久久蜜桃| 超碰最新在线| 青青网站| 91蝌蚪久久| 四川BBB搡BBB爽爽爽欧美| 一级AAAAA片裸体做受| 午夜天堂精品久久久久9| 深夜福利18| 婷婷中文在线| av资源在线| 人妻少妇被猛烈进入中文字幕 | 丁香激情视频| 成人无码激情| 精品国产午夜福利在线观看| 成人无码动漫A片| 有码中文字幕| 一区二区Av| 国产在线精品自拍| 国产高清免费无码| 91好爽| 亚洲A√| 亚洲va在线∨a天堂va欧美va | 国产亚洲色情| 国产又爽又黄免费观看| 高清无码视频18| 97在线观看免费| 日本黄色视频免费看| 波多野结衣高清av久久直播免| 毛片A| 777超碰| 免费视频91蜜桃| 一区成人| 韩国精品一区二区| 亚洲午夜福利| 在线观看免费黄视频| 欧美精品乱码99久久蜜桃| 五月天成人网址| 日本三级网| 最美孕交vivoestv另类| 久草大香蕉在线| 人人插人人射| 69人妻人人澡人人爽人人精品 | 久亚洲| 国产女人18毛片水真多成人如厕| 日韩免费观看视频| 亚洲黄色视频网站| 中文字幕高清视频| 黄片无码视频| 色图欧美色图| 中文字幕国产| 国产精品v欧美精品v日韩精品 | 99国产在线观看免费视频| 97超碰资源| 日本人妻视频| 超碰在线免费播放| 黄在观看线| 成人亚洲AV日韩AV无码| 亚洲无码视频在线| 五月天啪啪视频| 亚洲熟女av中文字幕| 日韩AV免费看| 国产无码成人电影| 欧美亚洲视频在线观看| 男人天堂色| 亚洲高清在线视频| 色色网站视频| 欧美性爱69| 国产av中文字幕| 久久伊人春色| 人妻在线免费视频| 在线免费观看黄色片| 成人黄色电影| 色男人的天堂网| 日日操日日| 中文字幕在线一区| www.777熟女人妻| 美女福利视频| 五月丁香影院| 久久燥| 秘亚洲国产精品成人网站| 一区二区三区高清| 国产免费一区二区三区免费视频| wwwwww黄| 日精品| 国产不卡网| 夜夜爽7777精品国产三级| 国产三级国产三级国产| 成人免费观看的毛视频| 无码精品黑人| 日韩国无码| 人妻无码视频| 男人的天堂aa| 国产一级片在线播放| 男人av网站| 婷婷亚洲精品| 免费一级做a爱片毛片A片小说 | 激情视频在线播放| 日本视频一区二区三区| 神马午夜精品95| 无套内射在线| 蜜桃视频一区二区| 欧美成人片免费看| 中文无码观看| 国产在线观看国产精品产拍| 人人操人人干人人| 天堂va欧美va亚洲va在线| 内射免费看| 亚洲欧洲久久| 欧美一区二区三区成人片在线| 男女av| 欧美色精品| 国内自拍av| 操逼网址| 亚洲群交视频| 亚洲日韩Av无码中文字幕美国 | 亚洲有码在线| 日本a一级片| 国产l精品久久久久久久久久| 99久久婷婷国产综合精品草原 | 欧美草逼网| 色婷婷视频在线| 国产精品自拍一区| 无码视频在线看| 高清无码视频网站| av视屏| 手机看片1204| 足交| 中国老女人性爱视频| 国产黄色在线| 亚洲婷婷在线观看| 做爱无码| 中文字幕资源站| 国产亚洲中文| 久久青青| 嫩BBB槡BBBB槡BBBB百度| 日本色色色| 日夜夜操| 91精品内射| AV在线不卡中文| 97亚洲视频| 国产人妖视频| 国产又爽又黄视频| 亚洲五月婷| AV天堂小说网| 五月天在线观看| 欧洲黑人成人A版免费视频| 亚洲男女免费视频| 日韩乱伦小说| 超碰1999| 丝瓜视频| 伊人大久久| 黄a在线观看| 色欲成人AV| 高清无码二区| 污污的网站18| 97中文字幕在线| 国产黄色录像| 国产高清小视频| 国产一级AAAAA片免费| 美女被操面费网站| www.yw尤物| 日韩无码波多野结衣| 男人的天堂视频网站| 亚洲第一色在线| 麻豆日韩| 波多野吉衣视频| www.丁香五月| 日韩操逼视频| 成人激情免费视频| 免费在线观看AV| 五十路老国产| 樱桃码一区二区三区| 影音先锋色AV| 伊人99| 丁香婷婷综合网| 国产女人18毛片水真多1| 天天色网站| 欧美日逼网| 天天干强奸视频在线综合| 日韩精品一二区| 奶大丰满一乱一视频一区二区三区在| 中文字幕35页| 波多野结衣无码视频在线观看 | 日韩在线视频二区| 久久视频免费| 欧洲在线观看| 狠狠撸在线观看| 亚洲无码黄色片| 成人影音先锋| 久草视频在线免费播放| 香蕉婷婷| 地表最强网红八月未央道具大秀| 亚韩无码| 亚洲五月丁香婷婷| 色婷婷综合网| 波多野结衣大战黑人| 青草福利视频| 无码入口| 日韩中文性受视频| AV无码免费一区二区三区不卡| 亚洲色在线视频| 特级婬片A片AAA毛片AA做头 | 一区二区免费视频| 伦理被部长侵犯HD中字| 手机看片福利一区二区| 熟睡侵犯の奶水授乳在线| 亚洲色色视频| 亚洲老鸭窝| 老熟女--91XX| 欧美性69| 亚洲人人18XXX—20HD| 国产成人AV在线| 亚洲黄色一级电影| 亚洲高清无码免费| 免费十无码| a色视频| 熟女视频91| 无码精品人妻一区二区| 97人妻一区二区三区| 久久久桃色| 91九色91蝌蚪91成人| 亚洲人成777| 国产Av一区二区三区| 亚洲色涩| 影音先锋成人资源AV在线观看| 俺去俺来WWW色官方| 免费观看黄色成人网站| 欧美黑吊大战白妞欧美大片| 国产1级a毛a毛1级a毛1级| 亚洲香蕉视频| 欧美另类色| aaa国产精品| 99香蕉视频| 狠狠干狠狠爱| 亚洲俺去了| 陈冠希和张柏芝mv| 国产1区2区3区中文字幕| 中文人妻av| 欧洲成人免费视频| 成年人黄色在线观看| 久久青青| 丁香五月天AV| 老熟女搡BBBB搡BBBB视频| 无码一区二区三| 日韩欧美V| 开心五月色婷婷综合开心网| 嫩BBB嫩BBB嫩BBB| 日本一级大片| 超碰自拍97| 天堂成人| 成人免费激情视频| 日韩V欧美| 18XXX亚洲HD护士JD| 黄色片大全| 中文字幕亚洲中文字幕| 亚洲a在线观看| 2026国产精品视频| 亚洲超级高清无码第一在线视频观看 | 北条麻妃人妻中文无码| 国产毛片精品一区二区色欲黄A片| 人妻少妇偷人精品无码免费| 欧美级毛片一夜| 成人性爱视频网| 国产精品久久久久久久免牛肉蒲 | 亚洲一级AV| 真人一级毛毛片| 黄色视频一区二区| 刘玥91精一区二区三区| 久久aaaa| 日本在线不卡一区| 91人人澡人人爽人人看| 欧美成人高清视频| 色九九视频| 日韩一级无码| 看毛片网址| 人妻在线免费视频| 国产AV一区二区三区四区五区| 日韩成人在线播放| 欧美大香蕉伊人| 天天插综合| 国产黄色免费看| 18禁黄色免费网站| 欧美AAA大片| 免费无码视频一区二区| 色婷婷影院| 坏男人内射老太太| 亚洲五月激情| 日韩一级黄色电影| 欧美黄色免费观看| 亚洲天堂国产| 国产乱婬AV片免费| 国产在线观看免费视频| 91老熟女视频| www在线播放| 欧美又粗又大AAA片| 四虎国产| 久久久久久久无码| 草逼123| 成人国产精品免费观看| 久久无码一区| 亚洲人天堂| 黄色大片视频| 国产操比网| 日本免费黄色片| 国产丝袜在线视频| 揉BBB搡BBB搡BBB| 长泽梓黑人初解禁BDD07| 亚洲一区二区av| 久草手机视频在线观看| 深爱激情综合网| 人人爱人人妻人人操| 亚洲视频综合| 性生活黄色视频| 懂色av蜜臀av粉嫩av分| 人妻无码HEYZO少妇精品 | 国产无遮挡又黄又爽在线观看| 婷婷五月天激情四射| 欧美一区二区在线视频| 无码一区视频| 麻豆传媒一区| 麻豆传媒视频观看| 亚洲资源网| 久久久久久久大香蕉| 久久久久久大香蕉| 成人黄色性视频| 中文字幕第4页| 久久久成人免费电影| 在线免费观看黄色视频网站 | 欧美精品一区二区三区蜜臀| 毛片网页| 人人操在线播放| 无码视频在线看| 婷婷五月天色综合| 日韩在线观看视频免费| 男人天堂网站| 久久精品国产亚洲| 欧美一区二区三区成人片在线| 国产午夜精品一区二区三区四区| 69视频在线观看免费| 蜜桃91精品秘入口| 国产性爱在线观看| 91av无码| 精品少妇人妻一区二区| 91ThePorn国产| 國模久久| 免费无码成人片在线观看在线| 在线有区别亚洲| AA丁香综合激情| 狠狠噜噜| 中文字幕精品一区久久久久| 婷婷五月天青草| 欧美级毛片一进一出| 一二三区视频| 大香蕉尹人视频| 丁香五月综合啪啪| 国产美女做爱| 日本一级特黄电影| 香蕉伊人网| 成人AV中文解说水果派| 久久另类TS人妖一区二区| 荫蒂添的高潮免费视频| 亚洲国产精品18久久久久久| 日韩人妻无码一区二区三区中文 | 在线日韩国产| 青娱乐亚洲精品视频| 秋霞福利| 日韩av电影在线观看| 国产精品久久久久久久久夜色| 国产成人免费在线视频| 麻豆一区在线| 高清无码高潮| www日韩无码| 亚洲国产成人精品女人久久久| 外国一级片| 香蕉网址| 免费在线观看黄色片| 综合亚洲视频| 国产精品久久久久久久久借妻| 韩日成人| 久久精品国产亚洲AV麻豆痴男| 伊人成人在线视频| 国产成人AⅤ| 国产精品国产精品国产专区| 日韩在线观看视频网站| 国产A级视频| 亚洲AV毛片成人精品网站| 一区二区小视频| 国产精品无码永久免费A片| 老熟女17页一91| 中文字幕av久久久久久欧洲尺码 | 97大香蕉在线视频| 久久青草免费视频| 无码三级在线播放| 亚洲AV无码成人精品区东京热| chip少妇性| 强伦轩一区二区三区四区播放方式| 高清无码三级| 综合在线视频| 亚洲黄色影视| 99久久99久久久精品棕色圆| 开心激情婷婷| 刘玥一级婬片A片AAA| 亚洲高清无码一区二区| zzjicom| 欧美屄视频| 台湾省成人网站| 欧美黄色网| 天天视频黄| 人人爽人人澡| 婷婷伊人大香蕉| 亚洲无码在线免费视频| 91丝袜一区在线观看| 俺去也www俺去也com| 91久久久久久久18| 成人大香蕉视频| 狼友免费视频| 波多野结衣Av在线| 摸BBB槡BBBB搡BBB,,,,,| 色吧视频| 人妻精品一二三| 欧美色五月| 天天操夜夜爽| 夜夜国自一区| 国产suv精品一区二区6| 日韩无码观看| 日韩无码首页| 亚洲精品国产精品国自产曰本| 夜色福利在线| 色婷婷成人| 性生活黄色视频| 成人免费激情视频| 亚洲精品久久久久久久久蜜桃 | 國產精品777777777| 亚洲丰满熟妇| 蜜臀精品色无码蜜臀AV| 麻豆熟妇乱妇熟色A片在线看| 国精产品九九国精产品| 人人人妻人人人操| 超碰日| AV在线播放中文字幕| 操操操操操操操操逼| 水果派解说A∨无码区| 欧美老女人操逼群| 成人肏逼视频在线| 女人的天堂AAA| www一个人免费观看视频www| 欧美韩日高清精彩视频| 伊人大香蕉视频| 人人干人人看| 亚洲一级二级| 三级久久| 久久草| 日韩一级A片| 成年人在线视频| 日韩成人无码一区二区视频| 日韩另类| 国产A片| 91内射| 日韩欧美中文| 福利一区二区视频网| 三洞齐开Av在线免费观看| 免费高清无码| 无码东京热国产| 国产免费一区二区三区网站免费| 无码不卡视频在线观看| 久久久久久无码日韩欧美电影| 欧美日韩视频一区二区三区| 激情导航| 亚洲激情性爱| 97操逼网| 亚洲日日干| 久草视频新| 中文字幕在线播放av| 国产成人久久精品麻豆二区| 国产日韩欧美成人| 色老久久| 亚洲一区二区免费视频| 欧美黄色免费在线观看| 影音先锋成人AV资源| 99久re热视频精品98| 99reav| 欧美亚洲图区| 91超碰久久在线| 在线无码中文| a4yy午夜福利| 国产一级AV国产免费| 欧美午夜福利电影| A片小视频| 日本一区二区在线| 日本不卡一区| 欧美操操操| 欧美18禁黄免费网站| 色色色成人视频| 亚洲成人自拍无码| 澳门午夜黄色在线| 蜜臀网在线观看| 超碰九一| 日本亚洲中文字幕| 国产高清成人| 激情人妻AV| 婷婷五月综合在线| 爱搞搞视频| 国产黃色AAA片| 三级国产| 日本a视频| 无码任你躁久久久久| 亚洲无码激情在线| 亚洲中文字幕日本| 91AV在线观看视频| 国产老女人农村HD| AV日日| 国产丝袜人妖TS系列| 爽妇综合网| 激情深爱| 先锋成人资源| 久久久在线| 成人福利视频| 豆花成人在线| 婷婷五月天免费视频| 偷拍视频图片综合网| 一级黄色电影在线观看| 四虎永久www成人影院| 在线播放国产精品| 少妇搡BBBB搡BBB搡澳门| 性欧美| 国产日女人| 逼逼网| 波多野结衣东京热| 99热免费在线观看| 国产免费一区二区三区最新不卡| 亚洲黄色av| 波多野结衣av在线观看窜天猴| 中文字幕精品久久久久人妻红杏Ⅰ | 99精品一区二区三区| 波多野结衣视频无码| 午夜免费无码| 亚洲综合成人网| 欧美A区| 久久99综合| 黄片在线视频| 中文字幕视频一区| 91视频综合网| 黑人一区二区三区四区| 日韩爆乳一区二区三区| 人人摸人人插| 欧美大屌视频| 免费观看无码| 成人激情视频A极| 超碰在线最新| 国产性爱免费视频| 久久播视频| 日韩中文一区| 欧美三级片网址| 91老熟女| 色福利网| 黄片在线网站| 天堂网在线播放| 久久不卡视频| 91探花视频精选在线播放| 中文字幕在线免费| JlZZJLZZJlZZ亚洲女人17 | 青青国产| 女人自慰网站在线观看| 中文字幕成人在线播放| 天天综合天天| 天天操人人| 欧美性69| 99这里只有精品| 亚洲一级免费在线观看| 91丨PORN首页| 免费Av在线| 日本一本不卡| 国产艹逼| 成人免费视频性爱| 天天草夜夜操| 日韩动态视频| 狠狠干天天干| 狠狠撸狠狠干| 国产男女性爱视频播放| 国产黄色直播| 日韩av第一页| 丰满熟妇人妻中文字幕| 无码视频一区| 亚洲婷婷三级成人网| 欧美一级成人片| 成人在线中文| 无码人妻精品一区二区三区蜜臀百度| 五月激情网站| 亚洲AV在线人妻| 麻豆蜜桃91无码| 青青草逼视频| 四虎永久在线精品| 免费无码在线观看| 人人摸人人操人人摸| av视屏| 亚洲不卡中文字幕| 国产福利在线观看| 国产黄色一级片| 在线观看AⅤ| 黄色无码在线观看| 夜夜操网站| 天天干天天射天天操| 先锋影音资源站av每日资源在线| 97人妻人人澡人人| 国产女人18毛片水18精品| 韩日一区| 欧美韩日高清精彩视频| 欧美a∨| 欧美日韩性爱网站| 亚洲第一页在线观看| 欧美激情网站| 欧美熟妇擦BBBB擦BBBB| 久草资源在线观看| 成人国产AV| 色青草影院久久综合| 国产女人水真多18毛片18精品| 91精品无码一区二区| 国产一区二区三区无码| 欧美色色网| 老熟女网站| 性生活无码| 热热av| 中日美朝美女一级片免费看| 日韩无码视频播放| 亚洲视频网站在线观看| 日本大香蕉视频| 色欧美亚洲| 五月丁香六月色| 日韩无码免费看| 久热综合| 成人毛片一区二区三区| 一级在线播放| 99自拍| 91大神免费观看| 99久免费视频| 69AV视频在线观看| a视频在线免费观看| av色站| 天天爱av| 制服乱伦| 久热久| 日韩无码一| 青青草91视频| 无码一道本| 大香蕉操B| 亚洲无码人妻视频| 日本黄色中文字幕| 免费无码视频一区二区| 探花一区二区| 五月婷亚洲精品AV天堂| 97超碰人人| 久久免费成人电影| 久久久久久久大香蕉| 国产伦子伦一级A片免费看小说 | 国产91精品久久久天天| 黄色www| 做爱视频91| 激情综合网五月| 国产理论| 69av电影| 青青操成人在线视频| 天天爽天天爽| 婷婷五月大香蕉| 免费Av在线| 国产www在线观看| 人妻丝袜蕾丝高跟双飞| 亚洲有码中文字幕| 中文字幕日韩在线视频| 精品一区二区三区蜜桃臀www| 日本一区免费观看| 久久这里都是精品| 91最新在线播放| 成人免费网站在线观看| 69式荫蒂被添全过程频| 健身房被教练3p喷水了| 日本一级黄色| 成人视频无码| 激情五月毛片| 亚洲第一综合| 午夜在线观看视频18| 国产女主播在线播放| 色吊丝中文字幕| 69视频网| 人妖黃色一級A片| 中文子幕免费毛片| 人人操网| 水多多成人免费A片| 真实野外打野视频| 在线免费观看黄色视频| 艹逼无码| 性无码一区二区三区无码免费| 黑人vs亚洲人在线播放| 91美女被操| 青草精品视频| 苍井空中文字幕在线观看| 老熟妇搡BBBB搡BBBB| 韩国午夜福利| 91在线电影| 国内成人AV| 欧美成人图片视频在线| 高清无码免费观看视频| 女人一级A片色黄情免费| 北条麻纪视频| 大鷄巴成人A片视频| 成人无码www在线看免费| 人人摸人人操人人看| 国产精品色视频| 亚洲吹箫| 无码中文一区| 蝌蚪窝在线观看| 国产av电影网| 特級西西444WWw高清大膽| 久久久成人电影| 国产三级无码视频| 成人在线中文字幕| 无码人妻91|