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

96秒100億!如何抗住雙11高并發(fā)流量?

開(kāi)發(fā) 前端
今年雙 11 全民購(gòu)物狂歡節(jié)進(jìn)入第十一個(gè)年頭,1 分 36 秒,交易額沖到 100 億 !比 2018 年快了近 30 秒,比 2017 年快了近 1 分半!這個(gè)速度再次刷新天貓雙 11 成交總額破 100 億的紀(jì)錄。

今年雙 11 全民購(gòu)物狂歡節(jié)進(jìn)入第十一個(gè)年頭,1 分 36 秒,交易額沖到 100 億 !比 2018 年快了近 30 秒,比 2017 年快了近 1 分半!這個(gè)速度再次刷新天貓雙 11 成交總額破 100 億的紀(jì)錄。

[[282000]]
圖片來(lái)自 Pexels 

那么如何抗住雙 11 高并發(fā)流量?接下來(lái)讓我們一起來(lái)聊聊高可用的“大殺器”限流降級(jí)技術(shù)。

服務(wù)等級(jí)協(xié)議

我們常說(shuō)的 N 個(gè) 9,就是對(duì) SLA 的一個(gè)描述。SLA 全稱是 Service Level Agreement,翻譯為服務(wù)水平協(xié)議,也稱服務(wù)等級(jí)協(xié)議,它表明了公有云提供服務(wù)的等級(jí)以及質(zhì)量。

例如阿里云對(duì)外承諾的就是一個(gè)服務(wù)周期內(nèi)集群服務(wù)可用性不低于 99.99%,如果低于這個(gè)標(biāo)準(zhǔn),云服務(wù)公司就需要賠償客戶的損失。

做到 4 個(gè) 9 夠好了嗎

對(duì)互聯(lián)網(wǎng)公司來(lái)說(shuō),SLA 就是網(wǎng)站或者 API 服務(wù)可用性的一個(gè)保證。

9 越多代表全年服務(wù)可用時(shí)間越長(zhǎng)服務(wù)更可靠,4 個(gè) 9 的服務(wù)可用性,聽(tīng)起來(lái)已經(jīng)很高了,但對(duì)于實(shí)際的業(yè)務(wù)場(chǎng)景,這個(gè)值可能并不夠。

我們來(lái)做一個(gè)簡(jiǎn)單的計(jì)算,假設(shè)一個(gè)核心鏈路依賴 20 個(gè)服務(wù),強(qiáng)依賴同時(shí)沒(méi)有配置任何降級(jí),并且這 20 個(gè)服務(wù)的可用性達(dá)到 4 個(gè) 9,也就是 99.99%。

那這個(gè)核心鏈路的可用性只有 99.99 的 20 次方=99.8%,如果有 10 億次請(qǐng)求則有 3,000,000 次的失敗請(qǐng)求,理想狀況下,每年還是有 17 小時(shí)服務(wù)不可用。

這是一個(gè)理想的估算,在實(shí)際的生產(chǎn)環(huán)境中,由于服務(wù)發(fā)布,宕機(jī)等各種各樣的原因,情況肯定會(huì)比這個(gè)更差。

對(duì)于一些比較敏感的業(yè)務(wù),比如金融,或是對(duì)服務(wù)穩(wěn)定要求較高的行業(yè),比如訂單或者支付業(yè)務(wù),這樣的情況是不能接受的。

微服務(wù)的雪崩效應(yīng)

[[282001]] 

除了對(duì)服務(wù)可用性的追求,微服務(wù)架構(gòu)一個(gè)繞不過(guò)去的問(wèn)題就是服務(wù)雪崩。

在一個(gè)調(diào)用鏈路上,微服務(wù)架構(gòu)各個(gè)服務(wù)之間組成了一個(gè)松散的整體,牽一發(fā)而動(dòng)全身,服務(wù)雪崩是一個(gè)多級(jí)傳導(dǎo)的過(guò)程。

首先是某個(gè)服務(wù)提供者不可用,由于大量超時(shí)等待,繼而導(dǎo)致服務(wù)調(diào)用者不可用,并且在整個(gè)鏈路上傳導(dǎo),繼而導(dǎo)致系統(tǒng)癱瘓。

限流降級(jí)怎么做

如同上面我們分析的,在大規(guī)模微服務(wù)架構(gòu)的場(chǎng)景下,避免服務(wù)出現(xiàn)雪崩,要減少停機(jī)時(shí)間,要盡可能的提高服務(wù)可用性。

