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

面試官:你的系統限流閾值是怎么設定的?

系統 運維
限流,這個看似簡單的技術點,實則深潛著從算法理論到復雜工程實踐的諸多細節與權衡。希望今天這篇文章,能幫你把這些散落的知識點串聯起來,形成一套屬于你自己的、體系化的認知。

熔斷、降級、限流,作為保障系統穩定性的三駕馬車,想必大家已不陌生。但說實話,跟熔斷、降級比起來,限流這東西,要復雜得多。在面試中,多數時候對限流的考察停留在算法層面,偶爾會深入到像BBR這樣的動態算法。但有一個問題,堪稱“照妖鏡”,能立刻區分出候選人的深度,那就是:“你們系統限流的閾值是怎么定的?”

這個問題,光懂算法是絕對不夠的。它真正考驗的是你從理論到實踐的落地能力,以及對系統全貌的把控。今天,我就帶你把這個問題徹底盤透,讓你以后再遇到時,能給出一個讓面試官眼前一亮的答案。

一、基礎夯實:限流的核心三要素

在直面“閾值計算”這個核心難題之前,我們必須確保基礎知識的穩固。任何高階的探討都源于對基礎的深刻理解。限流的知識體系,可以歸納為三個核心要素:限流算法、限流對象、以及限流后的應對策略。

簡單來說,限流就是通過限制進入系統的流量大小來保護下游服務,它尤其擅長應對非預期的突發流量。無論是外部的惡意攻擊,還是內部由于異常情況(如緩存失效)導致的流量放大,限流都是保護系統的第一道,也是至關重要的防線。

1. 核心限流算法

限流算法五花八門,但從宏觀上可以分為兩大陣營:靜態算法與動態算法。

  • 靜態算法:這類算法的核心特點是閾值需要由研發人員預先設定。算法在運行期間,忠實地執行這個預設值,而不會主動關心服務器的真實負載是高是低。常見的靜態算法包括令牌桶、漏桶、固定窗口和滑動窗口。
  • 動態算法:又稱為自適應限流算法,其典型代表是 BBR (Bottleneck Bandwidth and Round-trip propagation time) 算法。這類算法借鑒了TCP擁塞控制的思想,通過實時監測系統的一系列關鍵指標(如RT、吞吐量),來動態地、智能地調整流量閾值,試圖在“壓榨系統性能”和“保證系統穩定”之間找到最佳平衡點。它控制的是業務請求,而TCP控制的是網絡報文,但其背后的博弈思想是相通的。

當然,除了這些業界公認的算法,我們完全可以結合自身業務的特點,設計符合特定場景的限流策略。比如,如果你的業務是一個內存消耗巨大的服務,那么將“剩余可用內存”作為關鍵指標,當內存水位低于某個閾值時就觸發限流,也是一種非常有效且合理的自定義算法。

下面,我們來快速回顧一下幾種經典的靜態算法。

(1) 令牌桶(Token Bucket)

令牌桶算法是一個非常經典且應用廣泛的模型。你可以把它想象成一個發號機:系統以一個恒定的速率(比如每秒100個)往一個有固定容量的桶里(比如容量200)投放令牌。每個外部請求到達時,都必須先嘗試從桶里獲取一個令牌。如果成功獲取,請求就被放行,繼續由后端業務邏輯處理;如果桶里已經沒有令牌了,那么該請求就會被限流。

令牌桶最關鍵的一個特性是允許一定程度的突發流量。由于桶本身有容量,在流量低谷期,即使沒有請求消耗,令牌也會持續生成并累積在桶里,直到裝滿為止。比如,桶的容量是200,生成速率是100個/秒。如果前幾秒很空閑,桶里已經攢了200個令牌。那么在接下來的一秒內,系統最多可以應對 100(本秒新生成) + 200(積攢的) = 300 個請求。這種“削峰填谷”的能力,使得令牌桶非常適合那些平時流量平穩,但偶爾會有瞬時高峰的業務場景。

(2) 漏桶(Leaky Bucket)

漏桶算法則提供了一種完全不同的思路。你可以把它想象成一個頂部開口、底部有孔的漏斗。無論上方的水流(請求)是多么洶涌或時斷時續,從底部漏下去的水流(被處理的請求)速率永遠是恒定且平滑的。

從某種意義上看,漏桶可以被視為令牌桶的一個特例,即桶容量為0的令牌桶。

