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

億級流量架構的服務限流思路與方法

新聞 前端
限流算法很多,常見的有三類,分別是計數器算法、漏桶算法、令牌桶算法,下面逐一講解。

 [[428295]]

為什么要限流

日常生活中,有哪些需要限流的地方?

像我旁邊有一個國家景區,平時可能根本沒什么人前往,但是一到五一或者春節就人滿為患,這時候景區管理人員就會實行一系列的政策來限制進入人流量。

為什么要限流呢?假如景區能容納一萬人,現在進去了三萬人,勢必摩肩接踵,整不好還會有事故發生,這樣的結果就是所有人的體驗都不好,如果發生了事故景區可能還要關閉,導致對外不可用,這樣的后果就是所有人都覺得體驗糟糕透了。

限流的思想就是在保證可用的情況下盡可能多增加進入的人數,其余的人在外面排隊等待,保證里面的一萬人可以正常游玩。

回到網絡上,同樣也是這個道理,例如某某明星公布了戀情,訪問從平時的50萬增加到了500萬,系統最多可以支撐200萬訪問,那么就要執行限流規則,保證是一個可用的狀態,不至于服務器崩潰導致所有請求不可用。

限流思路

對系統服務進行限流,一般有如下幾個模式:

熔斷

系統在設計之初就把熔斷措施考慮進去。當系統出現問題時,如果短時間內無法修復,系統要自動做出判斷,開啟熔斷開關,拒絕流量訪問,避免大流量對后端的過載請求。

系統也應該能夠動態監測后端程序的修復情況,當程序已恢復穩定時,可以關閉熔斷開關,恢復正常服務。常見的熔斷組件有Hystrix以及阿里的Sentinel,兩種互有優缺點,可以根據業務的實際情況進行選擇。

服務降級

將系統的所有功能服務進行一個分級,當系統出現問題需要緊急限流時,可將不是那么重要的功能進行降級處理,停止服務,這樣可以釋放出更多的資源供給核心功能的去用。

例如在電商平臺中,如果突發流量激增,可臨時將商品評論、積分等非核心功能進行降級,停止這些服務,釋放出機器和CPU等資源來保障用戶正常下單,而這些降級的功能服務可以等整個系統恢復正常后,再來啟動,進行補單/補償處理。除了功能降級以外,還可以采用不直接操作數據庫,而全部讀緩存、寫緩存的方式作為臨時降級方案。

延遲處理

這個模式需要在系統的前端設置一個流量緩沖池,將所有的請求全部緩沖進這個池子,不立即處理。然后后端真正的業務處理程序從這個池子中取出請求依次處理,常見的可以用隊列模式來實現。這就相當于用異步的方式去減少了后端的處理壓力,但是當流量較大時,后端的處理能力有限,緩沖池里的請求可能處理不及時,會有一定程度延遲。后面具體的漏桶算法以及令牌桶算法就是這個思路。

特權處理

這個模式需要將用戶進行分類,通過預設的分類,讓系統優先處理需要高保障的用戶群體,其它用戶群的請求就會延遲處理或者直接不處理。

緩存、降級、限流區別

  • 緩存是用來增加系統吞吐量,提升訪問速度提供高并發。
  • 降級是在系統某些服務組件不可用的時候、流量暴增、資源耗盡等情況下,暫時屏蔽掉出問題的服務,繼續提供降級服務,給用戶盡可能的友好提示,返回兜底數據,不會影響整體業務流程,待問題解決再重新上線服務
  • 限流是指在使用緩存和降級無效的場景。比如當達到閾值后限制接口調用頻率,訪問次數,庫存個數等,在出現服務不可用之前,提前把服務降級。只服務好一部分用戶。

 限流的算法

限流算法很多,常見的有三類,分別是計數器算法、漏桶算法、令牌桶算法,下面逐一講解。

計數器算法

簡單粗暴,比如指定線程池大小,指定數據庫連接池大小、Nginx連接數等,這都屬于計數器算法。

計數器算法是限流算法里最簡單也是最容易實現的一種算法。舉個例子,比如我們規定對于A接口,我們1分鐘的訪問次數不能超過100個。那么我們可以這么做:在一開始的時候,我們可以設置一個計數器counter,每當一個請求過來的時候,counter就加1,如果counter的值大于100并且該請求與第一個請求的間隔時間還在1分鐘之內,那么說明請求數過多,拒絕訪問;如果該請求與第一個請求的間隔時間大于1分鐘,且counter的值還在限流范圍內,那么就重置counter,就是這么簡單粗暴。