提高服務(wù)可用性,可以從很多方向入手,比如緩存、池化、異步化、負(fù)載均衡、隊(duì)列和降級(jí)熔斷等手段。

緩存以及隊(duì)列等手段,增加系統(tǒng)的容量。限流和降級(jí)則是關(guān)心在到達(dá)系統(tǒng)瓶頸時(shí)系統(tǒng)的響應(yīng),更看重穩(wěn)定性。

緩存和異步等提高系統(tǒng)的戰(zhàn)力,限流降級(jí)關(guān)注的是防御。限流和降級(jí),具體實(shí)施方法可以歸納為八字箴言,分別是限流,降級(jí),熔斷和隔離。

限流和降級(jí)

限流顧名思義,提前對(duì)各個(gè)類型的請(qǐng)求設(shè)置最高的 QPS 閾值,若高于設(shè)置的閾值則對(duì)該請(qǐng)求直接返回,不再調(diào)用后續(xù)資源。

限流需要結(jié)合壓測(cè)等,了解系統(tǒng)的最高水位,也是在實(shí)際開(kāi)發(fā)中應(yīng)用最多的一種穩(wěn)定性保障手段。

降級(jí)則是當(dāng)服務(wù)器壓力劇增的情況下,根據(jù)當(dāng)前業(yè)務(wù)情況及流量對(duì)一些服務(wù)和頁(yè)面有策略的降級(jí),以此釋放服務(wù)器資源以保證核心任務(wù)的正常運(yùn)行。

從降級(jí)配置方式上,降級(jí)一般可以分為主動(dòng)降級(jí)和自動(dòng)降級(jí)。主動(dòng)降級(jí)是提前配置,自動(dòng)降級(jí)則是系統(tǒng)發(fā)生故障時(shí),如超時(shí)或者頻繁失敗,自動(dòng)降級(jí)。

其中,自動(dòng)降級(jí),又可以分為以下策略:

  • 超時(shí)降級(jí)
  • 失敗次數(shù)降級(jí)
  • 故障降級(jí)

在系統(tǒng)設(shè)計(jì)中,降級(jí)一般是結(jié)合系統(tǒng)配置中心,通過(guò)配置中心進(jìn)行推送,下面是一個(gè)典型的降級(jí)通知設(shè)計(jì)。

熔斷隔離 

如果某個(gè)目標(biāo)服務(wù)調(diào)用慢或者有大量超時(shí),此時(shí)熔斷該服務(wù)的調(diào)用,對(duì)于后續(xù)調(diào)用請(qǐng)求,不在繼續(xù)調(diào)用目標(biāo)服務(wù),直接返回,快速釋放資源。

熔斷一般需要設(shè)置不同的恢復(fù)策略,如果目標(biāo)服務(wù)情況好轉(zhuǎn)則恢復(fù)調(diào)用。

服務(wù)隔離與前面的三個(gè)略有區(qū)別,我們的系統(tǒng)通常提供了不止一個(gè)服務(wù),但是這些服務(wù)在運(yùn)行時(shí)是部署在一個(gè)實(shí)例,或者一臺(tái)物理機(jī)上面的。

如果不對(duì)服務(wù)資源做隔離,一旦一個(gè)服務(wù)出現(xiàn)了問(wèn)題,整個(gè)系統(tǒng)的穩(wěn)定性都會(huì)受到影響!服務(wù)隔離的目的就是避免服務(wù)之間相互影響。

[[282002]] 

一般來(lái)說(shuō),隔離要關(guān)注兩方面,一個(gè)是在哪里進(jìn)行隔離,另外一個(gè)是隔離哪些資源。

何處隔離:一次服務(wù)調(diào)用,涉及到的是服務(wù)提供方和調(diào)用方,我們所指的資源,也是兩方的服務(wù)器等資源,服務(wù)隔離通常可以從提供方和調(diào)用方兩個(gè)方面入手。

隔離什么:廣義的服務(wù)隔離,不僅包括服務(wù)器資源,還包括數(shù)據(jù)庫(kù)分庫(kù),緩存,索引等,這里我們只關(guān)注服務(wù)層面的隔離。

降級(jí)和熔斷的區(qū)別

服務(wù)降級(jí)和熔斷在概念上比較相近,通過(guò)兩個(gè)場(chǎng)景,談?wù)勎易约旱睦斫狻?/p>

熔斷,一般是停止服務(wù):典型的就是股市的熔斷,如果大盤(pán)不受控制,直接休市,不提供服務(wù),是保護(hù)大盤(pán)的一種方式。