在這種特例下,令牌一旦生成,就必須被立即消耗掉,沒有任何積攢的可能。因此,漏桶對流量的“整形”效果非常極致,它保證了后端業務接收到的請求速率是絕對均勻的。這對于一些處理能力非常敏感,無法承受任何流量毛刺的下游系統來說,是一種很好的保護機制。

(3) 固定窗口與滑動窗口

這兩種算法是基于時間窗口的計數器實現,也比較容易理解。

固定窗口:這種算法將時間軸粗暴地分割成一個個固定長度的區間(窗口),例如,每1秒一個窗口。然后在每個窗口內維護一個計數器。每當有請求進入,計數器加一。如果計數器的值超過了設定的閾值,那么該窗口內后續的所有請求都將被拒絕。當時間進入下一個窗口時,計數器被重置為0。這種算法實現簡單,但缺點在于窗口邊界的臨界問題。比如:限流閥值為每秒5個請求,單位時間窗口為1秒。如果在前0.5秒到1秒的時間內并發5個請求,接著在1秒到1.5秒的時間內又并發5個請求。雖然這兩個時間段各自都沒有超過限流閾值,但如果計算0.5秒到1.5秒的總請求數,則總共是10個請求,已經遠遠超過了1秒內不超過5個請求的限流標準。

滑動窗口:滑動窗口正是為了解決固定窗口的臨界問題而生的。它將一個大的時間窗口(比如1分鐘)分割成更小粒度的子窗口(比如60個1秒的子窗口)。每次請求到來,當前子窗口的計數器加一。當整個大窗口向右滑動時,它會丟棄掉最左邊的子窗口的計數值,并納入一個新的子窗口。整個大窗口的請求總數,就是所有子窗口計數器的總和。通過這種更平滑的窗口移動方式,滑動窗口避免了固定窗口在邊界上的突刺問題,使得限流控制更加精確。

雖然滑動窗口可以一定程度上解決窗口臨界流量已出問題,但是因為滑動窗口本質其實是將窗口粒度更小,但是        不管多小,仍然是以窗口來限制,所以總會存在流量不均導致的限流不準確問題

假設窗口以0.5s為小周期移動,如下圖,在【0.5s,1.5s】,【1.5s,2.5s】間其實都是合理的,不會有流量超出,但是其實在【0.8s,1.8s】間就有10個請求了,并沒有達到限流效果

2. 限流對象

明確了算法,我們還需要清晰地定義限流的作用對象。

從部署維度看,可以分為單機限流和集群限流。

  • 單機限流:限流邏輯僅在單個服務實例內部生效,實現簡單,但無法對整個集群的總流量進行控制。
  • 集群限流:需要一個中心化的組件來統計整個集群的流量信息。Redis 因其高性能的原子操作(如 INCR)而成為實現集群限流的常用選擇。當然,如果限流邏輯本身是實現在網關層(如 Nginx、Spring Cloud Gateway),那么網關節點自身就可以作為這個“中心節點”,從而擺脫對外部中間件的依賴。

從業務維度看,限流的對象就更加豐富多樣了。

  • 按用戶身份:例如,在提供增值服務時,可以對VIP用戶不限流,而對普通用戶的訪問頻率進行限制。
  • 按IP地址:這是防范DDoS攻擊和惡意爬蟲的經典手段。例如,對登錄、注冊、秒殺等關鍵接口,可以限制單個IP在單位時間內的請求次數。正常用戶的“手速”是有限的,即便考慮到公共出口IP的情況,設置一個合理的閾值(如50次/秒)也能有效地將大部分機器行為擋在門外。
  • 按業務ID:例如,針對某個特定的userId、orderId或productId進行限流,以防止單個用戶或針對單個業務實體的濫用行為,確保資源的公平使用。

3. 限流后的應對策略

當一個請求不幸被限流策略“命中”時,我們并非只能簡單粗暴地返回一個錯誤碼。設計精巧的后續處理方案,同樣是體現架構水平的地方。

  • 同步阻塞等待:如果只是偶發性地、輕微地超出了閾值(例如,限流100 QPS,卻來了101個請求),讓這多出來的1個請求短暫地阻塞等待一會兒,也許幾十毫秒后就能獲取到新的令牌。這種方式對用戶幾乎是無感的。但必須要注意,等待必須設置超時時間,不能讓請求無限期地阻塞下去,否則可能會耗盡服務端的線程資源。

  • 同步轉異步:這是一種非常優雅的“削峰填谷”手段。對于未被限流的請求,正常同步處理并返回結果;對于被限流的請求,我們可以將其信息持久化(例如,存入消息隊列MQ),并立即給用戶一個“排隊中”或“稍后處理”的友好提示。然后由后臺的消費者任務在業務低峰期,從MQ中拉取這些請求進行處理。這與服務降級中的“異步處理”思路如出一轍。
  • 聯動負載均衡:當某個服務節點頻繁觸發限流時,這本身就是一個強烈的信號,表明該節點已經處于高負載或過載狀態。這個信號可以被上游的負載均衡器捕獲。負載均衡器可以據此動態地降低該節點的權重,從而減少后續分配給它的新請求流量。注意,這與熔斷不同,熔斷是徹底切斷流量,而這里只是降低流量的概率,是一種更為柔和的保護性降級。

