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

流量控制還能這么搞。。。

共 6870字,需瀏覽 14分鐘

 ·

2021-12-31 15:52


一個(gè)優(yōu)秀的RPC框架,流量控制是必不可少的功能之一。

在上一篇文章聊聊服務(wù)注冊與發(fā)現(xiàn)中,我們講了微服務(wù)架構(gòu)中核心功能之一服務(wù)注冊與發(fā)現(xiàn)。在本文中,我們將著重講下微服務(wù)的另外一個(gè)核心功能點(diǎn):流量控制。

在微服務(wù)系統(tǒng)中,整個(gè)系統(tǒng)是以一系列固有功能的微服務(wù)組成,如果某一個(gè)服務(wù),因?yàn)榱髁慨惓;蛘咂渌?,?dǎo)致響應(yīng)異常,那么同樣的也會(huì)影響到調(diào)用該服務(wù)的其他服務(wù),從而引起了一系列連鎖反應(yīng),最終導(dǎo)致整個(gè)系統(tǒng)崩潰。針對此種問題,我們在之前的文章微服務(wù)架構(gòu)之雪崩效應(yīng)有講解過解決方案,今天我們針對方案中的限流控制來進(jìn)行深入講解。

1引言

限流這件事,對于微服務(wù)架構(gòu)來說,最直接的就是跟系統(tǒng)承載能力正相關(guān)。任何系統(tǒng)都有它服務(wù)能力上限,如果在請求鏈路上,某個(gè)子服務(wù)的請求量超過其承載能力,那么該鏈路上的請求將無法正常響應(yīng),而此時(shí),如果在client端對于不能返回的請求不斷重試(retry),那么對原本已經(jīng)超過負(fù)載上限的子服務(wù)來說,無異于雪上加霜。而這一的模式在拖垮了鏈路上的某個(gè)子服務(wù)后,可能會(huì)影響到其上游服務(wù),導(dǎo)致影響范圍持續(xù)擴(kuò)大,進(jìn)而讓其它原本正常的服務(wù)也跟著失效,從而引起雪崩,雪崩效應(yīng)會(huì)加速整個(gè)系統(tǒng)無法提供服務(wù)。

解決這個(gè)問題的方式,就是限流。如果監(jiān)測到這個(gè)現(xiàn)象時(shí)候(錯(cuò)誤率增高,rt變大或者是服務(wù)負(fù)載高于其安全閾值),就直接開啟某些策略,在服務(wù)負(fù)載恢復(fù)前,丟棄新的request,以使得整個(gè)系統(tǒng)安全可靠。這個(gè)就是限流的目的。不過,這個(gè)機(jī)制困難的不在于要挑選哪種框架或者給某個(gè)服務(wù)來使用,而是是否有辦法精準(zhǔn)掌握系統(tǒng)內(nèi)各個(gè)子服務(wù)的負(fù)載上限,并且有能力做好整合,進(jìn)一步做到自動(dòng)化調(diào)節(jié)限流策略。

2概念

在解釋什么是限流之前,我們先了解一個(gè)點(diǎn),就是服務(wù)的請求上限,也可以理解為是服務(wù)承載量,即該服務(wù)支持一定時(shí)間內(nèi)最多能夠支持多少請求。只有將服務(wù)承載量進(jìn)行量化,能夠被測量,才能根據(jù)這個(gè)測量值,采取一定的對應(yīng)措施。

服務(wù)承載量,指的是單位時(shí)間內(nèi)的處理量。北京地鐵早高峰,地鐵站都會(huì)做一件事情,就是限流了!想法很直接,就是想在一定時(shí)間內(nèi)把請求限制在一定范圍內(nèi),保證系統(tǒng)不被沖垮,同時(shí)盡可能提升系統(tǒng)的吞吐量。

再以我家里的帶寬為例,是聯(lián)通100m的,也就是說,每一秒鐘,聯(lián)通提供最大100m bits的數(shù)據(jù)傳輸量。那么聯(lián)通是如何限制這個(gè)上限的呢?假如我是聯(lián)通,可能有以下幾個(gè)方面:

  • 每秒總共傳輸量,在1秒內(nèi)只要不超過100m bits,能傳多快就多塊
  • 按照位來平均,每傳1bit需要花費(fèi)0.01ns,因此沒傳完1bits后必須得到0.01ns后才能繼續(xù)傳
  • 只要60秒內(nèi)不超過60*100Mb就行
  • ....

看到上面這些方案,就會(huì)發(fā)現(xiàn),做到真正的限制,不是那么容易的。因?yàn)槊恳粋€(gè)方案實(shí)現(xiàn)原理都不同,也就意味著代碼實(shí)現(xiàn)不同。

現(xiàn)在,假如我們使用方案2來實(shí)現(xiàn),等真正測試或者上線后,會(huì)崩潰吧,因?yàn)榱髁靠刂聘静皇窍裎覀冾A(yù)期的那樣進(jìn)行控制,這是因?yàn)橹匦掠?jì)算流量的過程有可能已經(jīng)超了0.01ns。顯然要盡可能精準(zhǔn)的控制流量,需要回答下面兩個(gè)問題:

  • 如何定義流量的計(jì)算方式?是選擇1s、10s還是60s?
  • 如果流量超了之后,該怎么做?是直接返回空值還是一個(gè)默認(rèn)值?

顯然,我們在想清楚上面兩個(gè)問題后,實(shí)現(xiàn)方案基本就能定下來了。收到了新的request,只要確認(rèn)目前的服務(wù)是否還有能力處理這個(gè)request即可。這個(gè)時(shí)候流量是直接丟棄,還是返回其他值,根據(jù)具體情況進(jìn)行具體分析。

3常用方式

限流常用的方式有:

  • 計(jì)數(shù)器
  • 滑動(dòng)窗口
  • 漏桶
  • 令牌桶

下面我將深入講解上述的四種限流方式,先講解原理,然后是實(shí)現(xiàn),最后分析其特點(diǎn)。

4計(jì)數(shù)器

確定方法的最大訪問量MAX,每次進(jìn)入方法前計(jì)數(shù)器+1,將結(jié)果和最大并發(fā)量MAX比較,如果大于等于MAX,則直接返回;如果小于MAX,則繼續(xù)執(zhí)行。