漏桶算法

漏桶算法思路很簡單,水(請求)先進入到漏桶里,漏桶以一定的速度出水,當水流入速度過大會超過桶可接納的容量時直接溢出,可以看出漏桶算法能強行限制數據的傳輸速率。

這樣做的好處是:

  • 削峰:有大量流量進入時,會發生溢出,從而限流保護服務可用
  • 緩沖:不至于直接請求到服務器,緩沖壓力

令牌桶算法

令牌桶與漏桶相似,不同的是令牌桶桶中放了一些令牌,服務請求到達后,要獲取令牌之后才會得到服務,舉個例子,我們平時去食堂吃飯,都是在食堂內窗口前排隊的,這就好比是漏桶算法,大量的人員聚集在食堂內窗口外,以一定的速度享受服務,如果涌進來的人太多,食堂裝不下了,可能就有一部分人站到食堂外了,這就沒有享受到食堂的服務,稱之為溢出,溢出可以繼續請求,也就是繼續排隊,那么這樣有什么問題呢?

如果這時候有特殊情況,比如有些趕時間的志愿者啦、或者高三要高考啦,這種情況就是突發情況,如果也用漏桶算法那也得慢慢排隊,這也就沒有解決我們的需求,對于很多應用場景來說,除了要求能夠限制數據的平均傳輸速率外,還要求允許某種程度的突發傳輸。這時候漏桶算法可能就不合適了,令牌桶算法更為適合。如圖所示,令牌桶算法的原理是系統會以一個恒定的速度往桶里放入令牌,而如果請求需要被處理,則需要先從桶里獲取一個令牌,當桶里沒有令牌可取時,則拒絕服務。

令牌桶好處就是,如果某一瞬間訪問量劇增或者有突發情況,可以通過改變桶中令牌數量來改變連接數,就好比那個食堂排隊吃飯的問題,如果現在不是直接去窗口排隊,而是先來樓外拿飯票然后再去排隊,那么有高三的學生時可以將增加飯票數量或者優先將令牌給高三的學生,這樣比漏桶算法更加靈活。

并發限流

簡單來說就是設置系統閾值總的QPS個數,這些也挺常見的,就拿Tomcat來說,很多參數就是出于這個考慮,例如配置的acceptCount設置響應連接數,maxConnections設置瞬時最大連接數,maxThreads設置最大線程數,在各個框架或者組件中,并發限流體現在下面幾個方面:

  • 限制總并發數(如數據庫連接池、線程池)
  • 限制瞬時并發數(Nginx的limit_conn模塊,用來限制瞬時并發連接數)
  • 限制時間窗口內的平均速率(如Guava的RateLimiter、Nginx的limit_req模塊,限制每秒的平均速率)
  • 其他的還有限制遠程接口調用速率、限制MQ的消費速率。
  • 另外還可以根據網絡連接數、網絡流量、CPU或內存負載等來限流。

有了并發限流,就意味著在處理高并發的時候多了一種保護機制,不用擔心瞬間流量導致系統掛掉或雪崩,最終做到有損服務而不是不服務;但是限流需要評估好,不能亂用,否則一些正常流量出現一些奇怪的問題而導致用戶體驗很差造成用戶流失。

接口限流

接口限流分為兩個部分,一是限制一段時間內接口調用次數,參照前面限流算法的計數器算法,二是設置滑動時間窗口算法。

接口總數

控制一段時間內接口被調用的總數量,可以參考前面的計數器算法,不再贅述。

接口時間窗口

固定時間窗口算法(也就是前面提到的計數器算法)的問題是統計區間太大,限流不夠精確,而且在第二個統計區間時沒有考慮與前一個統計區間的關系與影響(第一個區間后半段 + 第二個區間前半段也是一分鐘)。為了解決上面我們提到的臨界問題,我們試圖把每個統計區間分為更小的統計區間,更精確的統計計數。

在上面的例子中,假設QPS可以接受100次查詢/秒,前一分鐘前40秒訪問很低,后20秒突增,并且這個持續了一段時間,直到第二分鐘的第40秒才開始降下來,根據前面的計數方法,前一秒的QPS為94,后一秒的QPS為92,那么沒有超過設定參數,但是!但是在中間區域,QPS達到了142,這明顯超過了我們的允許的服務請求數目,所以固定窗口計數器不太可靠,需要滑動窗口計數器。

