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

五分鐘搞懂分布式流控算法

開發 前端
流控是一種非常容易描述但卻隱藏了很多復雜性的特性。希望本文能夠幫助你理解在復雜分布式系統中實現流控所涉及的工具和算法。

流控是任何一個復雜系統都必須考慮的問題,本文介紹并比較了不同的流控算法,從而幫助我們可以基于系統需求和架構選擇合適的方案。原文:Distributed Rate-Limiting Algorithms[1]

當我們設計分布式流控系統(distributed rate-limiting system)時,需要用到哪些工具和算法?

Joshua Hoehne @Unsplash

Criteo是全球最大的廣告技術公司之一,隨著廣告市場的不斷發展,Criteo在過去幾年里一直致力于改進API,幫助客戶更好的通過可編程接口訪問需要的服務。

隨著越來越多的客戶使用新的API,很明顯,需要實現某種流量控制,以確保所有客戶端都能平等訪問資源,并保護API免受(惡意或錯誤的)頻繁調用。

流控似乎很簡單: 只允許給定的客戶端每分鐘執行X個調用。在單個服務器實例上實現流控非常容易,可以很容易找到相關的庫來實現。但問題是我們的API托管在6個數據中心(歐洲、北美和亞洲),每個數據中心都有多個實例,這意味著我們需要某種分布式流控系統。

流控不僅與調用次數有關,還需要和客戶端同步當前被限制的狀態(例如,使用專用的報頭和狀態碼)。但是本文將主要關注用于流控的算法和系統。

利用負載均衡

在嘗試開發自己的系統之前,更重要的是查看現有的基礎設施是否能夠提供想要的特性。

那么,部署在數據中心所有實例之前,并且已經在負責檢查、路由流量的是什么?負載均衡器。大多數負載均衡器都提供了流控特性或某種可用于實現流控的抽象。例如,HAProxy有現成的可用于設置流控的stick tables[2],可以在實例之間同步狀態,并且工作得很好。

不幸的是,負載均衡不支持我們需要的某些特性(動態限制、令牌自省token introspection、……),因此我們需要自己實現這些特定的需求。

初級方案

會話粘連(Sticky sessions)

說到負載均衡,如果給定客戶端的負載并不均衡,并且總是與單個實例交互??,那么就不需要分布式流控系統。大多數客戶端訪問距離最近的數據中心(通過geo-DNS),如果在負載均衡器上啟用“stickiness”,客戶端應該總是訪問相同的實例,這種情況下我們可以使用簡單的“本地”速率限制。

這在理論上可行,但在實踐中行不通。Criteo系統面臨的負載不是恒定的,例如,黑色星期五/Cyber Week是一年中最重要的時段。在此期間,團隊隨時處于戒備狀態,準備擴大基礎設施,以應對客戶不斷增長的需求。但是會話粘連和可伸縮性不能很好的配合(如果所有客戶端都粘連在舊實例上,那么創建新實例又有什么用呢?)

使用更智能的會話粘連(在擴展時重新分配令牌)會有所幫助,但這意味著每次擴展時,客戶端都可能切換到另一個實例上,而且并不知道客戶端在前一個實例上執行了多少調用。本質上說,這將使我們的流控在每次伸縮時不一致,客戶端可能在每次系統面臨壓力時會進行更多調用。

Chatty服務器

如果客戶端可以訪問任何實例,意味著“調用計數”必須在實例之間共享。一種方案是讓每個實例調用所有其他實例,請求給定客戶端的當前計數并相加。另一種方案反過來,每個服務器向其他服務器廣播“計數更新”。

這會造成兩個主要問題:

  • 實例越多,需要進行的調用就越多。
  • 每個實例都需要知道其他實例的地址,并且每次服務擴縮容時都必須更新地址。

雖然可以實現這個解決方案(本質上是一個點對點環,許多系統已經實現了),但成本較高。

Kafka

如果不想讓每個實例都和其他實例通信,可以利用Kafka同步所有實例中的計數器。