計(jì)數(shù)器的實(shí)現(xiàn)方式,簡單粗暴。在一段時(shí)間內(nèi),進(jìn)行計(jì)數(shù),與閥值進(jìn)行比較,到了時(shí)間臨界點(diǎn),將計(jì)數(shù)器清0。

圖一、計(jì)數(shù)器

在上圖中,我們以1分鐘即60秒為一個(gè)時(shí)間片,在該時(shí)間片內(nèi)最多處理請求為1000,如果超過了上限,則拒絕服務(wù)(具體依賴于實(shí)際業(yè)務(wù)場景)。

原理

我們將計(jì)數(shù)器的思路在明確下就是:

  • 設(shè)置單位時(shí)間T(如10s)內(nèi)的最大訪問量req_max,在單位時(shí)間T內(nèi)維護(hù)計(jì)數(shù)器count;
  • 當(dāng)請求到達(dá)時(shí),判斷時(shí)間是否進(jìn)入下一個(gè)單位時(shí)間;
  • 如果是,則重置計(jì)數(shù)器為0;
  • 如果不是,計(jì)數(shù)器count,并判斷計(jì)數(shù)器count是否超過最大訪問量req_max,如超過,則拒絕訪問。

實(shí)現(xiàn)

針對上面的計(jì)數(shù)器原理,代碼實(shí)現(xiàn)如下:

class?CounterController?{
?public:
??CounterController(int?max,?int?duration)?{
????max_?=?max;
????duration_?=?duration;
????last_update_time_?=?time(nullptr);
??}

??bool?IsValid()?{
?????uint64_t?now?=?time(nullptr);
?????if?(now?????????++req_num_;
????????return?max_?>?req_num_;
?????}?else?{
???????last_update_time_?=?now;
???????req_num_?=?1;
???????return?max_?>?req_num_;
?????}
??}
?private:
??int?max_;
??int?duration_;
??int?last_update_time_;
??int?req_num_?=?0;
};

在實(shí)現(xiàn)代碼中,其中有四個(gè)成員變量:

  • max_ 代表時(shí)間片內(nèi)最多處理的請求個(gè)數(shù)
  • duration_ 代表時(shí)間片,單位為秒
  • last_update_time_ 上一次更新計(jì)數(shù)器的時(shí)間
  • req_num_ 當(dāng)前時(shí)間片內(nèi)的處理的請求數(shù)

其中,計(jì)數(shù)器限流方案的實(shí)現(xiàn)是在成員函數(shù)IsValid()中實(shí)現(xiàn)的,即為該次請求是否有效。在該函數(shù)中,我們首先判斷當(dāng)前時(shí)間戳與上次更新時(shí)間戳之差是否超過了時(shí)間片,如果當(dāng)前時(shí)間戳處于上次更新后的時(shí)間片內(nèi),則請求數(shù)+1,然后判斷請求數(shù)是否超過了該時(shí)間片的處理上限。如果不處于上次更新后的時(shí)間片內(nèi),則重置更新時(shí)間以及請求數(shù)。

特點(diǎn)

  • 優(yōu)點(diǎn):實(shí)現(xiàn)簡單,容易理解
  • 缺點(diǎn):
    • 一段時(shí)間內(nèi)(不超過時(shí)間窗口)系統(tǒng)服務(wù)不可用。以圖一為例,時(shí)間片為60s,在時(shí)間片內(nèi)的第一秒內(nèi),處理請求量就達(dá)到了上限,那么在后面的59s內(nèi),所有的請求都將被拒絕
    • 在時(shí)間片切換時(shí)刻,可能會(huì)產(chǎn)生兩倍于上限的請求。仍然以圖一為例,時(shí)間片為60s,在時(shí)間片內(nèi)的前59s都無請求過來,在第60s的時(shí)候來了1000個(gè)請求,然后時(shí)間片切換,在新的時(shí)間片內(nèi)的第一秒內(nèi),來了1000個(gè)請求,也就是說在2秒內(nèi)(上一個(gè)時(shí)間片的最后一秒 + 當(dāng)前時(shí)間片的第一秒)來了2000個(gè)請求,這個(gè)時(shí)候明顯超過我們的時(shí)間片內(nèi)的上限值,可能導(dǎo)致系統(tǒng)崩潰

5滑動(dòng)窗口

計(jì)數(shù)器滑動(dòng)窗口算法是計(jì)數(shù)器固定窗口算法的改進(jìn),解決了固定窗口切換時(shí)可能會(huì)產(chǎn)生兩倍于閾值流量請求的缺點(diǎn)。

滑動(dòng)窗口的意思是說把固定時(shí)間片,進(jìn)行劃分,并且隨著時(shí)間的流逝,進(jìn)行移動(dòng),這樣就巧妙的避開了計(jì)數(shù)器的臨界點(diǎn)問題。也就是說這些固定數(shù)量的可以移動(dòng)的格子,將會(huì)進(jìn)行計(jì)數(shù)判斷閥值,因此格子的數(shù)量影響著滑動(dòng)窗口算法的精度。

在TCP中,也使用了滑動(dòng)窗口來進(jìn)行網(wǎng)絡(luò)流量控制,感興趣的同學(xué)可以閱讀TCP之滑動(dòng)窗口原理。

滑動(dòng)窗口

計(jì)數(shù)器方式是一種特殊的滑動(dòng)窗口,其窗口大小為1個(gè)時(shí)間片;

原理

滑動(dòng)窗口算法在固定窗口的基礎(chǔ)上,將一個(gè)計(jì)時(shí)窗口分成了若干個(gè)小窗口,然后每個(gè)小窗口維護(hù)一個(gè)獨(dú)立的計(jì)數(shù)器。當(dāng)請求的時(shí)間大于當(dāng)前窗口的最大時(shí)間時(shí),則將計(jì)時(shí)窗口向前平移一個(gè)小窗口。平移時(shí),將第一個(gè)小窗口的數(shù)據(jù)丟棄,然后將第二個(gè)小窗口設(shè)置為第一個(gè)小窗口,同時(shí)在最后面新增一個(gè)小窗口,將新的請求放在新增的小窗口中。同時(shí)要保證整個(gè)窗口中所有小窗口的請求數(shù)目之后不能超過設(shè)定的閾值。