降級(jí),通常是有備用方案:從北京到濟(jì)南,下雨導(dǎo)致航班延誤,我可以乘坐高鐵,如果高鐵票買不到,也可以乘坐汽車或者開(kāi)車過(guò)去。

兩者的區(qū)別:降級(jí)一般是主動(dòng)的,有預(yù)見(jiàn)性的,熔斷通常是被動(dòng)的,服務(wù) A 降級(jí)以后,一般會(huì)有服務(wù) B 來(lái)代替,而熔斷通常是針對(duì)核心鏈路的處理。

在實(shí)際開(kāi)發(fā)中,熔斷的下一步通常就是降級(jí)。

常用限流算法設(shè)計(jì)

剛才講了限流的概念,那么怎樣判斷系統(tǒng)到達(dá)設(shè)置的流量閾值了?這就需要一些限流策略來(lái)支持,不同的限流算法有不同的特點(diǎn),平滑程度也不同。

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

計(jì)數(shù)器法是限流算法里最簡(jiǎn)單也是最容易實(shí)現(xiàn)的一種算法。

假設(shè)一個(gè)接口限制一分鐘內(nèi)的訪問(wèn)次數(shù)不能超過(guò) 100 個(gè),維護(hù)一個(gè)計(jì)數(shù)器,每次有新的請(qǐng)求過(guò)來(lái),計(jì)數(shù)器加一。