例如,當某個實例被調用時,就將一個事件推到對應的topic。這些事件會被滑動窗口聚合(Kafka Stream在這方面做得很好),每個客戶端最后一分鐘的最新計數會被發布到另一個topic上。然后,每個實例通過此topic獲得所有客戶端的共享計數。

問題在于Kafka本質上是異步的,雖然通常延遲很小,但當API負載增加時,也會增加延遲。如果實例使用了過時的計數器,那么可能會漏過那些本應被阻止的調用。

這些解決方案都有一個共同點: 當一切正常時,可以很好的工作,但當負載過重時,就會退化。我們的大部分系統都是這樣設計的,通常情況下沒有問題,但流控并不是典型組件,其目標就是保護系統的其他部分免受這種過重負載的影響。

流控系統的目標是在系統負載較重時工作良好,其構建目標是為最差的1%而不是好的99%的情況服務

分布式算法

我們需要一個中心化的同步存儲系統,以及為每個客戶端計算當前速率的算法。內存緩存(如Memcached或Redis)是理想的系統,但并不是所有的流控算法都可以在緩存系統中實現。下面我們看看有什么樣的算法。

簡化起見,我們考慮嘗試實現“每分鐘100次調用”的流控。

看看有哪些工具可用。

基于事件日志的滑動窗口(Sliding window via event log)

如果想知道某個客戶端在過去一分鐘內進行了多少次調用,可以在緩存中為每個客戶端存儲一個時間戳列表。每次調用時,相應的時間戳都會添加到列表中。然后循環遍歷列表中的每一項,丟棄超過一分鐘的舊項,并計算新項。

??優點:

  • 非常精確
  • 簡單

??缺點:

  • 需要強大的事務支持(處理同一客戶端的兩個實例需要更新相同的列表)。
  • 根據不同的調用限制和次數,存儲對象(列表)的大小可能相當大。
  • 性能不穩定(更多的調用意味著需要處理更多的時間戳)。
固定窗口(Fixed window)

大多數分布式緩存系統都有特定的、高性能的“計數器”抽象(一個可以自動增加的整數值,附加在一個字符串鍵上)。

以“{clientId}”為key為每個客戶端維護一個計數器非常容易,但只會計算自計數器創建以來客戶端調用的次數,而不是最后一分鐘的次數。以“{clientId}_{yyyyMMddHHmm}”為key可以每分鐘都為客戶端維護一個計數器(換句話說: 以1分鐘為固定窗口),查找與當前時間相對應的計數器可以告訴我們這一分鐘客戶端執行的調用數量,如果這個值超過上限,就可以阻止調用。

請注意,這與“最近一分鐘”不是一回事。如果在上午07:10:23有一次調用,固定窗口計數器會顯示在上午07:10:00到07:10:23之間調用的數量。但我們真正想要的是早上07:09:23到07:10:23之間的調用數量。

在某種程度上,固定窗口算法每過一分鐘都會“忘記”之前有多少次呼叫,因此客戶端理論上可以在07:09:59執行100次調用,然后在07:10:00執行100次額外的調用。

??優點:

  • 非常快(單個原子增量+讀取操作)
  • 只需要非常基本的事務支持(原子計數器)
  • 性能穩定
  • 簡單

??缺點:

  • 不準確(最多會允許2倍調用)
令牌桶(Token bucket)

回到1994年,父母把你送到游戲廳和朋友們一起玩《超級街霸2》。他們給你一個裝了5美元硬幣的小桶,然后去了街對面的酒吧,并且每個小時都會過來往桶里扔5美元硬幣。因此你基本上被限制每小時玩5美元(希望你在《街頭霸王》中表現出色)。

這就是“令牌桶”算法背后的主要思想: 與簡單計數器不同,“桶”存儲在每個客戶端緩存中。桶是由兩個屬性組成的對象:

  • 剩余“令牌”的數量(或剩余可以進行的調用的數量)
  • 最后一次調用的時間戳。