二、直面“靈魂拷問”:閾值到底怎么算?

好了,經過前面的充分熱身,現在讓我們正式進入本文的核心戰場:當面試官問你“限流閾值怎么定”時,他到底想聽到什么?

他想聽到的,絕不是“憑感覺”、“拍腦袋”或者“領導定的”。他想考察的是你是否具備一套科學的、體系化的方法論來解決這個至關重要的工程問題。

總體來說,確定閾值有四種主流思路,其可靠性依次遞減:壓力測試、觀測監控、參考借鑒和手動估算。

1. 做壓力測試(黃金標準)

這是確定服務容量和限流閾值的最佳實踐,是所有嚴謹的工程團隊都應遵循的準則。

你可以這樣展開你的回答:

“要科學地確定限流閾值,最可靠的方法就是進行壓力測試,精準地找到我們服務的‘性能拐點’。如果公司的基建條件允許,全鏈路壓測是首選,因為它能最真實地模擬線上環境的復雜調用關系和資源競爭,得出的數據也最具有參考價值。如果暫時不具備全鏈路壓測的條件,那么退而求其次,也應該在預發布環境或者一個硬件配置與線上一致的獨立測試環境中,對目標服務進行單節點的壓力測試。”

接下來,是真正展現你技術功底的時刻了。你需要清晰地解釋如何解讀壓測數據。你可以在白板上或者用語言生動地描述出下面這張經典的性能曲線圖。

“在壓測過程中,我們會以QPS(每秒查詢率)為橫軸,不斷增加施加的壓力,同時密切觀測三個核心的性能指標:響應時間(Latency)、吞吐量(Throughput)和資源利用率(CPU/Memory Usage)。通常,我們會得到類似圖中所示的三條相互關聯的曲線。”

“從這張圖中,我們至少可以識別出三個具有里程碑意義的關鍵點位:”

  • “A點:最佳性能點。在A點之前,隨著QPS的穩步增長,服務的響應時間幾乎保持不變或僅有輕微上浮,系統處于‘游刃有余’的健康狀態。這個點可以為用戶提供最佳的性能體驗。”
  • “C點:最大吞吐量點。系統在這個點位達到了其能夠處理的請求量的極限。如果繼續增加壓力,超過C點后,由于內部資源(如線程、鎖、連接池)的過度爭搶,系統的總吞吐量反而會不增反降。”
  • “B點:系統崩潰臨界點。在這一點,服務的響應時間開始急劇惡化,系統處于極不穩定的狀態,隨時可能因資源耗盡而雪崩。很多時候,大家會把這個點對應的QPS視為服務的絕對容量極限。”

“那么,限流的閾值到底應該設在哪一點呢?這并沒有一個放之四海而皆準的答案,需要根據具體的業務場景和目標來進行權衡和取舍:”

“如果這個服務對用戶體驗(即低延遲)的要求極為苛刻,例如一些實時的交易或交互場景,我可能會選擇 A 點對應的QPS作為限流閾值,以犧牲一部分極限吞吐量為代價,換取最穩定、最快速的響應。”

“如果業務的核心目標是最大化處理能力,追求極致的吞吐量,例如一些后臺的、異步的數據處理任務,對單次任務的延遲不敏感,那么我可能會選擇 C 點對應的QPS作為閾值。”

“而對于大部分常規的在線業務,我們通常會在A點和C點之間尋找一個平衡點,或者更常見的做法是,以C點的QPS值乘以一個安全系數(例如80%或90%),以此作為最終的限流閾值,為系統預留出一定的緩沖空間。”

如果面試官提出質疑,比如“壓測在很多公司難以落地”,你需要展現出專業堅持和務實的態度。