滑動(dòng)窗口

實(shí)現(xiàn)

class?SlidingWindowController?{
?public:
??SlidingWindowController(int?window_size,?int?limit,?int?split_num)?{
????limit_?=?limit;
????window_size_?=?window_size;
????counters_.resize(split_num);
????split_num_?=?split_num;
??}

??int?IsValid()?{
????uint64_t?now_ms?=?0;
????GetCurrentTimeMs(&now_ms);
????int?window_num?=?std::max(now_ms?-?window_size_?-?start_time_,?0)?/?(window_size_?/?split_num_);

????SlidingWindow(window_num);

????int?count?=?0;
????for(int?i?=?0;i?????????count?+=?counters_[i];
????}

????if(count?>=?limit){
??????return?false;
????}else{
??????counters_[index]?++;
??????return?true;
????}

????return?true;
??}
?private:
??void?SlidingWindow(int?window_num)?{
????if?(window_num?==?0)?{
??????return;
????}

????int?slide_num?=?std::min(window_num,?split_num_);

????for?(int?i?=?0;?i???????index_?=?(index_?+?1)?%?split_num;
??????counters_[index_]?=?0;
????}

????start_time_?=?start_time_?+?wind_num?*?(window_size_?/?split_num_);?//?更新滑動(dòng)窗口時(shí)間
??}
??
??int?window_size_;?//?窗口大小,單位為毫秒
??int?limit_;?//?窗口內(nèi)限流大小
??std::vector?counters_;
??uint64_t?start_time_;?//?窗口開始時(shí)間
??int?index_?=?0;?//?當(dāng)前窗口計(jì)時(shí)器索引
??int?split_num_;
};

特點(diǎn)

  • 避免了計(jì)數(shù)器固定窗口算法固定窗口切換時(shí)可能會(huì)產(chǎn)生兩倍于閾值流量請求的問題
  • 實(shí)現(xiàn)精度依賴于窗口的細(xì)分粒度,分的越細(xì),即窗口分塊越多,控制的流量越平滑

6漏桶

漏桶算法思路很簡單,水(請求)先進(jìn)入到漏桶里,漏桶以一定的速度出水,當(dāng)水流入速度過大會(huì)直接溢出,可以看出漏桶算法能強(qiáng)行限制數(shù)據(jù)的傳輸速率。

以固定速率從桶中流出水滴,以任意速率往桶中放入水滴,桶容量大小是不會(huì)發(fā)生改變的。

流入:以任意速率往桶中放入水滴。

流出:以固定速率從桶中流出水滴。

因?yàn)橥爸械娜萘渴枪潭ǖ?,如果流入水滴的速?流出的水滴速率,桶中的水滴可能會(huì)溢出。那么溢出的水滴請求都是拒絕訪問的,或者直接調(diào)用服務(wù)降級(jí)方法。前提是同一時(shí)刻。

但是對于很多場景來說,除了要求能夠限制數(shù)據(jù)的平均傳輸速率外,還要求允許某種程度的突發(fā)傳輸。這時(shí)候漏桶算法可能就不合適了,令牌桶算法更為適合。

漏桶

原理

請求來了之后會(huì)首先進(jìn)到漏斗里,然后漏斗以恒定的速率將請求流出進(jìn)行處理,從而起到平滑流量的作用。當(dāng)請求的流量過大時(shí),漏斗達(dá)到最大容量時(shí)會(huì)溢出,此時(shí)請求被丟棄。從系統(tǒng)的角度來看,我們不知道什么時(shí)候會(huì)有請求來,也不知道請求會(huì)以多大的速率來,這就給系統(tǒng)的安全性埋下了隱患。但是如果加了一層漏斗算法限流之后,就能夠保證請求以恒定的速率流出。在系統(tǒng)看來,請求永遠(yuǎn)是以平滑的傳輸速率過來,從而起到了保護(hù)系統(tǒng)的作用。

實(shí)現(xiàn)

class?LeakyBucketController?{
?public:
??LeakyBucketController(int?rate)?{
????capacity_?=?rate;
????last_update_time_?=?time(nullptr);
??}

??bool?IsValid()?{

????//?計(jì)算這段時(shí)間,漏了多少水
????uint64_t?now?=?time(nullptr);
????int?out?=?(new?-?last_update_time_)?*?rate;
????if?(out?>?0)?{
??????last_update_time_?=?now;
????}

????//?計(jì)算桶中剩余的水
????water_?=?std::max(0,?water_?-?out);

????//?如果桶沒有滿,則表示有效
????if?(water_???????++water_;
??????return?true;
????}

????return?false;
??}

?private:
??int?capacity_;
??int?water_?=?0;
??uint64_t?last_update_time_;
};

特點(diǎn)

  • 漏桶的漏出速率是固定的 由于漏出速率固定,因此即使流量流入速率不定,但是經(jīng)過漏斗之后,變成了有固定速率的穩(wěn)定流量,可以對下游系統(tǒng)起到保護(hù)作用

  • 不能解決流量突發(fā)的問題。假設(shè)我們設(shè)置漏斗速率為10個(gè)/秒,桶的容量為50個(gè)。此時(shí)突然來了100個(gè)請求,那么只有50個(gè)請求被接收,另外50個(gè)被拒絕。這個(gè)時(shí)候,你可能會(huì)認(rèn)為瞬間接受了50個(gè)請求,不就解決了流量突發(fā)問題么?不,這50個(gè)請求只是被接受了,但是沒有馬上被處理,處理的速度仍然是我們設(shè)定的10個(gè)/秒,所以沒有解決流量突發(fā)的問題。而接下來我們要談的令牌桶算法能夠在一定程度上解決流量突發(fā)的問題。

7令牌桶

令牌桶算法是對漏斗算法的一種改進(jìn),除了能夠起到限流的作用外,還允許一定程度的流量突發(fā)。

令牌桶算法是以恒定的速率將令牌放入桶中,這個(gè)時(shí)候如果來了突發(fā)流量,如果桶中有令牌,則可以直接獲取令牌,并處理請求,基于該原理,就解決了漏桶算法中不能 處理突發(fā)流量 的問題。

原理