當API被調用時,檢索桶,根據當前調用和最后一次調用之間的時間間隔,向桶中添加新的令牌,如果有多余令牌,遞減并允許調用。

所以,和“街頭霸王”的例子相反,沒有“父母”幫我們每分鐘重新裝滿桶。桶在與令牌消耗相同的操作中被有效的重新填充(令牌的數量對應于上次調用之后的時間間隔)。如果最后一次調用是在半分鐘之前,那么每分鐘100次調用的限制意味著將向桶中添加50個令牌。如果桶太“舊”(最后一次調用超過1分鐘),令牌計數將重置為100。

事實上,可以在初始化的時候填充超過100個令牌(但補充速度為100令牌/分鐘): 這類似于“burst”功能,允許客戶端在一小段時間內超過流控的限制,但不能長期維持。

注意: 正確計算要添加的令牌數很重要,否則有可能錯誤的填充桶。

該算法提供了完美的準確性,同時提供了穩定的性能,主要問題是需要事務(不希望兩個實例同時更新緩存對象)。

圖片圖片

100次調用/分鐘的令牌桶的分步示例

??優點:

  • 非常精確
  • 快速
  • 性能穩定
  • 優化初始令牌數量可以允許客戶端“burst”調用

??缺點:

  • 更復雜
  • 需要強大的事務支持

漏桶(Leaky bucket): 該算法的另一個版本。在這個版本中,調用堆積在bucket中,并以恒定的速率(匹配速率限制)處理。如果桶溢出,則拒絕調用。這實現起來比較復雜,但可以平滑服務負載(這可能是您想要的,也可能不是)。

??最好的算法?

比較這三種算法,令牌桶似乎在性能和準確性方面提供了最好的折衷。但只有當系統提供良好的事務支持時,才有可能實現。如果有Redis集群,這是完美方案(甚至可以實現基于Lua的算法,直接運行在Redis集群上,以提高性能),但Memcached只支持原子計數器,而不是事務。

可以基于Memcached實現令牌桶的樂觀并發(optimistic concurrent)版本[3],但這更加復雜,而且樂觀并發的性能在負載較重的情況下會下降。

用固定窗口近似模擬滑動窗口

如果沒有強大的事務支持,是否注定要使用不準確的固定窗口算法?

算是吧,但還有改進的空間。請記住,固定窗口的主要問題是它每過一分鐘都會“忘記”之前發生的事情,但我們仍然可以訪問相關信息(在前一分鐘的計數器中),所以可以通過計算加權平均值來估計前一分鐘的調用次數。

圖片圖片

通過60s固定窗口組合近似模擬60s滑動窗口

例如: 如果在00:01:43進行了一次調用,遞增得到“00:01”計數器的值。由于這是當前的日歷分鐘,現在包含00:01:00至00:01:43之間的調用數(最后17秒還沒有發生)。但我們想要的是60s滑動窗口中的調用數,意味著我們錯過了00:00:43到00:01:00這段時間的計數。為此我們可以讀取“00:00”計數器,并以17/60的因子進行調整,從而說明我們只對最后17秒感興趣。

如果負載不變,這一近似是完美的。但如果大多數調用都集中在前一分鐘,那就會獲得一個高估的值。而當大多數調用都集中在前一分鐘結束后,這個數字就會被低估。

比較

為了更準確的了解精度差異,最好是在相同的條件下模擬兩種算法。

下面的圖顯示了“固定計數器”算法在輸入隨機流量時將返回什么。灰色的線是一個“完美”的滑動窗口輸出,該窗口在任何時間點對應于過去60秒內的呼叫次數,這是我們的目標。橙色虛線表示固定窗口算法對相同流量的“計數”。

圖片圖片

它們在第一分鐘的輸出是相同的,但很快就可以看到固定窗口版本在每分鐘標記處有很大的下降。固定窗口算法很少會超過100個調用的限制,這意味著會允許很多本應被阻止的調用。