“我非常理解在一些團隊中,由于技術基建、流程規范或資源限制,推行標準化的壓力測試確實存在挑戰。但我仍然堅信,壓測是保障系統性能和可用性的關鍵基石,是技術團隊走向成熟的必經之路。沒有精準的壓測數據作為支撐,許多性能優化、容量規劃和成本控制工作都將是‘盲人摸象’,難以科學地開展。所以我認為,我們應該積極地推動和建設壓測體系。”

2. 看監控數據(務實補充)

在表明了對壓測的專業立場后,你可以給出在無法壓測時的次優選擇。

“當然,如果在項目初期或者某些緊急情況下,確實來不及進行充分的壓測,我們也可以通過分析線上服務的歷史性能數據來初步估算一個相對合理的閾值。我會拉取過去一段時間(比如一個月或一個季度)的監控數據,重點關注業務高峰期的各項核心指標。如果在歷史峰值時刻,整個集群的總QPS都未曾超過1000,并且此時的CPU、內存、網絡IO等資源利用率也都在一個非常健康的水平(比如CPU低于60%),那么我可能會考慮將集群的總閾值初步設定在1200,多出來的200作為安全余量(Buffer),以應對未來的業務增長和無法預見的流量波動。”

同時,也要主動指出這種方法的固有缺陷:

“不過,這種方法有兩個明顯的局限性。第一,它依賴于服務已經上線并積累了足夠的歷史數據。第二,這樣得出的閾值很可能是顯著偏低的。因為業務的歷史峰值,并不等同于系統的性能極限。可能我們的集群明明能扛住3000 QPS,但因為業務量一直沒那么大,導致我們基于1000 QPS的觀測數據定了一個非常保守的閾值,這在某種程度上造成了硬件資源的閑置和浪費。”

3. 參考與借鑒(經驗之談)

如果連歷史數據都沒有,比如一個全新的業務,該怎么辦?

“如果是一個全新的業務,既沒有壓測數據,也沒有歷史監控數據,那么我們可以考慮第三種方法:參考和借鑒。我們可以尋找系統中與之業務邏輯類似、技術棧相同、或者存在上下游調用關系的服務。例如,如果服務A和服務B是緊密耦合的,通常調用了A就會調用B,那么我們可以參考A已經確定的限流閾值來設定B的閾值。又或者,我們可以根據業務轉化率來推算。例如,我們知道從‘創建訂單’接口到‘發起支付’接口,用戶的轉化率大約是90%。如果根據壓測,‘創建訂單’的單機限流閾值是100 QPS,那么‘支付’接口的單機閾值就可以初步設定為 90 QPS。”

4. 手動估算(無奈之舉)

這是在所有其他方法都不可行時的最后手段,準確度最差,但聊勝于無。

“如果以上方法都行不通,那就只剩下最后一招,也是最不精確的一招了:手動估算。具體做法是,我們需要詳細地分析單次請求的核心處理路徑,把它拆解成若干個關鍵步驟,并估算每一步的平均耗時。例如,一次請求的核心路徑包含:”

  • 1次對下游微服務的RPC調用(根據經驗或監控,平均耗時 20ms)
  • 2次對Redis的訪問(平均每次 1ms)
  • 1次會回表的數據庫查詢(平均耗時 10ms)

“將這些耗時相加,我們得到 20 + 2*1 + 10 = 32ms。再為CPU自身的計算、序列化/反序列化等邏輯處理預留一些時間,比如8ms。那么我們粗略估算出單次請求的總耗時大約是 40ms。基于這個耗時,我們可以估算理論QPS:”

  • 一個CPU核心在1秒鐘(1000ms)內,理論上能處理的請求數是 1000ms / 40ms = 25 個。
  • 如果我們的服務實例規格是 4 核 CPU,那么單機的理論QPS上限就是 25 * 4 = 100。
// 這是一個簡化的估算公式
(1000ms / 單次請求預估耗時) * CPU核心數 = 理論QPS上限

“當然,我必須強調,這個估算模型非常粗糙。它忽略了太多現實世界中的復雜因素,比如JVM的GC停頓、IO等待、網絡延遲、線程上下文切換、鎖競爭等等。所以,通過這種方式計算出來的值,必須再乘以一個比較大的折扣系數(比如50%或60%),得出一個非常保守的初始閾值。這個值只能作為服務上線時的臨時保護,后續必須盡快通過壓測或監控數據來進行修正。”

最后,你可以用一個具有前瞻性的觀點來升華你的整個回答:

“總而言之,確定閾值是一個系統性的、迭代的工程活動,需要結合多種方法。我所推崇的最佳實踐是,以嚴謹的壓力測試為基礎,以實時的線上監控為佐證,并最終將限流閾值設計成可通過配置中心動態調整的。這樣,我們就可以在服務上線初期采用一個保守的策略,然后根據線上的實際表現,逐步、安全地將閾值上調,最終讓系統的性能潛力得到充分而又安全的釋放。”

三、面試時的加分項與敘事技巧

除了正面回答核心問題,你還可以在面試中巧妙地穿插一些深入的思考,展現你的技術廣度和深度。

1. 突發流量(Bursty Traffic)與算法選擇

在介紹令牌桶和漏桶時,可以主動引出這個話題,展現你對算法適用場景的理解:

“在選擇限流算法時,一個重要的考量點就是服務是否需要應對突發流量。漏桶算法的輸出速率是絕對平滑的,它對偶發的突-發流量處理能力較差。相比之下,令牌桶通過其‘可積攢令牌’的機制,能夠很好地應對小規模的突發流量。例如,我們設置令牌生成速率是100個/秒,但桶的容量是50個。這意味著,如果前一秒系統比較空閑,攢下了50個令牌,那么下一秒最多可以處理 100(本秒生成的) + 50(積攢的) = 150 個請求。這在應對許多Web應用的瞬時高峰時非常有用。”

“但凡事有利有弊。令牌桶的容量(Burst Size)也需要謹慎設置。如果容量過大,積攢的令牌過多,那么在真正的流量洪峰到來時,可能會在短時間內放入遠超后端承受能力的請求,從而失去了限流的初衷,甚至成為壓垮系統的‘幫兇’。”

2. 請求大小(Request Size)的局限性

這是一個經常被忽略但非常深刻的問題,能體現你對問題本質的思考:

“另外,我們需要清醒地認識到,目前我們討論的所有主流限流算法,無論是哪一種,其限流的維度基本都是‘請求的個數’。這背后其實隱藏著一個重要的假設,即每個請求對系統資源的消耗是大致均等的。但在現實業務中,這個假設往往不成立。一個簡單的‘獲取用戶信息’的請求和一個復雜的‘生成年度報表’的請求,其消耗的CPU和內存可能相差幾個數量級。”

“這就導致了一個固有的局限性:即使我們嚴格地將請求數限制在每秒100個,但如果某一秒涌入的恰好都是‘重量級’的大請求,系統依然有因資源耗盡而崩潰的風險。動態限流算法通過監測響應時間等指標,在一定程度上能間接地感知到這種‘大請求’帶來的壓力,從而進行收縮,但也很難從根本上解決問題。這是一個在做限流設計時必須意識到的、理論層面的挑戰。”

3. 打造你的"故事線"

在面試中,最高級的溝通不是干巴巴地背誦知識點,而是將這些知識點有機地融入到你的項目故事中。

  • 準備翔實的案例:面試前,務必深入復盤你參與過的項目。限流具體用在了哪個場景?是對外的HTTP API做了IP限流,還是核心服務之間做了RPC限流?閾值是多少?當時是如何確定這個值的?被限流的請求是直接拒絕,還是排隊處理?把這些細節梳理清楚,它們是你最有力的“彈藥”。
  • 建立知識的關聯:展現你結構化的知識體系。在聊到系統設計、服務治理、API網關,甚至在聊到TCP擁塞控制時,都可以自然而然地把話題引到限流上,讓面試官看到你知識的廣度和連貫性。
  • 用行動證明能力:如果你有時間和精力,可以嘗試為一些知名的開源框架(比如gRPC、Dubbo、Spring Cloud)貢獻一個限流相關的PR。這不一定要求代碼被合并,關鍵在于,這個過程本身就是一個強有力的證據,它能向面試官雄辯地證明:你不僅懂理論,還能動手實現,并且擁有擁抱開源的技術熱情。

四、小結

限流,這個看似簡單的技術點,實則深潛著從算法理論到復雜工程實踐的諸多細節與權衡。希望今天這篇文章,能幫你把這些散落的知識點串聯起來,形成一套屬于你自己的、體系化的認知。

記住,下次再被問到限流時,不要只停留在背誦算法的層面。主動將話題引向閾值的科學計算方法論,向面試官展示你如何結合監控、壓測、業務分析等多種手段來解決一個復雜的、現實的工程問題。這才是讓你在眾多候選人中脫穎而出的關鍵所在。

責任編輯:趙寧寧 來源: IT楊秀才
相關推薦

2024-12-25 15:44:15