這時(shí)候判斷,如果計(jì)數(shù)器的值小于限流值,并且與上一次請(qǐng)求的時(shí)間間隔還在一分鐘內(nèi),允許請(qǐng)求通過(guò),否則拒絕請(qǐng)求,如果超出了時(shí)間間隔,要將計(jì)數(shù)器清零。

  1. public class CounterLimiter { 
  2.  
  3.     //初始時(shí)間 
  4.     private static long startTime = System.currentTimeMillis(); 
  5.  
  6.     //初始計(jì)數(shù)值 
  7.     private static final AtomicInteger ZERO = new AtomicInteger(0); 
  8.  
  9.     //時(shí)間窗口限制 
  10.     private static final long interval = 10000; 
  11.  
  12.     //限制通過(guò)請(qǐng)求 
  13.     private static int limit = 100; 
  14.  
  15.     //請(qǐng)求計(jì)數(shù) 
  16.     private AtomicInteger requestCount = ZERO; 
  17.  
  18.     //獲取限流 
  19.     public boolean tryAcquire() { 
  20.  
  21.         long now = System.currentTimeMillis(); 
  22.  
  23.         //在時(shí)間窗口內(nèi) 
  24.         if (now < startTime + interval) { 
  25.  
  26.             //判斷是否超過(guò)最大請(qǐng)求 
  27.             if (requestCount.get() < limit) { 
  28.                 requestCount.incrementAndGet(); 
  29.                 return true
  30.             } 
  31.             return false
  32.  
  33.         } else { 
  34.  
  35.             //超時(shí)重置 
  36.             startTime = now; 
  37.             requestCount = ZERO; 
  38.             return true
  39.         } 
  40.  
  41.     } 

計(jì)數(shù)器限流可以比較容易的應(yīng)用在分布式環(huán)境中,用一個(gè)單點(diǎn)的存儲(chǔ)來(lái)保存計(jì)數(shù)值,比如用 Redis,并且設(shè)置自動(dòng)過(guò)期時(shí)間,這時(shí)候就可以統(tǒng)計(jì)整個(gè)集群的流量,并且進(jìn)行限流。

計(jì)數(shù)器方式的缺點(diǎn)是不能處理臨界問(wèn)題,或者說(shuō)限流策略不夠平滑。

假設(shè)在限流臨界點(diǎn)的前后,分別發(fā)送 100 個(gè)請(qǐng)求,實(shí)際上在計(jì)數(shù)器置 0 前后的極短時(shí)間里,處理了 200 個(gè)請(qǐng)求,這是一個(gè)瞬時(shí)的高峰,可能會(huì)超過(guò)系統(tǒng)的限制。

計(jì)數(shù)器限流允許出現(xiàn) 2*permitsPerSecond 的突發(fā)流量,可以使用滑動(dòng)窗口算法去優(yōu)化,具體不展開(kāi)。

漏桶算法

假設(shè)我們有一個(gè)固定容量的桶,桶底部可以漏水(忽略氣壓等,不是物理問(wèn)題),并且這個(gè)漏水的速率可控的,那么我們可以通過(guò)這個(gè)桶來(lái)控制請(qǐng)求速度,也就是漏水的速度。

我們不關(guān)心流進(jìn)來(lái)的水,也就是外部請(qǐng)求有多少,桶滿了之后,多余的水會(huì)溢出。

漏桶算法的示意圖如下:

 

將算法中的水換成實(shí)際應(yīng)用中的請(qǐng)求,可以看到漏桶算法從入口限制了請(qǐng)求的速度。

使用漏桶算法,我們可以保證接口會(huì)以一個(gè)常速速率來(lái)處理請(qǐng)求,所以漏桶算法不會(huì)出現(xiàn)臨界問(wèn)題。

這里簡(jiǎn)單實(shí)現(xiàn)一下,也可以使用 Guava 的 SmoothWarmingUp 類,可以更好的控制漏桶算法:

  1. public class LeakyLimiter { 
  2.  
  3.     //桶的容量 
  4.     private int capacity; 
  5.  
  6.     //漏水速度 
  7.     private int ratePerMillSecond; 
  8.  
  9.     //水量 
  10.     private double water; 
  11.  
  12.     //上次漏水時(shí)間 
  13.     private long lastLeakTime; 
  14.  
  15.     public LeakyLimiter(int capacity, int ratePerMillSecond) { 
  16.  
  17.         this.capacity = capacity; 
  18.         this.ratePerMillSecond = ratePerMillSecond; 
  19.         this.water = 0; 
  20.     } 
  21.  
  22.  
  23.     //獲取限流 
  24.     public boolean tryAcquire() { 
  25.  
  26.         //執(zhí)行漏水,更新剩余水量 
  27.         refresh(); 
  28.  
  29.         //嘗試加水,水滿則拒絕 
  30.         if (water + 1 > capacity) { 
  31.             return false
  32.         } 
  33.  
  34.         water = water + 1; 
  35.         return true
  36.  
  37.     } 
  38.  
  39.     private void refresh() { 
  40.         //當(dāng)前時(shí)間 
  41.         long currentTime = System.currentTimeMillis(); 
  42.  
  43.         if (currentTime > lastLeakTime) { 
  44.  
  45.             //距上次漏水的時(shí)間間隔 
  46.             long millisSinceLastLeak = currentTime - lastLeakTime; 
  47.             long leaks = millisSinceLastLeak * ratePerMillSecond; 
  48.  
  49.             //允許漏水 
  50.             if (leaks > 0) { 
  51.                 //已經(jīng)漏光 
  52.                 if (water <= leaks) { 
  53.                     water = 0; 
  54.                 } else { 
  55.                     water = water - leaks; 
  56.                 } 
  57.                 this.lastLeakTime = currentTime; 
  58.             } 
  59.         } 
  60.     } 

令牌桶算法

漏桶是控制水流入的速度,令牌桶則是控制留出,通過(guò)控制 Token,調(diào)節(jié)流量。

假設(shè)一個(gè)大小恒定的桶,桶里存放著令牌(Token)。桶一開(kāi)始是空的,現(xiàn)在以一個(gè)固定的速率往桶里填充,直到達(dá)到桶的容量,多余的令牌將會(huì)被丟棄。

如果令牌不被消耗,或者被消耗的速度小于產(chǎn)生的速度,令牌就會(huì)不斷地增多,直到把桶填滿。后面再產(chǎn)生的令牌就會(huì)從桶中溢出。

 

最后桶中可以保存的最大令牌數(shù)永遠(yuǎn)不會(huì)超過(guò)桶的大小,每當(dāng)一個(gè)請(qǐng)求過(guò)來(lái)時(shí),就會(huì)嘗試從桶里移除一個(gè)令牌,如果沒(méi)有令牌的話,請(qǐng)求無(wú)法通過(guò)。

  1. public class TokenBucketLimiter { 
  2.  
  3.     private long capacity; 
  4.     private long windowTimeInSeconds; 
  5.     long lastRefillTimeStamp; 
  6.     long refillCountPerSecond; 
  7.     long availableTokens; 
  8.  
  9.     public TokenBucketLimiter(long capacity, long windowTimeInSeconds) { 
  10.         this.capacity = capacity; 
  11.         this.windowTimeInSeconds = windowTimeInSeconds; 
  12.         lastRefillTimeStamp = System.currentTimeMillis(); 
  13.         refillCountPerSecond = capacity / windowTimeInSeconds; 
  14.         availableTokens = 0; 
  15.     } 
  16.  
  17.     public long getAvailableTokens() { 
  18.         return this.availableTokens; 
  19.     } 
  20.  
  21.     public boolean tryAcquire() { 
  22.  
  23.         //更新令牌桶 
  24.         refill(); 
  25.  
  26.         if (availableTokens > 0) { 
  27.             --availableTokens; 
  28.             return true
  29.         } else { 
  30.             return false
  31.         } 
  32.     } 
  33.  
  34.  
  35.     private void refill() { 
  36.         long now = System.currentTimeMillis(); 
  37.  
  38.         if (now > lastRefillTimeStamp) { 
  39.  
  40.             long elapsedTime = now - lastRefillTimeStamp; 
  41.  
  42.             int tokensToBeAdded = (int) ((elapsedTime / 1000) * refillCountPerSecond); 
  43.  
  44.             if (tokensToBeAdded > 0) { 
  45.                 availableTokens = Math.min(capacity, availableTokens + tokensToBeAdded); 
  46.                 lastRefillTimeStamp = now; 
  47.             } 
  48.         } 
  49.     } 
  50.  

這兩種算法的主要區(qū)別在于漏桶算法能夠強(qiáng)行限制數(shù)據(jù)的傳輸速率,而令牌桶算法在能夠限制數(shù)據(jù)的平均傳輸速率外,還允許某種程度的突發(fā)傳輸。

在令牌桶算法中,只要令牌桶中存在令牌,那么就允許突發(fā)地傳輸數(shù)據(jù)直到達(dá)到用戶配置的門(mén)限,因此它適合于具有突發(fā)特性的流量。

漏桶和令牌桶的比較

漏桶和令牌桶算法實(shí)現(xiàn)可以一樣,但是方向是相反的,對(duì)于相同的參數(shù)得到的限流效果是一樣的。

主要區(qū)別在于令牌桶允許一定程度的突發(fā),漏桶主要目的是平滑流入速率,考慮一個(gè)臨界場(chǎng)景,令牌桶內(nèi)積累了 100 個(gè) Token,可以在一瞬間通過(guò)。

但是因?yàn)橄乱幻氘a(chǎn)生 Token 的速度是固定的,所以令牌桶允許出現(xiàn)瞬間出現(xiàn) permitsPerSecond 的流量,但是不會(huì)出現(xiàn) 2*permitsPerSecond 的流量,漏桶的速度則始終是平滑的。

使用 RateLimiter 實(shí)現(xiàn)限流

Google 開(kāi)源工具包 Guava 提供了限流工具類 RateLimiter,該類基于令牌桶算法實(shí)現(xiàn)流量限制,使用方便。

RateLimiter 使用的是令牌桶的流控算法,RateLimiter 會(huì)按照一定的頻率往桶里扔令牌,線程拿到令牌才能執(zhí)行。

比如你希望自己的應(yīng)用程序 QPS 不要超過(guò) 1000,那么 RateLimiter 設(shè)置 1000 的速率后,就會(huì)每秒往桶里扔 1000 個(gè)令牌,看下方法的說(shuō)明:

 

RateLimter 提供的 API 可以直接應(yīng)用,其中 acquire 會(huì)阻塞,類似 JUC 的信號(hào)量 Semphore,tryAcquire 方法則是非阻塞的:

  1. public class RateLimiterTest { 
  2.  
  3.     public static void main(String[] args) throws InterruptedException { 
  4.  
  5.         //允許10個(gè),permitsPerSecond 
  6.         RateLimiter limiter = RateLimiter.create(10); 
  7.  
  8.         for(int i=1;i<20;i++){ 
  9.             if (limiter.tryAcquire(1)){ 
  10.                 System.out.println("第"+i+"次請(qǐng)求成功"); 
  11.             }else
  12.                 System.out.println("第"+i+"次請(qǐng)求拒絕"); 
  13.             } 
  14.         } 
  15.     } 

總結(jié)

本文從服務(wù)可用性開(kāi)始,分析了在業(yè)務(wù)高峰期通過(guò)限流降級(jí)保障服務(wù)高可用的重要性。

接下來(lái)分別探討了限流,降級(jí),熔斷,隔離的概念和應(yīng)用,并且介紹了常用的限流策略。

作者:邴越

簡(jiǎn)介:某電商平臺(tái)架構(gòu)師,曾任阿里巴巴中臺(tái)資深開(kāi)發(fā)工程師,云棲社區(qū)專家,關(guān)注分布式系統(tǒng)和高可用架構(gòu)。

 

責(zé)任編輯:武曉燕 來(lái)源: 博客園
相關(guān)推薦

2022-08-04 20:41:42

高并發(fā)流量SQL

2025-07-09 04:00:00

Kafka億級(jí)流量高并發(fā)

2025-10-16 02:11:00

SpingCloudGateway

2019-11-18 08:21:04

秒殺系統(tǒng)高性能

2025-06-05 01:22:00

SpringGateway高并發(fā)

2025-10-09 05:22:00

2020-01-06 08:40:11

阿里場(chǎng)景服務(wù)

2022-11-21 06:40:23

微服務(wù)架構(gòu)

2022-11-06 18:17:43

Java核心系統(tǒng)鏈路

2025-09-11 09:11:36

2021-08-26 11:10:42

架構(gòu)運(yùn)維技術(shù)

2019-12-04 09:05:15

千萬(wàn)級(jí)流量高并發(fā)

2025-11-03 04:15:00

2024-05-27 08:32:45

2025-08-20 09:17:41

2024-03-04 00:02:00

Redis存儲(chǔ)令牌

2025-05-12 08:24:04

高并發(fā)流量系統(tǒng)

2021-11-16 19:24:06

數(shù)字化

2025-02-14 03:00:00

2022-04-12 07:51:31

架構(gòu)TPSQPS
點(diǎn)贊
收藏

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

色屁屁www国产馆在线观看| 韩国av免费观看| 国产精品亚洲欧美一级在线 | 三上悠亚在线观看视频| 精品一区二区三区中文字幕 | 久久精品一区中文字幕| av地址在线观看| 韩国主播福利视频一区二区三区| 国产精品色噜噜| 国产不卡一区二区在线观看 | av电影免费在线看| 欧美国产精品劲爆| 国内一区二区在线视频观看| 欧美激情一区二区三区免费观看| 午夜精品免费| 一区二区三区黄色| 欧美一级片黄色| 国产成人免费av一区二区午夜| 午夜a成v人精品| 香蕉视频在线网址| 国产视频福利在线| 北岛玲一区二区三区四区| 成人免费福利在线| 超碰在线97观看| 一区二区动漫| 欧美精品一二区| 一本色道久久88| 神马电影久久| 亚洲成人激情在线| 亚洲视频在线不卡| 玛雅亚洲电影| 香蕉久久一区二区不卡无毒影院| 992tv成人免费观看| 黄色片免费在线| 91小视频免费观看| 成人动漫视频在线观看免费| 一级做a爱片久久毛片| 美女尤物久久精品| 欧美极品欧美精品欧美| 精品亚洲综合| av中文一区二区三区| 91中文在线观看| 中国老头性行为xxxx| 亚洲在线电影| 98精品国产自产在线观看| 免费又黄又爽又色的视频| 天天做天天爱天天综合网2021 | 亚洲熟妇一区二区| 精品国产鲁一鲁****| 欧美久久久久久蜜桃| 国产wwwxx| av在线一区不卡| 在线亚洲一区二区| 欧美日韩怡红院| 卡通欧美亚洲| 欧美在线免费观看视频| 9久久婷婷国产综合精品性色 | 在线观看视频一区| 无码日韩人妻精品久久蜜桃| 欧美黑人一区| 在线免费视频一区二区| 亚洲色精品三区二区一区| 国产精品迅雷| 在线观看视频91| 污色网站在线观看| 亚洲网站三级| 欧美一级精品在线| 日本久久久久久久久久| 开心激情综合| 亚洲人成在线观看网站高清| 欧美三级视频网站| 久久精品青草| 欧美极品少妇与黑人| 日韩av在线天堂| 欧美资源在线| 国产专区精品视频| 亚洲成人一级片| 99久久精品情趣| 欧美午夜精品久久久久免费视| 国产在线中文字幕| 亚洲欧洲成人精品av97| 成品人视频ww入口| 天天免费亚洲黑人免费| 欧美欧美欧美欧美| 亚洲美女高潮久久久| 日韩av网址大全| 深夜福利亚洲导航| 精品少妇爆乳无码av无码专区| 国产精品女主播一区二区三区| 国产精品91久久久| 国产色视频在线| www国产精品av| 一个色的综合| 色老头在线观看| 色av成人天堂桃色av| 天天操精品视频| 先锋影音国产精品| 久久视频在线免费观看| 国产剧情在线视频| 国产高清不卡二三区| 欧美日韩电影一区二区| 国产高清一区二区三区视频| 五月婷婷久久综合| 国产美女18xxxx免费视频| 黑色丝袜福利片av久久| 精品国产自在精品国产浪潮| 国产精品美女久久久久av爽| 精品一区二区三区在线播放| 精品一区二区久久久久久久网站| 日本三级在线视频| 欧美日韩精品在线观看| 国模大尺度视频| 欧美精品尤物在线观看| 2019国产精品自在线拍国产不卡| 一区二区精品视频在线观看| 91免费小视频| 国产成人永久免费视频| 欧美亚洲黄色| 国产亚洲一区二区在线| 五月天婷婷久久| 国产精品18久久久| 亚洲欧美日韩精品在线| 午夜影院在线播放| 精品国产乱子伦一区| 久热这里有精品| 麻豆精品国产91久久久久久| 另类小说综合网| hd国产人妖ts另类视频| 欧美一区二区播放| 人妻互换一区二区激情偷拍| 999在线观看精品免费不卡网站| 91黄色国产视频| 九义人在线观看完整免费版电视剧| 在线观看免费视频综合| 免费看黄色aaaaaa 片| 国自产拍偷拍福利精品免费一 | 国产一级片免费视频| 波多野结衣中文一区| 久久久久久久久久伊人| av在线国产精品| 日韩综合视频在线观看| 中文字幕乱码中文字幕| 国产欧美日韩激情| 国产精品久久久久9999小说| 亚洲精品小区久久久久久| 97色在线视频| 亚洲欧美日本在线观看| 午夜精品久久久久影视| 男男一级淫片免费播放| 亚洲小说欧美另类婷婷| 国产高清精品一区二区| 青春草免费在线视频| 精品国产精品网麻豆系列| 久热精品在线观看| 成人动漫一区二区三区| 国产人妻777人伦精品hd| 激情小说一区| 欧美最猛性xxxxx免费| 人成免费电影一二三区在线观看| 狠狠久久亚洲欧美专区| 亚洲第一成人网站| 丝袜美腿亚洲色图| 一区二区三区视频在线播放| 日韩成人在线一区| 欧美老少配视频| 国产91免费在线观看| 狠狠色香婷婷久久亚洲精品| 国产又粗又猛又爽视频| 秋霞国产午夜精品免费视频| 一区二区三区我不卡| 精品国产三级| 97在线看福利| 国产毛片av在线| 欧美老女人在线| 久久在线视频精品| 久久久久久久久久久久久女国产乱| 黄色av免费在线播放| 国产高清久久| 国产乱子伦精品| 成人自拍av| 久久久精品国产亚洲| 欧美 日韩 国产 成人 在线 91 | 日韩伦理一区二区三区| 国产精品wwww| 性xxxxfjsxxxxx欧美| 亚洲黄页视频免费观看| 中国一级片黄色一级片黄| 一区二区三区欧美| 90岁老太婆乱淫| 国产一区二区在线看| 自慰无码一区二区三区| 久久日文中文字幕乱码| 国产欧美一区二区三区不卡高清| 亚洲欧美在线成人| 欧美激情第三页| 成人在线观看网站| 精品久久人人做人人爰| 中文字幕在线天堂| 亚洲一区电影777| 任你操精品视频| www.色综合.com| 天天操精品视频| 日本中文在线一区| 欧美一级欧美一级| 亚洲第一天堂| 亚洲国产精品视频一区| 欧美xxxx在线| 亚洲专区国产精品| 日本美女久久| 日本成人激情视频| 污污片在线免费视频| 中文字幕亚洲欧美日韩在线不卡| 内射后入在线观看一区| 欧美一区二区视频网站| 中国一级特黄视频| 欧美午夜激情视频| 久久一级黄色片| 亚洲精选视频在线| 国产一区在线观看免费| 国产亚洲成av人在线观看导航| 怡红院一区二区| 国产美女一区二区三区| 在线看的黄色网址| 久久精品人人| 国内性生活视频| 在线高清一区| av网站大全免费| 神马影视一区二区| 精品日韩成人av| 在线免费看av的网站| 精品免费在线观看| 久久婷婷国产麻豆91| 中文字幕欧美一区| 天堂资源在线视频| 国产午夜精品一区二区| 给我看免费高清在线观看| 成人黄色在线看| 高清中文字幕mv的电影| 国产东北露脸精品视频| 手机免费av片| 久色婷婷小香蕉久久| 午夜视频你懂的| 日韩av午夜在线观看| 亚洲人成色77777| 亚洲欧洲午夜| 少妇高潮毛片色欲ava片| 在线国产日韩| 国产精品333| 最新成人av网站| 91传媒久久久| 久久亚洲影院| 欧美日韩怡红院| 美女网站在线免费欧美精品| www.com黄色片| 精品亚洲porn| 性生活一级大片| 国产91高潮流白浆在线麻豆| 亚洲成年人av| 99精品久久久久久| 新91视频在线观看| 国产精品全国免费观看高清| 在线观看黄网址| 一区二区三区久久| 国产精品黄色大片| 91久久奴性调教| 国产又粗又黄又爽视频| 日韩欧美资源站| 天天操天天干天天操| 亚洲人成人99网站| 日韩伦理在线电影| 欧美激情videos| 天堂√中文最新版在线| 国产精品视频资源| 日本一区二区三区电影免费观看| 国产精品果冻传媒潘| 精品在线91| 异国色恋浪漫潭| 国产精品久久久久毛片大屁完整版| 久久人妻精品白浆国产| 久久精品久久久精品美女| 特黄特色免费视频| 91免费版在线| 国产黄色片在线| 一区二区三区在线播放| 精品免费囯产一区二区三区| 日本韩国一区二区| a级片在线视频| 国产视频丨精品|在线观看| 91网页在线观看| 97国产一区二区精品久久呦| 亚洲成人av观看| av一区二区三区免费| 国产不卡av一区二区| 色哺乳xxxxhd奶水米仓惠香| 亚洲大片av| 欧美美女一级片| 99r国产精品| 亚洲一二三在线观看| 狠狠躁夜夜躁人人躁婷婷91 | 老牛嫩草一区二区三区日本 | 色婷婷av一区二区三区久久| av福利导福航大全在线| 国产自摸综合网| 四虎5151久久欧美毛片| 黄色a级在线观看| 久久久蜜桃一区二区人| 国产精品无码自拍| 亚洲欧洲www| 国产美女www| 亚洲成人免费在线视频| 久草免费在线观看| 国产极品jizzhd欧美| 久久男人av| 强开小嫩苞一区二区三区网站| 日韩精品亚洲一区二区三区免费| 91亚洲一线产区二线产区| 中文字幕亚洲在| 精品久久久久久久久久久久久久久久久久 | 中文字幕在线国产精品| 日韩影院在线| 国产精品一区二区在线观看 | 国产精品白浆| 亚洲美女自拍偷拍| 久久99久久99| 国产视频123区| 日本韩国欧美一区| 毛片免费在线观看| 日av在线播放中文不卡| 老司机精品视频在线播放| 少妇久久久久久被弄到高潮| 国产在线播放一区| 五月天免费网站| 欧美日韩午夜影院| 福利小视频在线观看| 日本久久久久久久久| 欧美18免费视频| 超碰成人免费在线| 豆国产96在线|亚洲| www.色小姐com| 日韩欧美中文字幕公布| av网站网址在线观看| 成人欧美一区二区三区黑人孕妇| 日韩欧美中字| 国产99久久久久久免费看| 亚洲永久精品大片| 国产普通话bbwbbwbbw| 色哟哟入口国产精品| 欧美日韩国产网站| 色播亚洲婷婷| 日韩黄色在线观看| 亚洲综合色一区| 欧美曰成人黄网| 超碰免费在线观看| 国产精品嫩草影院久久久| 欧美日韩国产免费观看视频| 热久久精品免费视频| 国产亚洲1区2区3区| 嫩草影院一区二区三区| 亚洲三级免费看| 九七影院97影院理论片久久| 一区二区不卡在线| 国产一区二区三区国产| 青青草原在线免费观看视频| 欧美变态tickle挠乳网站| 丁香花在线观看完整版电影| 国产自产精品| 久久久成人网| 91无套直看片红桃在线观看| 欧美日本韩国一区| 欧洲成人综合网| 欧美日本国产精品| 久久99久久精品| 国产在线成人精品午夜| 日韩精品视频在线| 福利一区二区三区视频在线观看| 一区中文字幕在线观看| 岛国av在线一区| 麻豆精品久久久久久久99蜜桃| 尤物yw午夜国产精品视频| 97久久中文字幕| 精品无码国产一区二区三区av| 久久久一区二区三区| 在线观看亚洲国产| 欧美黑人一级爽快片淫片高清| 亚洲素人在线| 久久精品久久99| 疯狂做受xxxx欧美肥白少妇| 成年人视频在线观看免费| 91传媒视频免费| 日韩va亚洲va欧美va久久| 国产人妻精品一区二区三区不卡| 亚洲成色www8888| 久久亚洲国产精品尤物| 日韩视频在线视频| 国产精品美女久久福利网站| 色哟哟中文字幕| 成人性教育视频在线观看| 中文亚洲字幕| 欧美日韩亚洲国产另类| 亚洲三级av在线|