計數器算法其實就是固定窗口算法,只是它沒有對時間窗口做進一步地劃分,所以只有1格;由此可見,當滑動窗口的格子劃分的越多,也就是將秒精確到毫秒或者納秒,那么滑動窗口的滾動就越平滑,限流的統計就會越精確。需要注意的是,消耗的空間就越多。

限流實現

這一部分是限流的具體實現,簡單說說,畢竟長篇代碼沒人愿意看。

guava實現

引入包:

  1. <!-- https://mvnrepository.com/artifact/com.google.guava/guava --> 
  2. <dependency> 
  3. <groupId>com.google.guava</groupId> 
  4. <artifactId>guava</artifactId> 
  5. <version>28.1-jre</version> 
  6. </dependency> 


核心代碼:

  1. LoadingCache<Long, AtomicLong> counter = CacheBuilder.newBuilder(). 
  2.             expireAfterWrite(2, TimeUnit.SECONDS) 
  3.             .build(new CacheLoader<Long, AtomicLong>() { 
  4.  
  5.                 @Override 
  6.                 public AtomicLong load(Long secend) throws Exception { 
  7.                     // TODO Auto-generated method stub 
  8.                     return new AtomicLong(0); 
  9.                 } 
  10.             }); 
  11.     counter.get(1l).incrementAndGet(); 

 令牌桶實現

穩定模式(SmoothBursty:令牌生成速度恒定):

  1. public static void main(String[] args) { 
  2.     // RateLimiter.create(2)每秒產生的令牌數 
  3.     RateLimiter limiter = RateLimiter.create(2); 
  4.     // limiter.acquire() 阻塞的方式獲取令牌 
  5.     System.out.println(limiter.acquire());; 
  6.     try { 
  7.         Thread.sleep(2000); 
  8.     } catch (InterruptedException e) { 
  9.         // TODO Auto-generated catch block 
  10.         e.printStackTrace(); 
  11.     } 
  12.     System.out.println(limiter.acquire());; 
  13.     System.out.println(limiter.acquire());; 
  14.     System.out.println(limiter.acquire());; 
  15.     System.out.println(limiter.acquire());; 
  16.  
  17.     System.out.println(limiter.acquire());; 
  18.     System.out.println(limiter.acquire());; 
  19. }  

RateLimiter.create(2)容量和突發量,令牌桶算法允許將一段時間內沒有消費的令牌暫存到令牌桶中,用來突發消費。

漸進模式(SmoothWarmingUp:令牌生成速度緩慢提升直到維持在一個穩定值):

  1. // 平滑限流,從冷啟動速率(滿的)到平均消費速率的時間間隔 
  2.     RateLimiter limiter = RateLimiter.create(2,1000l,TimeUnit.MILLISECONDS); 
  3.     System.out.println(limiter.acquire());; 
  4.     try { 
  5.         Thread.sleep(2000); 
  6.     } catch (InterruptedException e) { 
  7.         // TODO Auto-generated catch block 
  8.         e.printStackTrace(); 
  9.     } 
  10.     System.out.println(limiter.acquire());; 
  11.     System.out.println(limiter.acquire());; 
  12.     System.out.println(limiter.acquire());; 
  13.     System.out.println(limiter.acquire());; 
  14.  
  15.     System.out.println(limiter.acquire());; 
  16.     System.out.println(limiter.acquire());; 


超時:

  1. boolean tryAcquire = limiter.tryAcquire(Duration.ofMillis(11)); 

在timeout時間內是否能夠獲得令牌,異步執行。

分布式系統限流

Nginx + Lua實現

可以使用resty.lock保持原子特性,請求之間不會產生鎖的重入。

https://github.com/openresty/lua-resty-lock