2024-02-04 10:08:34

2024-05-11 15:11:44

系統軟件部署

2015-08-13 10:29:12

面試面試官

2024-04-19 00:00:00

計數器算法限流算法

2024-02-26 14:07:18

2023-02-20 08:08:48

限流算法計數器算法令牌桶算法

2023-11-20 10:09:59

2023-10-28 09:13:32

系統面試官架構

2024-06-06 11:57:44

2025-02-26 12:19:52

2025-03-10 11:48:22

項目服務設計

2023-12-19 09:24:22

LinuxBIOSUEFI

2025-10-28 02:00:00

2025-04-14 11:41:12

RocketMQ長輪詢配置

2023-02-08 07:04:20

死鎖面試官單元

2021-07-09 10:11:34

Redis云數據技術

2015-08-24 09:00:36

面試面試官

2021-11-25 10:18:42

RESTfulJava互聯網

2025-01-13 09:24:32

點贊
收藏

51CTO技術棧公眾號

国产成人免费视频一区| 日韩欧美午夜| 在线一区二区三区做爰视频网站| 欧美一区二区三区成人久久片| 国产日韩久久久| 91精品国产调教在线观看| 精品久久一二三区| 成人黄色片视频| 麻豆传媒在线免费看| 粉嫩高潮美女一区二区三区| 国产精品扒开腿做| 黄色一级视频免费观看| 亚洲欧美日本伦理| 91精品福利在线一区二区三区 | 亚洲第一狼人社区| 蜜桃视频成人| 国产wwwxxx| 鲁大师影院一区二区三区| 久久久精品欧美| 日韩精品无码一区二区三区久久久 | 亚洲国产成人91porn| 欧美日韩一区二区三区在线视频 | 久久久久亚洲av无码专区体验| 国产福利资源一区| 欧美日韩一区二区在线观看视频| 国产精彩视频一区二区| 黄色在线免费网站| 久久精品水蜜桃av综合天堂| 成人免费观看网站| 亚洲字幕av一区二区三区四区| 国产一区二区高清| 九九热在线精品视频| 国产午夜福利一区| 你懂的一区二区三区| 日韩美女视频一区二区在线观看| 日韩肉感妇bbwbbwbbw| 乱人伦视频在线| 亚洲一区欧美一区| 国产美女视频免费| 成人h小游戏| 久久久综合激的五月天| 成人欧美一区二区三区视频xxx| 中文有码在线播放| 日韩精品电影在线| 日本午夜在线亚洲.国产| 国产精品99无码一区二区| 7777久久香蕉成人影院| 中文字幕亚洲一区二区三区| 五月天综合视频| 无码少妇一区二区三区| 亚洲精品久久久久久久久久久久久 | 99热只有这里有精品| 精品动漫一区| 隔壁老王国产在线精品| 日本三级2019| 99热精品在线观看| 97在线日本国产| 日韩大片免费在线观看| 亚洲精品一级| 2019中文在线观看| 波多野结衣啪啪| 久久精品毛片| 国产激情久久久| 日韩精品一区二区亚洲av观看| 美女黄网久久| 国产精品美女在线| 国产精品爽爽久久| 国产一本一道久久香蕉| 99在线首页视频| 囯产精品久久久久久| www.亚洲在线| 美媛馆国产精品一区二区| 欧美另类自拍| 国产精品视频麻豆| 综合国产精品久久久| 国产一区久久精品| 一区二区久久久久| 欧洲精品一区二区三区久久| 一本大道色婷婷在线| 色天天综合久久久久综合片| 色www免费视频| 日韩成人视屏| 日韩高清人体午夜| 国产传媒国产传媒| 久久久久久久久久久久久久| 欧美激情视频一区| 波多野结衣啪啪| 激情欧美日韩一区二区| 韩国成人av| 福利成人在线观看| 亚洲精品国久久99热| 激情伊人五月天| 澳门av一区二区三区| 欧美日韩一级视频| 中文字幕永久免费| 欧美伦理在线视频| 欧美黄色性视频| 成人a v视频| 国产91在线观看丝袜| 久久久国产精品一区二区三区| 风间由美一区| 亚洲aⅴ怡春院| 午夜剧场高清版免费观看| www.亚洲一二| 啊v视频在线一区二区三区 | jizz日本在线播放| 亚洲婷婷在线| 国产精品主播视频| 婷婷婷国产在线视频| 亚洲美腿欧美偷拍| 国产又大又黄又粗的视频| 亚洲精品高潮| 久久好看免费视频| 日本三级欧美三级| 国产专区综合网| 欧美日韩高清在线一区| 成人女同在线观看| 欧美精品亚洲一区二区在线播放| 国产三级国产精品| 欧美日韩国产精品一区二区亚洲| 国产精品久久久久久久9999| 日本美女一级片| 亚洲欧美视频在线观看| 亚洲色图久久久| 色综合www| 午夜精品99久久免费| 国产夫妻自拍av| 国产精品久久三区| www.国产区| 国产主播性色av福利精品一区| 久久亚洲欧美日韩精品专区| 国产精品无码粉嫩小泬| 91看片淫黄大片一级在线观看| 国产在线视频在线| 国产美女亚洲精品7777| 日韩中文字幕精品视频| 91porny九色| 久久久影视传媒| 国产九九九九九| 国产精品视频3p| 久久99久久99精品免观看粉嫩| 国产又粗又黄视频| 国产精品久久夜| 一路向西2在线观看| 成人综合一区| 国产精品啪视频| jizzjizz在线观看| 欧美丝袜丝nylons| 超碰人人干人人| 老司机精品视频一区二区三区| 视频一区视频二区视频| 欧洲成人一区| 中文字幕精品在线视频| 又污又黄的网站| 国产精品久久久久aaaa| 亚洲最大天堂网| 91精品久久久久久久蜜月| 91久久夜色精品国产网站| 午夜视频成人| 91精品国产综合久久久久久久 | 亚洲最大免费视频| 亚洲一区图片| 日韩中文一区| 国产一区二区久久久久| 欧美成人一区二区三区电影| 亚洲va欧美va| 偷拍亚洲欧洲综合| 熟女高潮一区二区三区| 奇米精品一区二区三区四区| 中文字幕在线亚洲精品| 经典三级久久| 性欧美xxxx视频在线观看| 天天操天天操天天操| 欧美日韩免费网站| 亚洲午夜精品久久久久久高潮| 另类欧美日韩国产在线| 看一级黄色录像| 国内视频在线精品| 国产精品国产自产拍高清av水多| 日本www在线观看视频| 日韩天堂在线观看| 天堂网一区二区三区| 国产人伦精品一区二区| 一级淫片在线观看| 99riav国产精品| 日韩电影大全在线观看| 精品国产三区在线| 性色av香蕉一区二区| 国产福利在线看| 日韩午夜在线观看| 亚洲免费在线视频观看| 国产精品久久久久久久久动漫 | 中文字幕一区日韩精品欧美| 日批视频免费看| 日韩高清在线不卡| 波多野结衣 作品| 神马影视一区二区| 亚洲一区二区三区在线视频| 亚洲精品成人图区| 久久久精品一区二区| 亚洲av电影一区| 欧美高清性hdvideosex| 中文字幕激情小说| 亚洲欧洲日韩av| www.色天使| 粉嫩绯色av一区二区在线观看| 国产九九在线视频| 亚洲三级免费| 日本xxxxx18| 日本一区二区免费高清| 精品在线一区| 亚洲国产精品免费视频| 国产精品久久久久久久午夜 | 中文字幕亚洲精品乱码| 日本不卡一区二区三区视频| 97久久综合区小说区图片区| 国产欧美一区二区三区久久| 小早川怜子影音先锋在线观看| 欧美成人激情视频免费观看| 成人动漫在线播放| 国产视频一区在线| 亚洲精品成av人片天堂无码| 欧美久久久久久久久| 亚洲毛片一区二区三区| 亚洲成av人片在www色猫咪| 日本中文在线视频| 中文字幕第一区综合| 久久久久久久久久久国产精品| 成人蜜臀av电影| 三上悠亚 电影| 国产自产2019最新不卡| 福利片一区二区三区| 日本一不卡视频| 日韩免费高清在线| 久久裸体视频| 337p粉嫩大胆噜噜噜鲁| 亚洲乱码久久| www.射射射| 亚洲国产高清一区二区三区| 日本久久久网站| 欧美日韩国产精品一区二区亚洲| 成人手机在线播放| 香蕉综合视频| 正义之心1992免费观看全集完整版| 欧美日韩一区二区综合| 日韩高清国产一区在线观看| 九一精品国产| 日本日本精品二区免费| 欧美日韩爱爱| 亚洲v欧美v另类v综合v日韩v| 奇米色欧美一区二区三区| 青青草国产精品| 欧美另类69xxxxx| 亚洲欧美日韩精品综合在线观看| re久久精品视频| 亚洲精品白虎| 欧美一区二区三区久久精品茉莉花 | 欧美日韩三级电影在线| 激情五月六月婷婷| 亚洲久久成人| 毛片一区二区三区四区| 巨乳诱惑日韩免费av| 亚洲 欧美 另类人妖| 激情综合网最新| 最新中文字幕日本| 99免费精品视频| 黄色aaa视频| 国产精品久久久久久久久动漫 | 久久国产精品久久精品国产| 妖精一区二区三区精品视频| 日韩精品在在线一区二区中文| 日本女优一区| 成人午夜免费剧场| 亚洲黄色免费| 一区二区三区国产免费| 麻豆国产一区二区| 国产裸体视频网站| 97精品国产露脸对白| 特级西西人体高清大胆| 亚洲靠逼com| 亚洲男人的天堂在线视频| 欧美丝袜丝交足nylons图片| 性欧美videos另类hd| 亚洲精品一区二区在线| 毛片在线看网站| 九九热这里只有在线精品视| 中国色在线日|韩| 91牛牛免费视频| 欧美一区二区三区久久| 色狠狠久久av五月综合|| 欧美破处大片在线视频| 熟妇人妻va精品中文字幕| 寂寞少妇一区二区三区| 在线观看av中文字幕| 亚洲人成在线观看一区二区| 国产一级免费观看| 欧美色精品天天在线观看视频| 亚洲爱爱综合网| 在线视频精品一| 日韩经典av| 国产精品流白浆视频| 成人福利一区| 一区二区在线观| 久久九九99| 久久久久无码国产精品一区李宗瑞| 久久久久久毛片| 久久免费黄色网址| 欧美日韩国产一级片| 色视频在线观看福利| 久久中文字幕在线视频| 亚洲第一影院| 国产视频精品网| 亚洲最新色图| 午夜激情av在线| 久久久国际精品| 日韩经典在线观看| 欧美一区二区久久| 国产精品影院在线| 欧美性受xxxx白人性爽| 亚洲亚洲一区二区三区| www.午夜色| 奇米影视在线99精品| 三级黄色片网站| 亚洲高清久久久| 精品人妻av一区二区三区| 在线视频精品一| 欧美韩国亚洲| 农村寡妇一区二区三区| 一本色道久久综合亚洲精品高清| 潘金莲一级淫片aaaaaaa| 亚洲欧美国产高清| 亚洲天堂999| 色老头一区二区三区| 久久91导航| 欧美一区二区在线| 玖玖视频精品| 日韩女同一区二区三区| 色综合天天综合| 你懂的视频在线| 欧美自拍视频在线| 免费观看久久av| 无码人妻精品一区二区三区在线| 成人国产免费视频| 国产真人真事毛片| 亚洲大胆美女视频| 乱馆动漫1~6集在线观看| 精品欧美日韩在线| 国产精品久久久久久久久久妞妞| bl动漫在线观看| 欧美日韩综合视频网址| 国产中文字幕在线视频| 国产精品69久久| 日韩欧美视频| 欧美性猛交xxxx乱大交91| 亚洲三级理论片| 午夜久久久久久久久久| 欧美高清在线观看| 老司机成人在线| 国产成人无码一二三区视频| 欧美激情综合网| 91精品在线视频观看| 欧美成年人网站| 国产精品网站在线看| 精品这里只有精品| 久久夜色精品国产噜噜av| 91视频久久久| 日韩中文字幕av| 18国产精品| 欧美日韩在线中文| 日本一区二区三区高清不卡 | 久草在线资源福利站| 蜜桃麻豆91| 蜜臀av性久久久久蜜臀aⅴ四虎| 国产男女猛烈无遮挡在线喷水| 欧美一区二区三区免费大片 | 欧美日韩高清一区二区不卡| h视频在线免费观看| 国产精品午夜av在线| 日本网站在线观看一区二区三区| 国产精品国产精品88| 亚洲精品99久久久久中文字幕| 欧美日韩精品免费观看视完整| 一区二区三区久久网| 成人免费视频网站在线观看| 波多野结衣日韩| 欧美大片va欧美在线播放| 欧美重口另类| jizzzz日本| 五月天一区二区| 欧美日韩xx| 久久五月天婷婷| 国产一区二区导航在线播放| 日韩成人高清视频| 日韩亚洲精品视频| 男人的天堂久久| 天天看片天天操| 欧美小视频在线| 超碰在线网址| 日韩精品久久久| 国产成人综合亚洲网站|