在令牌桶算法中,令牌以恒定速率放入桶中。桶也有一定的容量,如果滿了令牌就無法放進(jìn)去了。當(dāng)請求來了之后,會(huì)受限到桶中去拿令牌,如何取到了令牌,則該請求被處理,并消耗掉拿到的令牌,否則,該請求被丟棄。

令牌桶

實(shí)現(xiàn)

class?TokenBucketController?{
?public:
??TokenBucketController(int?num,?uint64_t?duration)?:
????duration_(duration),?rate_(num?>?0???(num?/?duration_?/?1000)?:?0),??
????limit_(num),?modulo_(num?>?0??(num?%?(duration?*?1000))?:?0)?{
????GetCurrentTimeMs(&last_update_time_);
????::curr_idx?=?0;
??}

??bool?IsValid();
?private:
??void?Update();

??const?uint64_t?duration_;
??const?int?rate_;
??const?int?limit_;
??const?uint64_t?modulo_;
??uint64_t?last_update_time_;
??uint64_t?loss_?=?0;
??uint64_t?counts_?=?0;
};

void?TokenBucketController::Update()?{
??uint64_t?cur_time_ms;
??GetCurrentTimeMs(&cur_time_ms);
??uint64_t?time_passed_since_last_update?=?cur_time_ms?-?last_update_time_;

??if?(time_passed_since_last_update?==?0)?{
????return;
??}

??if?(counts_?==?static_cast(limit_))?{
????last_update_time_?=?cur_time_ms;
????return;
??}

??uint64_t?count_to_add?=?rate_?*?time_passed_since_last_update;
??loss_?+=?modulo_?*?time_passed_since_last_update;

??if?(loss_?>=?duration_?*?1000)?{
????count_to_add?+=?loss_?/?duration_?/?1000;
????loss_?%=?(duration_?*?1000);
??}

??counts_?+=?count_to_add;
??if?(counts_?>?static_cast(limit_))?{
????counts_?=?limit_;
??}


??last_update_time_?=?cur_time_ms;
}

bool?TokenBucketController::IsValid()?{

??if?(limit_?????return?true;
??}

??if?(counts_?>=?1)?{
????counts_?-=?1;
????return?true;
??}

??Update();

??if?(counts_?>=?1)?{
????counts_?-=?1;
????return?true;
??}

??return?false;
}

在實(shí)現(xiàn)上,令牌桶跟漏桶的區(qū)別,是一個(gè)控制進(jìn),一個(gè)控制出。在InValid函數(shù)中,先判斷桶中是否有令牌,如果有則返回true,否則,進(jìn)行更新桶中令牌(Update函數(shù)),然后再進(jìn)行判斷是否有令牌可用。

特點(diǎn)

令牌桶算法來作為限流,在業(yè)界使用最多,除了能夠在限制調(diào)用的平均速率的同時(shí)還允許一定程度的流量突發(fā)。

8結(jié)語

下面我們把本文中的四種限流策略做下簡單對比,來作為對本文的一個(gè)總結(jié)。計(jì)數(shù)器算法:該算法實(shí)現(xiàn)簡單,容易理解。但是在時(shí)間片切換時(shí)刻,容易出現(xiàn)兩倍于閾值的流量,也可以說是滑動(dòng)窗口算法的簡版(窗口只有一個(gè))。

滑動(dòng)窗口算法:解決了計(jì)數(shù)器算法中的2倍閾值的問題,其流量控制精度依賴于窗口個(gè)數(shù),窗口個(gè)數(shù)越多,精度控制越準(zhǔn)。

漏桶算法:以任意速率往桶中放入水滴,如果桶中的水滴沒有滿的話,可以訪問服務(wù),不能處理突發(fā)流量。

令牌桶算法:以固定的速率(平均速率)生成對應(yīng)的令牌放到桶中,客戶端只需要在桶中獲取到令牌后,就可以訪問服務(wù)請求,與漏桶算法相比,其可以處理一定的突發(fā)流量。

令牌桶算法是通過控制令牌生成的速度進(jìn)行限流,

漏桶算法是控制請求從桶中流出的速度進(jìn)行限流。

簡單理解為:令牌桶控制進(jìn),漏桶控制出。

如果要讓自己的系統(tǒng)不被打垮,用令牌桶。如果保證被別人的系統(tǒng)不被打垮,用漏桶算法。

以上四種限流算法都有自身的特點(diǎn),具體使用時(shí)還是要結(jié)合自身的場景進(jìn)行選取,沒有最好的算法,只有最合適的算法。比如令牌桶算法一般用于保護(hù)自身的系統(tǒng),對調(diào)用者進(jìn)行限流,保護(hù)自身的系統(tǒng)不被突發(fā)的流量打垮。如果自身的系統(tǒng)實(shí)際的處理能力強(qiáng)于配置的流量限制時(shí),可以允許一定程度的流量突發(fā),使得實(shí)際的處理速率高于配置的速率,充分利用系統(tǒng)資源。而漏斗算法一般用于保護(hù)第三方的系統(tǒng),比如自身的系統(tǒng)需要調(diào)用第三方的接口,為了保護(hù)第三方的系統(tǒng)不被自身的調(diào)用打垮,便可以通過漏斗算法進(jìn)行限流,保證自身的流量平穩(wěn)的打到第三方的接口上。

算法是死的,而算法中的思想精髓才是值得我們學(xué)習(xí)的。實(shí)際的場景中完全可以靈活運(yùn)用,還是那句話,沒有最好的算法,只有最合適的算法。


瀏覽 67
點(diǎn)贊
評論
收藏
分享

手機(jī)掃一掃分享

分享
舉報(bào)
評論
圖片
表情
推薦
點(diǎn)贊
評論
收藏
分享

手機(jī)掃一掃分享

分享
舉報(bào)

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