下面的圖表示相同的場景,具有相同的流量,但使用了近似的滑動窗口。同樣,灰色線代表“完美”滑動窗口。橙色虛線表示近似算法。

圖片圖片

在每分鐘標記附近不再看到下降,可以看到新版本算法與完美算法更接近,它有時略高,有時略低,但總體上是巨大的進步。

收益遞減

但我們能做得更好嗎?

我們的近似算法只使用當前和以前的60秒固定窗口。但是,也可以使用幾個更小的子窗口,一種極端方法是使用60個1s窗口來重建最后一分鐘的流量。顯然這意味著為每個調用讀取60個計數器,這將極大增加性能成本。不過我們可以選擇任意固定窗口時間,從中擬合近似值。窗口越小,需要的計數器就越多,近似值也就越精確。

圖片圖片

我們看看組合5個15秒窗口會有什么效果:

圖片圖片

正如預期的那樣,準確率有所提高,但仍然不夠完美。

我們處在一個經典的更好的準確性=更差的性能的情況下。沒有絕對的最佳方案,必須平衡對于準確性和性能的要求,找到最適合的解決方案。如果你只關心保護自己的服務不被過度使用,而不需要持續控制,那么甚至最簡單的固定窗口就可能是可行的解決方案。

結論

流控是一種非常容易描述但卻隱藏了很多復雜性的特性。希望本文能夠幫助你理解在復雜分布式系統中實現流控所涉及的工具和算法。

References:[1] Distributed Rate-Limiting Algorithms: https://medium.com/criteo-engineering/distributed-rate-limiting-algorithms-a35f7e24783[2] Introduction to HAProxy stick tables: https://www.haproxy.com/blog/introduction-to-haproxy-stick-tables/[3] Optimistic currency control: https://en.wikipedia.org/wiki/Optimistic_concurrency_control

責任編輯:武曉燕 來源: DeepNoMind
相關推薦

2022-05-23 09:10:00

分布式工具算法

2024-12-11 07:00:00

面向對象代碼

2025-03-13 06:22:59

2025-01-21 07:39:04

Linux堆內存Golang

2019-08-09 10:33:36

開發技能代碼

2025-01-20 08:50:00

2016-12-16 11:05:00

分布式互斥線程

2021-08-16 15:40:04

分布式架構系統

2023-10-06 20:21:28

Python鏈表

2018-06-28 14:00:01

分布式集群架構

2023-12-06 08:48:36

Kubernetes組件

2023-09-18 15:49:40

Ingress云原生Kubernetes

2020-05-18 14:00:01

Dubbo分布式架構

2017-11-08 09:57:00

分布式微服務集群

2025-03-24 11:30:05

2023-07-12 15:56:08

2019-11-25 09:32:26

軟件程序員數據結構

2021-07-06 10:35:46

分布式KafkaLinux

2024-12-04 16:12:31

2017-03-30 19:28:26

HBase分布式數據
點贊
收藏

51CTO技術棧公眾號