使用lua_shared_dict存儲數據:

  1. local locks = require "resty.lock" 
  2.  
  3. local function acquire() 
  4. local lock =locks:new("locks"
  5. local elapsed, err =lock:lock("limit_key") --互斥鎖 保證原子特性 
  6. local limit_counter =ngx.shared.limit_counter --計數器 
  7.  
  8. local key = "ip:" ..os.time() 
  9. local limit = 5 --限流大小 
  10. local current =limit_counter:get(key) 
  11.  
  12. if current ~= nil and current + 1> limit then --如果超出限流大小 
  13.    lock:unlock() 
  14.    return 0 
  15. end 
  16. if current == nil then 
  17.    limit_counter:set(key, 11) --第一次需要設置過期時間,設置key的值為1, 
  18. --過期時間為1秒 
  19. else 
  20.     limit_counter:incr(key, 1) --第二次開始加1即可 
  21. end 
  22. lock:unlock() 
  23. return 1 
  24. end 
  25. ngx.print(acquire()) 

 

責任編輯:張燕妮 來源: dockone.io
相關推薦

2021-06-28 10:09:59

架構網關技術

2021-03-02 07:54:18

流量網關設計

2021-02-24 16:17:18

架構運維技術

2025-02-26 00:28:01

2017-03-24 17:17:35

限流節流系統

2021-10-14 09:51:17

架構運維技術

2025-08-01 02:22:00

2021-12-03 10:47:28

WOT技術峰會技術

2020-01-17 11:00:23

流量系統架構

2025-05-12 00:03:15

2024-05-27 08:32:45

2025-05-09 01:00:00

分布式限流高并發

2024-10-28 08:01:11

2020-09-01 07:49:14

JVM流量系統

2020-07-29 07:28:14

分布式限流系統

2025-08-22 09:06:57

2016-11-23 12:55:09

京東活動系統流量

2025-10-16 02:11:00

SpingCloudGateway

2018-10-23 09:22:06

2020-10-27 07:29:43

架構系統流量
點贊
收藏

51CTO技術棧公眾號

国产不卡人人| 麻豆国产在线播放| 国产人成精品一区二区三| 日韩精品在线视频| 成人午夜激情av| 在线观看操人| 国产三级精品视频| 亚洲在线免费观看| 国产精品男女视频| 五月天综合网站| 亚洲精品mp4| 亚洲精品手机在线观看| 黄色在线网站噜噜噜| 国产精品黄色在线观看| 国内外成人免费视频| 中文字幕在线播放日韩| 99成人在线| 久久国产一区二区三区| 成人手机在线免费视频| 9999精品| 欧美午夜精品久久久久久超碰| 400部精品国偷自产在线观看| 男女av在线| 国产精品123| 国产日韩欧美在线| wwwxxx亚洲| 亚洲五月婷婷| 久久综合免费视频影院| www.狠狠爱| 蜜桃一区av| 日韩久久免费av| 亚洲第一狼人区| 一区二区三区电影大全| 亚洲国产欧美在线| 男女啪啪的视频| 日韩专区在线| 日本一区二区三级电影在线观看| 精品久久一区二区三区蜜桃| 国产高中女学生第一次| 蜜臀精品一区二区三区在线观看| 91成人在线播放| 国产精品999久久久| 欧美99久久| 免费av一区二区| 992在线观看| 国精一区二区| 中文字幕日韩视频| 一级片久久久久| 国产调教一区二区三区| 亚洲精品一区av在线播放| 中国免费黄色片| 福利片一区二区| 精品99999| 在线免费看黄色片| 都市激情亚洲欧美| 精品国产乱码久久久久久闺蜜| 一级片免费在线观看视频| 五月天色综合| 91精品国产乱码| 国产xxxxhd| 岛国精品一区| 亚洲精品720p| 在线免费观看成年人视频| 亚洲美女15p| 亚洲香蕉av在线一区二区三区| av男人的天堂av| 成人精品电影| 精品激情国产视频| 欧美黄片一区二区三区| 国产一区久久| 38少妇精品导航| 久久久精品毛片| 日韩中文字幕一区二区三区| 国产精品永久免费观看| 国产又粗又猛又黄又爽| 国产成人av一区二区三区在线观看| 国产精品免费观看高清| 亚洲欧美色视频| 国产精品午夜在线观看| 中文字幕欧美人与畜| 欧美寡妇性猛交xxx免费| 午夜婷婷国产麻豆精品| 中文字幕第21页| 99精品美女视频在线观看热舞| 欧美一区二区三区影视| 日本不卡视频一区| 国产99久久| 久久这里只有精品视频首页| 精品少妇一二三区| 日韩精品一二三| 99国产在线观看| 欧美孕妇孕交| 亚洲人成伊人成综合网小说| 精品久久久久久无码中文野结衣| 欧美第一视频| 91精选在线观看| 极品粉嫩小仙女高潮喷水久久 | 久草资源在线视频| 亚洲永久视频| 亚洲一区免费网站| 四虎电影院在线观看| 国产精品久久久一本精品| 国产美女主播在线| 久久久久黄色| 日韩av在线网页| 来吧亚洲综合网| 亚洲欧美日韩视频二区| 成人精品网站在线观看| 免费福利在线视频| 亚洲国产精品一区二区久久| 手机在线免费观看毛片| 噜噜噜天天躁狠狠躁夜夜精品 | 久久久精品视频免费观看| 国产精品亚洲欧美| 91偷拍精品一区二区三区| 国产高清视频免费最新在线| 亚洲国产精品久久久男人的天堂| 在线观看亚洲色图| 久久99国产精品视频| 色综合视频网站| 一区二区三区免费在线| 久久久不卡网国产精品二区| 黄色一级视频在线播放| 国产一区二区| 俺去亚洲欧洲欧美日韩| 极品国产91在线网站| 成人av网站在线| mm131午夜| 日本电影久久久| 中文字幕无线精品亚洲乱码一区 | 精品久久一二三| 欧美a在线观看| 日韩资源在线观看| 进去里视频在线观看| 久久久久久日产精品| 欧美 丝袜 自拍 制服 另类| 91成人入口| 欧美激情一区二区三区久久久| 国产精品久久久久久无人区| 国产精品热久久久久夜色精品三区| 日本在线观看a| 久久99国产精品久久99大师| 欧美激情极品视频| 亚洲第一黄色片| 一区二区三区蜜桃网| 亚洲男人天堂2021| 一本到12不卡视频在线dvd| 国产一区二区在线播放| 免费黄网站在线播放| 欧美精选一区二区| 美女的奶胸大爽爽大片| 国产成人av电影在线播放| 欧美中文字幕在线观看视频| 99国产精品久久一区二区三区| 欧美乱大交xxxxx另类电影| av一区二区三| 亚洲在线视频一区| 怡红院一区二区| 一本色道久久综合亚洲精品不卡| 国外成人在线视频网站| 高清在线视频不卡| 精品亚洲夜色av98在线观看 | 黄页网站在线| 精品无人国产偷自产在线| 日批视频免费在线观看| 国产精品免费视频观看| 久久久久久综合网| 国产精品激情电影| 久草一区二区| 三级成人在线| 色爱精品视频一区| 国产视频aaa| 亚洲www啪成人一区二区麻豆 | 国产精品国产三级国产a | 啪啪小视频网站| 中文字幕日韩欧美一区二区三区| 一级网站在线观看| 亚洲精品1区| 日本不卡一区| 国产精品3区| 午夜精品久久久久久久久久久久久| 视频一区二区三区在线看免费看| 欧美在线综合视频| 男人与禽猛交狂配| 2020日本不卡一区二区视频| 欧美一级特黄a| 国产综合自拍| 四虎一区二区| 日韩精品视频一区二区三区| 日本成人激情视频| 国产一二区在线观看| 亚洲高清一二三区| 中文字幕 亚洲视频| 亚洲影视资源网| 精品人妻中文无码av在线| 国产成人午夜电影网| 久久国产色av免费观看| 欧美日韩亚洲三区| 视频一区二区三区在线观看 | 蜜桃导航-精品导航| 日韩精品第二页| 欧美性受xxxx黑人猛交| 国产盗摄在线观看| 亚洲欧美日韩区| 亚洲AV无码乱码国产精品牛牛 | 成人国产精品一级毛片视频| 91丝袜脚交足在线播放| 日本一区免费网站| 国内精品一区二区三区四区| 日本在线天堂| 亚洲日韩欧美视频一区| 免费av一级片| 91精品国产一区二区三区蜜臀| 天堂网视频在线| 午夜精品久久久| 国产盗摄一区二区三区在线| 日本一区二区视频在线观看| 北岛玲一区二区| 国产suv精品一区二区883| 欧美伦理片在线观看| 国产日韩一区二区三区在线| 麻豆映画在线观看| 日韩成人精品一区二区| 开心色怡人综合网站| 东京久久高清| ts人妖另类在线| 9999精品免费视频| 国产日韩在线看| 国产成人精品一区二三区在线观看 | 国产一区导航| 亚洲熟妇无码一区二区三区导航| 亚洲九九视频| 在线视频精品一区| 成人av国产| 亚洲丰满在线| 精品美女久久| 亚洲国产精品一区二区第一页| 伊人精品一区| 久热这里只精品99re8久| 偷窥自拍亚洲色图精选| 国产专区一区二区| caoporn成人| 国产精品麻豆免费版| 99ri日韩精品视频| 国产美女精品在线观看| 少妇精品在线| 国产精品sss| 成人爽a毛片免费啪啪红桃视频| 成人91视频| 成人av激情人伦小说| 国产精品免费一区二区三区观看| 日韩精品成人| 精品人伦一区二区三区| 人人精品亚洲| 色阁综合av| 99re6这里只有精品| 亚洲AV无码成人精品一区| 婷婷综合五月| 国产精品三级一区二区| 亚洲黑丝一区二区| 国产肥臀一区二区福利视频| 免播放器亚洲| 免费看污污网站| 国产一区二区三区在线观看免费| 一个人看的视频www| 国产.欧美.日韩| 国产传媒第一页| 国产亚洲福利社区一区| 欧美乱大交做爰xxxⅹ小说| 中文字幕人成不卡一区| 欧洲第一无人区观看| 五月天婷婷综合| 99re热视频| 欧美一区二区三区在线| 无码国产伦一区二区三区视频| 亚洲品质视频自拍网| 香港伦理在线| 久久久久久久久久国产精品| 另类激情视频| 91精品视频网站| 任我爽精品视频在线播放| 无遮挡亚洲一区| 午夜精品网站| 国产福利视频在线播放| 激情深爱一区二区| 欧美肉大捧一进一出免费视频| 中文字幕的久久| 久久免费精彩视频| 欧美亚洲动漫精品| 国产香蕉在线观看| 色99之美女主播在线视频| av最新在线| 成人av色在线观看| 精品在线网站观看| 中文字幕欧美日韩一区二区| 一本色道88久久加勒比精品| 玖玖爱视频在线| 2欧美一区二区三区在线观看视频| 日本成人精品视频| 黄色成人在线免费| 91精品国自产| 亚洲免费一在线| 国精一区二区三区| 成人国产精品av| 国产成人精品免费视| 2018中文字幕第一页| 另类小说一区二区三区| 青青草成人免费视频| 亚洲视频一区二区在线观看| 国产无套丰满白嫩对白| 宅男噜噜噜66一区二区66| 日本黄色大片视频| 久久精品国产成人| 国产精品字幕| 久久婷婷人人澡人人喊人人爽| 欧美淫片网站| 午夜精品中文字幕| 久久久不卡网国产精品一区| 中日韩黄色大片| 精品国产乱码久久久久久图片| 日韩精品成人av| 国产精品a久久久久久| 日韩精品福利一区二区三区| 国产美女在线一区| 国产精品资源在线看| 色欲一区二区三区精品a片| 欧美在线视频日韩| 欧美女优在线| 全亚洲最色的网站在线观看| 国产精品白浆| 日韩网站在线免费观看| 国产电影一区二区三区| 国精品无码一区二区三区| 欧美日韩不卡视频| sese一区| 国产精品视频在线播放| 大色综合视频网站在线播放| 美女喷白浆视频| 国产亲近乱来精品视频| 亚洲av无码不卡| 国产亚洲视频中文字幕视频| 成人美女大片| 欧美日韩在线一二三| 日日欢夜夜爽一区| 久久久久无码精品国产sm果冻| 91国产免费看| 成年人在线看| 国产日韩视频在线观看| 99久久99久久精品国产片果冰| 色播五月综合网| 中文字幕佐山爱一区二区免费| 国产日韩一级片| 欧美激情免费视频| 久草精品视频| 黑鬼大战白妞高潮喷白浆| 国产亚洲欧美色| 中文字幕有码视频| 久久精品国产久精国产一老狼| 欧美一区一区| 日本a在线天堂| 97精品久久久久中文字幕| 特级西西444www大精品视频免费看 | 在线免费黄色小视频| 亚洲午夜久久久久久久久电影院 | 精品视频在线播放一区二区三区| 日本中文字幕一级片| 不卡av在线免费观看| av大全在线观看| 中文字幕在线看视频国产欧美在线看完整 | 午夜片欧美伦| 亚洲一二三四五| 欧美性猛交xxxxx水多| 91亚洲精选| caoporen国产精品| 久久精品成人| www青青草原| 亚洲精品一区二区网址| 国产一区二区三区朝在线观看| 日本三级中文字幕在线观看| 不卡影院免费观看| 黄色大全在线观看| 精品自在线视频| 香蕉久久精品| 亚洲图片 自拍偷拍| 精品欧美国产一区二区三区| 大乳在线免费观看| 成人蜜桃视频| 日韩国产在线观看一区| 劲爆欧美第一页| 亚洲午夜小视频| 国产一区调教| 亚洲精品综合在线观看| 亚洲妇熟xx妇色黄| 色的视频在线免费看| 久久99精品久久久久久久青青日本 | 91地址最新发布| 91精品动漫在线观看| 色婷婷在线影院| 欧美tk—视频vk| 日本久久二区|