国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频 aaa成人| 黄色小网站在线观看| 懂色AV一区二区三区国产中文在线 | 国产成人午夜精品无码区久久麻豆 | 操逼操123| 人人爽爽| 欧美色图自拍| 黄色视频在线| 99视频色| 波多野结衣一区二区| 中文字幕在线观看免费高清完整版在线观看 | 天天夜夜爽| 日韩成人无码| 中文字幕成人电影| 免费黄色视频在线| 九九re精品视频在线观看| 水果派成人播放无码| 可以免费看AV的网站| 婷婷五月天啪啪| 亚洲人妖在线| 国产女人18毛片水18精品软件| 午夜成人三级| 日韩黄色在线| 东京热一区二区三区四区| 久久私拍视频| 亚洲免费专区| 北岛玲在线视频| 亚洲.欧美.丝袜.中文.综合| 日韩欧美在线中文字幕| 日韩欧美小电影| 国产白浆一区二区三区| 日本一区二区视频在线观看| 操操操操一本到| 欧美日本成人网站入口| 日韩中文字幕在线视频| 欧美操B视频| 18禁一区二区三区| 9I免费看片黄| 五月丁香婷中文| 亚洲无码高清视频在线| 午夜福利视频91| 亚洲高清无码网站| 亚洲一区久久| 亚洲狼人综合网| 日韩无码精品一区| 一卡二卡三卡无码| 欧美va视频| 久久福利网| 四虎在线视频观看96| 男人午夜AV| 欧美日韩中文| 亚洲中文字幕电影| 免费在线a| 中文字幕无码人妻| 精品视频在线免费观看| 日韩一区二区三区视频| 成人在线一区二区| 天堂无码在线| 久久国产劲爆∧v内射| 国产高清无码一区二区三区| 熟练中出-波多野结衣| 久久aa| 大香蕉伊人AV| 天天干天天舔| 操逼啦| 水果派中文解说AⅤ| R四虎18| 日韩在线观看一区二区| 91九色网| 欧美一级在线免费观看| 一二区免费视频| 国产精品久久久久久无码人妻| 一本无码高清| 囯产精品久久久| 亚洲视频无码在线| 97操| 日韩无码123| 91超碰在线播放| 久久偷看各类wc女厕嘘嘘偷窃| 成人精品免费无码毛片| 亚洲乱伦网站| 丝袜一区二区三区| 久久熟女嫩草成人片免费| 中文字幕无码网站| 国产精品成人免费视频| 亚洲人操逼视频| 国产精品视频无码| 亚洲天堂网在线视频| 夜夜爽妓女77777毛片A片| 日韩高清无码三级片| 嫩苞又嫩又紧AV无码| www.99av| 精品成人A片久久久久久不卡三区| 波多野结衣国产| 99精品视频免费看| 亚洲AV成人精品一区二区三区| 91人妻无码精品蜜桃| 中文字幕观看在线| 色婷婷一区二区| 性爱国产| 国产女人18毛片18精品| 无码一道本| 玖玖在线视频| 九七影院第二页| 婷婷开心色四房播播在线| 久久精品禁一区二区三区四区五区 | 水蜜桃视频免费| 91精品国产综合久久久蜜臀主演| 五月天婷婷av| 理论片熟女奶水哺乳| 蜜桃传媒一区二区亚洲AV| 久色| 国产一卡二卡| 国产精品乱草| 澳门午夜黄色在线| 北条麻妃九九九在线视频| 丰满人妻-区二区三区| 国产视频a| 国产一级a一片成人AV| 色情一级AA片免费观看| 天天视频黄色| 中文字幕日韩人妻在线| 韩国成人啪啪无码高潮| 亚洲AV无码乱码| 国产欧美一区在线看| 天天日天天干麻豆| 特级西西444www高清大胆免费看| 99re88| 色婷婷一二三精品A片| 丁香五月中文| 国产a片免费看| 久久久久逼| 午夜丁香| 亚洲人妻视频| 超碰超爽| 成人亚洲网| 蜜桃久久久亚洲| 久久艹伊人| 草草影院国产第一页| 白嫩外女BBwBBwBBw| 国产综合精品久久久久成人AV| 免费在线成人网站| 人妻无码中文字幕免费视频蜜桃 | 91人人妻人人| 婷婷五月天丁香网| 日韩av中文字幕在线| 国产在线无码视频| 99综合网| 色欲影视插综合一区二区三区 | 免费日韩| 一区二区三区成人| 久久久XXX| 三级99| sm国产在线调教视频| 在线观看视频亚洲| 97精品国产97久久久久久免费| 中文字幕熟女人妻| 一区二区三区四区精品| 亚洲中文字幕人妻。| 中国老少配BBwBBwBBW| 阿v视频在线观看| AV福利在线观看| 成人无码区免费A片久久| 国产精品一区二区毛片A片婊下载| 99热国产精品| 国产喷水ThePorn| 国产亚洲婷婷| 久久久成人影片| 色婷婷激情视频| 日韩成人高清无码| 亚洲中文在线视频| 日韩做爱| 99高清国产| 日本色电影在线观看| 2025av天堂| 大香蕉日韩| www伦理片-韩国三级三级三级a三级-成人AV| 俺去也| 三级日韩| 久视频在线观看| 丰满人妻一区二区三区免费| 五月丁香婷中文| 婷婷五月丁香六月| 精品一区二区三区av| 福利视频在线| 欧美sesese| 国产精品偷拍| 婷婷五月天视频| 黄色成人毛片| 天天日av| 免费看黄色一级片| 91拍真实国产伦偷精品| 五月天婷婷在线无码| 国产成人三级在线播放| ChineSe露脸老女人| 欧美一级在线视频| 熟女探花| 99在线精品视频在线观看| 亚洲AV无码久久久| 国产不卡视频| 97超碰在线免费观看| 国产日韩性爱视频| 日本无码成人片在线播放| 自拍视频网| 大香焦久久| 亚洲黄色电影| 黄色av网站在线观看| 欧美黄页| 国产人人看| 洞av| 影音先锋黄色资源| 三上悠亚无码破解69XXX| 免费一区| 91人妻人人澡人人爽人人精吕| 走光无码一区二区三区| 十八禁视频在线观看网站.www| 狠狠躁日日躁夜夜躁A片无码| 亚洲日韩在线视频| 三级片网页| 国产精品久久久久久无码人妻| 人人澡人人爱| 国产三四区久久| 一起操影院| 中文字幕在线观看视频免费| 日韩福利在线观看| 国产精品久久久无码专区| 婷婷五月综合中文字幕| 欧美成人午夜福利| 色婷婷视频在线观看| 国产在线色视频| 日韩在线观看一区二区| 成人视频一区二区| 精品AV无码一区二区三区| 亚洲综合人妻| 中文字幕不卡视频| 99re| 人人弄人人| 日韩乱伦AV| 超碰免费97| 99国产精品久久久久久久| 中文字幕乱码中文乱码91| 一级a一级a爱片免费视频| 欧美在线观看一区| 日韩一| 男女啪啪网| 亚洲福利女神成人福利| 免费在线观看AV片| 精品自拍偷拍| 精品人妻一二三区| 中文字幕乱伦视频| 国产精品夜夜爽7777777| 91在线免费视频| 97伊人超碰| 亚洲无码人妻| 亚洲视频免费在线观看| 91在线观看网站| 国产精品99久久久久久成人| 日韩无码免费视频| 国产黄色Av| 成人网站毛片| 日韩gay| 美女高潮在线| 日韩成人在线观看视频| 国产欧美综合在线三区| 成人网中文字幕| 国产黄色视频在线免费观看| 日韩AV无码网站| 久久天堂AV综合合色蜜桃网| 五月婷婷六月激情| 成人免费无码A片免费| 蜜桃AV无码一区二区三区| 学生妹毛片| 国产精品国产三级片| 超碰婷婷| 婷婷射| 99天天视频| 亚洲A级| 欧美高清在线综合| 另类性爱视频| 玖玖色综合| 北岛玲视频在线| 激情五月天视频| 日韩人妻丰满无码区A片| 亚洲欧美在线视频免费| 丰满少妇一区二区三区| 国产老熟女高潮毛片A片仙踪林| 乱伦视频91| 蜜桃久久99精品久久久酒店| 天天日天天干天天爽| 一级一A片一a免费看| 操逼综合网| 国产91在线一区| 国产精品91视频| 日韩AV无码专区亚洲AV紧身裤| 裸体美女视频欧美18| 一区二区三区AV| 九九九网站| 婷婷视频在线观看| 在线视频三区| 五月婷婷六月香| 驲韩在线视频免费观看| 国产美女一区| 日韩无码中文字幕| 偷自拍| 婷婷色在线视频| 午夜日韩乱伦| 开心色情| 一区二区免费| 无码色| 高潮喷水在线观看| aV一区二区三区| 亚洲精品婷婷| 亚洲色综合网| 黄色直播在线观看| 三级片在线观看网站| 强奸乱伦五月天| 人人操人人射| 一个人看的视频www| 亚洲网站在线| 北京熟妇搡BBBB搡BBBB电影 | 国产毛片一照区| 台湾毛片| 99热免费| 中文字幕高清| 一级免费毛片| 韩国免费一级a一片在线播放| 欧美丰满人妻免费视频人| 91精品国产综合久久久久久久| 黄色成人网站免费在线观看| 120分钟婬片免费看| 一区二区成人电影| 日本三级久久| 黄色综合网| 天天爽夜夜爽精品成人免费| 欧美高清无码在线观看| 97人妻精品黄网站| а√在线中文8| 中文午夜福利| 国产午夜成人免费看片无遮挡| 99久久精品国产毛片| 亚洲最新无码| 波多野结衣无码高清| 久久9视频| 日本不卡在线| 精品码A片18| 日本在线| 欧美日韩亚洲成人| 天天做天天干| 亚洲激情无码视频| 操一操| 大地影视中文第三页最新在线观看| 四虎网站| 嫩草91| 日韩欧美综合| 日韩激情一区| 又a又黄高清无码视频| 狼人综合在线| 操美女影院| 91丨牛牛丨国产| 欧美日韩不卡在线| 丁香五月综合网| 久99在线视频| 蜜芽成人在线| 91国产精品在线视频| 国产女人视频| 亚洲福利在线免费观看| 婷婷久久综合久色综| 亚洲AV无码乱码国产| 嫩草视频| 精品久久免费视频| 99久久精品国产毛片| 天天夜夜操操| 99视频精品视频| 亚洲人妻一区二区| 秋霞网一区二区| 成人亚洲AV日韩AV无码| av老鸭窝| 国产日韩精品无码去免费专区国产| AV五月| 亚洲精品影院| 午夜成人中文字幕| 日韩黄色中文字幕| 国产精品操| 国产在线色视频| 日韩a片| 色哟哟视频| 国产啊啊啊| 久久无码一区二区| 在线观看三级网址| 秋霞中文字幕| 竹菊av一区二区三区四区五区| 国内自拍视频在线观看| 懂色AV成人| 国产无码av| 特级西西444www精品视频| 国产精品无码久久久久成人app | 97人人爽人人爽人人爽人人爽| 亚洲一二三| 日本中文字幕亚洲| 激情视频免费看| 天天综合天天做天天综合| 日韩性爱网址| 欧美77777| 亚洲观看黄色网| 日本操B久久| 有码一区二区三区| 韩国无码成人电影啊荒| 狠狠操在线| 亚洲乱伦小说网| 黄色3A片在线观看| 蜜桃av秘无码一区二区三欧 | 日本免费在线观看视频| 国产亚洲久一区二区^_^| 99日韩精品| 男女网站在线观看| 亚洲手机视频| 粉嫩99精品99久久久久久特污| 日韩激情无码| 亚洲日韩欧美在线观看| 狼人综合色| 青青草99| 色网站操逼| 国产精品久久久无码专区| 日韩一级在线播放| 大香蕉草久| 国产一级A片| 老太色HD色老太HD| 欧美性xxxxx| 国产第1页| 老熟女导航| 大鸡巴日小逼| 日本无码中文字幕| 亚洲不卡中文字幕| 99伊人在线| 狠狠撸狠狠干| 大地影视中文第三页最新在线观看 | 成人性在线| 日韩午夜精品| 中文字幕高清| TokyoKot大交乱无码| 91中文在线| 182在线视频| 国产不卡精品| 日韩一级a| 亚洲aⅤ| 黄色网址五月天| 青青草青娱乐| 北条麻妃波多波多野结衣| 中文字幕日韩欧美在线| 日韩欧美性爱| 懂色AV一区二区三区国产中文在线 | 国产美女AV| 91久久精品国产91久久公交车| 欧美三级视频在线观看| 青青草日逼视频| 120分钟婬片免费看| 久久久久久久久久久高清毛片一级| 日本人妻在线视频| 国产成人免费观看视频| 久久h| 亚洲AV偷拍| 波多野结衣视频无码| 特黄视频| 久久久久亚洲AV成人网人人软件| 日韩在线观看av| 天天色网站| 777久久| 五月天婷婷久久| 嫩草视频在线播放| 欧美天天干| 俺也去也| 国产乱伦内射视频| 成人欧美一区二区三区白人| 欧美成人精品一区二区三区| 91青青草在线| 亚洲国产高清国产精品| 国产综合自拍| 高潮无码视频| 亚洲黄色电影在线| 国产精品一级A片| wwwav| 奇米91| 色哟哟一中文字慕| 亚州黄色电影| 大鸡巴在线| av在线观看中文字幕| 色婷在线| 日韩黄色A级片| 国产免费黄色电影| 国产精品粉嫩福利在线| 久视频在线观看| 最新中文字幕观看| 无码免费婬AV片在线观看| 欧美成人在线免费视频| 亚洲乱伦av| 国产換妻4P视频| 免费成人毛片| 特级艺体西西444WWw| 美女人人操| 日韩一区二区三免费高清在线观看 | 国产三级视频在线| av色欲| 五月婷婷丁香| 欧一美一婬一伦一区二区三区黑人 | 欧美日韩中文字幕在线视频| 水果派红桃AV解说| 撸一撸成人在线做爱视频。| BBW老熟女BBw| 欧美日韩亚洲中文字幕| 青青草91在线| 色五月婷婷丁香五月| 东京热一区二区| 国产靠逼视频| 各种BBwBBwBBwBBw| 福利导航页| 国产操比网| 中文黄片| 欧美性爱小说网| 久久久久久黄色| 中文在线第一页| 黄色网址av| 日本无码中文字幕| 中文字幕视频网站| 日韩免费中文字幕A片| 99re88| 色就是欧美| 麻豆91麻豆国产传媒| 老女人毛片| 天天操天天射天天日| 午夜福利在线播放| 亚洲日韩欧美国产| 亚洲综合区| 久久久噜噜噜久久中文字幕色伊伊| 操一区| 91麻豆视频在线观看| 日本一区二区精品| 国产一区二区00000视频| 爽好紧别夹喷水网站| 色情电影网站| 国产精品theporn| 亚洲成免费| 人妻人人妻| 国产精品免费av在线| 99热亚洲| 日韩久久免费视频| 高清无码三级片在线观看| 一级a片免费| 中国老少配BBwBBwBBW| 亚洲天堂av在线观看| 东京热精品| 不卡无码在线观看| 天天做天天爽| 国产成人无码Av片在线公司| 99久久久精品久久久久久| 黑人av在线观看| 中文字幕免费观看| 永久免费一区二区三区| 欧美成人三级在线观看| 日韩三级AV| 丁香六月久久| 青青成人视频| 男女啪啪啪| 成人毛片在线播放免费| 久久久在线| 久久无码一区二区三区| 日韩高清无码人妻| 伊人影院久久| 77777精品成人免费A片| 欧美男女操逼视频| 女公务员人妻呻吟求饶| 成人精东影业JDAV3密友| 欧美成人黄色电影| 日朝无码| 在线播放JUY-925被丈夫上司侵犯的第7天| 日韩精品久久久| 久久肏屄| 波多野结衣久久精品| 欧美一级片网站| 久久99无码| 成人片天天看片欧美一级| 日韩中文在线观看| 99久久精品国产一区色| 欧美日韩成人视频| 日本A片在线播放| 狠狠躁日日躁夜夜躁A片小说免费| 秋霞福利影院| 操逼视频在线免费看| 午夜性爱福利视频| 日韩一级乱伦| 91无码一区二区三区在线| 97中文字幕| 大鸡巴在线观看| 在线中文av| 欧美一级A片免费看| 看一级黄色片| 毛片成人网| 亚洲视频无码在线| 18害羞勿进网站国产| 国产AV电影网| 婷婷V亚洲V丁香月天V日韩V| AAA级片| 天天撸天天干天天日| 亚洲午夜福利| 国产视频导航| 天天干天天草| 一级片在线免费观看| 91久久久久久久| 久久婷婷六月综合| 亚洲成人色色| 欧美拍拍| 国产av一区二区三区四区| 日本爱爱免费播放视频| 成人影视在线免费观看| 揉BBB搡BBB搡BBB| 在线观看黄色| 在线观看AⅤ| 日韩不卡高清在线观看视频| 色男天堂| 午夜色色影院| 在线看片AV| 性视频人人| 麻豆精东一区二区欧美国产| 激情婷婷 | 国产AV中文| 欧美成年人网站| 国产粉嫩在线观看| 国产三级视频在线| 亚洲三级电影在线观看| 男女拍拍拍拍| 成人性爱视频免费观看| 天天干天天肏| www.97cao| 波多野结衣视频无码| 九色蝌蚪9l视频蝌蚪9l视频成人熟妇 | 亚洲自拍天堂| 91探花精品偷拍在线播放| 亚洲午夜无码精品专区| 国产免费乱伦| 中文字幕淫乱视频欧美| 亚洲高清国产欧美综合s8| 亚洲人内射片又| 五月天激情爱爱| 美国一级A片草草视频| 日本女优婷婷青青草原| 丁香婷婷色五月激情综合三级三级片欧美日韩国 | 亚洲Av无码午夜国产精品色软件| 国产精品男女| 亚洲国产综合AV在线| 成年片免费观看网站免费观看,亚洲+欧... | 日逼无码| 日韩激情无码| 青青操青青干| 精品久久精品| 91在线视频免费观看| 五十路熟妇| 中文一线二线视频| 91日逼| 日日干天天操| 加勒比精品| 天堂资源网| 秋霞午夜成人无码精品| 日韩18禁| 国产三四区久久| 欧美爆操视频| 亚洲无码高清在线观看视频| 久久精品视频观看| 国产在线久久久| 久久系列观看完整指南| 中国毛片网站| 日本少妇高潮喷水XXXXXXX| 中国熟睡妇BBwBBw| 五月天激情av| 51妺妺嘿嘿午夜成人| 三级爱爱| 亚洲A片电影| 成人性爱视频在线播放| 中文字幕国产AV| 亚洲第一色图| 成人精品无码免费视频| 神马午夜精品| 波多野吉衣毛片| 亚洲色久| 北条麻妃久久| 国产久久视频| 欧美级毛片高潮| 亚洲人在线观看| 国产精品久久久久的角色| 狠狠操夜夜操| 婷婷亚洲五月色综合| 亚洲成人影音先锋| 爱爱免费不卡视频| 手机AV在线播放| 老熟女91| 高潮国产视频| 91精品导航| 无码一区二区三区在线| 久艹视频在线观看| 天天干天天日天天操| 精品久久久久久AV2025| 一级a片在线免费观看| 高清无码操逼视频| 日韩亚洲在线视频| 5D肉蒲团| 柠檬AV导航| 艳妇乳肉豪妇荡乳AV无码福利| 日韩免费一级| 日韩AV高清| 无码人妻一区二区| 影音先锋资源| 一区二区三区四区不卡| 未满十八18禁止免费无码网站 | 人人干人人干| 人人色人人摸| 欧美日韩视频一区二区三区| 亚洲美女网站在线观看| 霸道总裁雷总各种姿势白浆爱情岛论坛 | 成人在线一区二区| 国产三级黄色视频| 五月伊人婷婷| 国产91探花| 九九九九九九精品视频| 中文字幕av免费在线观看| av无码免费| 国产一卡二卡在线| 青青青视频在线| 欧美激情一区| 夜夜看| 一本色道久久综合狠狠| av播播| 亚洲日韩欧美一厂二区入| 婷婷色在线观看| 欧美精品91| 91在线精品一区二区| 黄色在线网站| 伊人久久大综合中文无码| 国产综合色网| AV天堂中文字幕| 婷婷久久综合久| 中文字幕在线观看网址最新地址| 亚洲日本欧美| 九色PORNY国产成人蝌蚪| 人人妻人人澡人人爽久久| 嫩草久久| 黄色视频日本免费| 婷婷色在线观看| 国产福利电影在线观看| 中文字幕在线免费视频| 人妻被午夜福利AV| 国产精品色呦呦| 五月天婷婷网址| 99热在线只有精品| 日本色色网站| 激情视频网址| 大香蕉福利视频导航| 伊人色色色| 一区二区A片| 亚洲精品资源在线| www.第四色| 亚欧无码| 亚洲一级婬片A片AAAA网址| 亚洲日本三级| 西西人体44www大胆无码| 欧美亚洲日韩中文字幕| 国产一级无码| 天天玩夜夜玩天天玩国产99 | 亚洲欧美在线一区| 爱搞搞搞搞| 青青草原无码| 在线免费观看黄色电影| 九九热精品| 久久成人一区| 日本一级黄色| 人人摸人人插| jiujiuav| 最新va在线观看| 午夜福利h| 四川BBB嫩BBBB爽BBBB| 精品无码专区| 国产精品色哟哟| 好吊AV| 亚洲天堂国产视频| 老熟女91| 成人视频一区二区三区| 影音先锋资源| www.射| 无码色| 国产操操操| 在线观看日韩| 翔田千里无码视频| 99er在线观看| 你懂得在线| AV麻豆| 午夜亚洲AV永久无码精品蜜芽| 亚洲三级黄片| 欧美aaa视频| 狠狠操AV| 被男友内S~高H文| 蜜桃久久精品成人无码AV| 一本色道久久综合无码| 中文字幕在线不卡| 土耳其电影《爱与罚》| 无码中文综合成熟精品AV电影| 国产美女AV| 国产高清一区二区| 日AV在线无| 免费观看一级黄片| 亚洲精品中文字幕成人片| 亚洲国产精品久久| Av久| 凸凹翔田千里无码| 精品无码人妻一区二区媚黑| 台湾无码在线| 色骚爽大香蕉91| 精品无码不卡| 成人久久久久一级大黄毛片中国 | 成人av免费观看| 国产又爽又黄免费网站在线看| 影音先锋一区二区| 无码做爰欢H肉动漫网站在线看| 操嫩逼视频| 黄网站免费在线观看| 亚洲视频在线观看| 精品国产香蕉| 好男人WWW一区二区三区| 中文字幕无码在线播放| 欧美肏逼网| 久草在| 亚洲天堂成人网| 伊人免费视频| 国产白浆一区二区三区| 青青草免费观看视频| 午夜福利码一区二区| 亚洲色图一区二区| 欧美三p| www中文字幕| 日本精品电影| 一区黄片| 欧美淫乱视频| 成人黄色电影| 在线观看中文字幕网站| 91麻豆福利视频| 中文字幕av在线观看| 国产地址| 日韩精品免费无码视频| 亚洲无码在线电影| 狠操网| 中文字幕亚洲视频在线观看| 五月婷婷中文| 无套内射在线免费观看| 波多野结衣av在线观看| 国产色播| 黄色av影院| 麻豆传媒在线| 水密桃网站| 青青草免费在线视| 欧美成人网站免费在线观看| 四川少扫搡BBBBB搡B| 日韩美女免费性爱视频| 91久久久久久久久久久久18 | 高清无码免费| 国产av小电影| 欧美图片小说| 靠比免费| 大色AV| 蜜桃av色偷偷av老熟女| 伊人色色视频| 综合色在线| 亚洲清高毛无码毛片| 人妻无码HEYZO少妇精品| 一级黄色录像视频| 国产乱伦网| 91人兽| 肏屄一区| 亚洲偷| 中文字幕+乱码+中文字幕一区 | 亚洲午夜福利在线观看| 黄色美女毛片| 60分钟上大床又黄又爽| 超碰在线99| 国产AV黄| 日韩成人黄色电影| 黃色A片一級二級三級免費久久久| 亚洲成人在线观看视频| 一本道中文字幕| 五月婷婷性爱| 亚洲不卡中文字幕| 口爆在线| 日韩成人无码电影网站| 各种妇女撒尿mm毛免费网站| 色秘乱码一区二区三区| 69欧美视频| 亚洲性爱自拍| 不卡AV在线播放| 日韩AV中文| H片在线观看| 国产八区| 黄色资源在线观看| 日韩成人无码特集| 中文字幕一区二区二三区四区| 亚洲天堂视频在线观看|