国产免费黄色小视频| 国产精品扒开腿做爽爽爽的视频| 久久无码人妻一区二区三区| ririsao久久精品一区| 91麻豆国产自产在线观看| 国产成人免费av电影| 久久精品日韩无码| 国产三级精品三级在线观看国产| 日本久久电影网| 视频一区二区视频| 五月激情婷婷综合| 精品一区二区三区免费毛片爱| 欧美日韩高清在线观看| 在线国产视频一区| 日韩在线观看中文字幕| 在线看日韩精品电影| 99热久久这里只有精品| 1769在线观看| 91亚洲大成网污www| 成人午夜两性视频| 不卡av电影在线| 欧美日韩爆操| 色婷婷久久av| 免费黄色在线视频| 在线日韩成人| 欧美日韩亚洲综合| 久草精品在线播放| 美女精品导航| 国产精品国产三级国产aⅴ无密码| 国产精品一区二区三区观看| 亚洲综合精品国产一区二区三区| 午夜亚洲视频| 久久久久久国产精品美女| 日韩不卡av在线| 丝袜美腿综合| 欧美精品一区二区久久婷婷| 一级片免费在线观看视频| 日韩不卡视频在线观看| 都市激情亚洲色图| 免费人成自慰网站| 性网站在线观看| 亚洲欧洲99久久| 亚洲国产一区二区三区在线| 美女做暖暖视频免费在线观看全部网址91 | 欧美丰满一区二区免费视频| 日韩一级在线免费观看| 蜜桃av在线| 亚洲第一主播视频| 美女av免费观看| 尤物在线网址| 亚洲综合激情小说| 中文精品无码中文字幕无码专区| 岛国中文字幕在线| 国产精品灌醉下药二区| 四虎影院一区二区三区| 丁香在线视频| 欧美激情一区二区三区在线| 日本在线视频不卡| 国产在线91| 国产日韩欧美不卡在线| 欧美一区三区二区在线观看| 国产在线视频网| 国产欧美日韩在线| 性刺激综合网| 日本在线看片免费人成视1000| 久久精品一二三| 欧美日韩在线一二三| 国产在线黄色| 国产精品麻豆久久久| 亚洲精品中文字幕乱码三区不卡 | 国产精品午夜在线观看| 亚洲五月六月| 特级毛片在线| 午夜精品久久久久久久蜜桃app| 欧美极品欧美精品欧美| 日韩脚交footjobhdboots| 一本色道a无线码一区v| www.久久91| 精品视频在线观看免费观看| 精品国产精品一区二区夜夜嗨 | 国产亚洲欧洲997久久综合 | 国产日韩欧美日韩| 国产又粗又黄又爽视频| 国产高清成人在线| 精品卡一卡二| 大片免费播放在线视频| 亚洲欧洲99久久| 久久久久久久久久久99| 欧美成a人片在线观看久| 欧美日本在线看| 国产人妖在线观看| 免费精品国产的网站免费观看| 中文字幕精品—区二区| 精品日韩久久久| 国产一区二区在线免费| 91精品综合视频| 久久久久亚洲av成人毛片韩| 视频一区中文字幕| 91精品视频专区| 日韩一级片免费| 中文字幕成人网| 精品国产乱码久久久久久浪潮| 精品一区二区影视| 欧美丝袜一区二区| 天天操天天爱天天爽| 警花av一区二区三区| 日韩大陆毛片av| 欧美xxxooo| 一区二区毛片| 一本色道久久加勒比精品| 宅男av一区二区三区| 日本乱理伦在线| 91极品美女在线| 国产精品无码自拍| 欧美日韩国产免费观看视频| 伦伦影院午夜日韩欧美限制| 国产精品99re| 激情综合网av| 欧美一区二区三区四区在线观看地址| 动漫一区在线| 99热这里只有精品8| 青青久久av| 欧美中文字幕一二三区视频| 精品伦一区二区三区| 日韩欧美高清在线播放| 91大神福利视频在线| 国产免费黄色片| 欧美韩国一区二区| 国产亚洲综合视频| 国产视频一区二区三区在线播放 | 日本道精品一区二区三区| 国产三级精品三级在线| 国产91精品对白在线播放| 欧美激情精品久久久| 中文字幕av久久爽| 国产精品chinese在线观看| 7777精品伊人久久久大香线蕉| 亚洲综合网在线观看| 亚洲清纯自拍| 国产精品久久久久久久久久久久冷 | 激情综合色综合久久综合| 日本高清视频一区二区三区| 美女在线视频免费| 欧美精品一区二区在线播放| 全程偷拍露脸中年夫妇| 国产一区二区导航在线播放| 一区二区欧美日韩| 一区二区三区在线视频看| 国模视频一区二区| 伊人久久久久久久久久久久久 | 欧美极品一区| 久久久水蜜桃| 精品欧美国产一区二区三区不卡| 精品日本一区二区三区| 欧美日韩国产免费一区二区三区| 精品人妻一区二区三区蜜桃| 综合婷婷亚洲小说| 99热一区二区| 亚洲欧美在线专区| 91精品国产91久久久久青草| av在线下载| 日韩欧美一级二级三级| 国产一级片免费观看| 高清不卡一二三区| 高清欧美精品xxxxx| 男人的天堂久久| 欧美做受高潮1| 国产福利电影在线| 欧美日韩国产片| 亚洲天堂小视频| 成人黄色一级大片| 国产毛片久久久久| 国产成人综合亚洲网站| 久久综合久久久久| 91禁在线观看| 国产少妇在线观看| 亚洲欧美小说色综合小说一区| 精品国产一区二区三区忘忧草| 四虎成人精品永久免费av| 99视频精品在线| 亚洲熟女乱色一区二区三区| 精品av一区二区| 成人观看高清在线观看免费| 手机在线免费看毛片| 亚洲黄色成人| 视频一区视频二区视频三区高 | 国产不卡av在线免费观看| 国产女人在线视频| 欧美一级电影网站| 日本免费在线播放| 国产午夜精品福利| 91亚洲一区二区| 国产亚洲精品v| 亚洲欧洲国产精品久久| 91蝌蚪精品视频| 国产成人aa精品一区在线播放| 黄页视频在线播放| 日韩高清中文字幕| 97精品人妻一区二区三区在线| 亚洲午夜精品一区二区三区他趣| 欧洲女同同性吃奶| 国产乱码精品一区二区三区五月婷| 日韩av综合在线观看| 久久成人综合| 久久亚洲精品欧美| 久久久国产精品入口麻豆| 欧美中文字幕视频| 丝袜国产在线| 中文在线不卡视频| 网站黄在线观看| 欧美一区日韩一区| 波多野结衣影片| 午夜欧美大尺度福利影院在线看| 国产精品一区二区亚洲| 91麻豆国产自产在线观看| 日韩精品国产一区| 久久99国产精品尤物| 久久久久久久久久久免费视频| 国产精品啊v在线| 亚洲一区在线直播| 九九精品久久| 久久精品第九区免费观看| 57pao国产一区二区| 成人国产亚洲精品a区天堂华泰| 345成人影院| 久久久欧美一区二区| 黄视频网站在线| 国产一区二区欧美日韩| 欧美捆绑视频| 日韩av影视综合网| 丰满人妻一区二区三区四区53| 欧美日韩一区二区在线观看视频| 国产一级片毛片| 日韩在线一二三区| 国产suv精品一区二区883| 国产美女久久精品| 日韩国产激情| 2018中文字幕一区二区三区| 中文字幕在线三区| 久久久精品日本| 色开心亚洲综合| 一本一本久久a久久精品综合小说 一本一本久久a久久精品牛牛影视 | 亚洲综合色网| 久久久久成人精品免费播放动漫| 欧美a在线观看| 91情侣偷在线精品国产| 欧美特黄色片| 国产美女91呻吟求| 天堂久久一区| 成人在线播放av| 91视频久久久| 欧美国产综合色视频| 久久精品国产亚洲av麻豆| 99re这里只有精品6| 精品国产av色一区二区深夜久久 | 亚洲成在线观看| 日韩伦理在线视频| 精品久久久久久中文字幕一区奶水 | 国产美女扒开尿口久久久| 欧美电影在线观看网站| 成人免费直播live| 免费精品一区二区三区在线观看| 亚洲自拍欧美另类| 成人午夜三级| 久久另类ts人妖一区二区| 婷婷成人综合| 日产国产精品精品a∨| 久久精品国产99久久| 91麻豆天美传媒在线| 国内自拍一区| 欧洲黄色一级视频| 欧美aaa在线| www.com久久久| 成人永久免费视频| 日韩人妻一区二区三区| 国产精品成人一区二区艾草 | 午夜剧场免费看| 久久影院视频免费| 欧美性生交大片| 又紧又大又爽精品一区二区| 日本高清www免费视频| 欧洲一区二区三区在线| 国产富婆一级全黄大片| 日韩高清中文字幕| 精品美女在线观看视频在线观看| 久久久久久久久久国产| 手机看片久久| 亚洲自拍高清视频网站| 蜜臀av免费一区二区三区| 一区二区三区|亚洲午夜| 亚洲国产日本| 日韩一区二区三区不卡视频| 国产91精品精华液一区二区三区| 国产免费一区二区三区最新6| 午夜激情小视频| 亚洲精品一区二区在线看| 日韩欧美一区二区视频在线播放| 天天综合久久| 青青草原成人网| 国产综合色精品一区二区三区| 极品白嫩的小少妇| 国产精品无码永久免费888| 国产主播在线播放| 在线日韩国产精品| 亚洲国产成人一区二区| 日本vs亚洲vs韩国一区三区| 日本久久电影网| 欧美乱偷一区二区三区在线| 国产videos久久| 精品久久久无码人妻字幂| 日韩影院免费视频| 成熟妇人a片免费看网站| 国产精品久久久久影院亚瑟| 免费看日韩毛片| 日韩欧美在线1卡| a天堂在线资源| 欧美色中文字幕| 在线免费观看av网址| 精品久久久久一区| 日本欧美在线视频免费观看| 欧美与黑人午夜性猛交久久久| 美女久久精品| 亚洲一区二区三区乱码| 天堂va蜜桃一区二区三区漫画版| 中文在线字幕观看| 亚洲天天做日日做天天谢日日欢 | 91九色视频在线| 欧美人妖在线| 乱妇乱女熟妇熟女网站| 成人免费高清在线观看| 欧美特级一级片| 欧美日韩午夜影院| yw193.com尤物在线| 欧洲亚洲在线视频| 亚洲精品亚洲人成在线| aa在线观看视频| 成人精品国产免费网站| 九九热视频精品| 欧美一区二区三区免费大片| 久久久久久久久免费视频| 国产精品女视频| 欧美色蜜桃97| 鲁一鲁一鲁一鲁一av| 欧美国产精品一区二区| 久久久精品毛片| 亚洲色图激情小说| 欧美电影网址| 欧美一区二区三区四区在线观看地址| 久久精品一区| 国产视频不卡在线| 欧美日本在线一区| aaa大片在线观看| 91视频88av| 欧美天堂亚洲电影院在线观看| 又黄又爽又色的视频| 一区二区三区在线影院| 超碰在线观看av| 午夜精品久久久久久久男人的天堂| 国产精品极品国产中出| 两根大肉大捧一进一出好爽视频| www亚洲一区| 一区二区视频网站| 久久激情五月丁香伊人| 精品一区二区三区亚洲| 日本男女交配视频| 99精品偷自拍| 在线播放国产一区| 久久99精品久久久久久琪琪 | 精品国产91亚洲一区二区三区婷婷| heyzo高清中文字幕在线| 免费试看一区| 久久精品国产精品亚洲精品| 久久影院一区二区| 奇米在线7777在线精品 | 在线观看久久久久久| 成人影院在线免费观看| 国产高清免费在线| 岛国精品一区二区| 亚洲 欧美 成人| 色老头一区二区三区在线观看| 深夜福利一区| 色综合av综合无码综合网站| 国产精品久久久久久久岛一牛影视 | 天堂av中文在线观看| 日韩精品在在线一区二区中文| 美女www一区二区| 久久老司机精品视频| 亚洲欧美国产一区二区三区| 欧美成人福利| 国产人妻777人伦精品hd| 偷拍精品福利视频导航| 国产精品自拍片| 亚洲欧美自拍偷拍| 男人天堂手机在线观看| 国产精品99久久久久久久久久久久 | 欧美日韩成人免费观看| 亚洲日本中文字幕| 日韩国产在线不卡视频| 日本xxxxxxx免费视频| 一区二区三区不卡视频|