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

扛住100億次紅包請求的架構是這樣設計的!

開發(fā) 架構 開發(fā)工具
偶然看到了《扛住 100 億次請求——如何做一個“有把握”的春晚紅包系統(tǒng)》一文,看完以后,感慨良多,收益很多。

偶然看到了《扛住 100 億次請求——如何做一個“有把握”的春晚紅包系統(tǒng)》一文,看完以后,感慨良多,收益很多。

[[319951]]

圖片來自 Pexels

正所謂他山之石,可以攻玉,雖然此文發(fā)表于 2015 年,我看到時已經過去良久,但是其中的思想仍然可以為很多后端設計借鑒。

同時作為一名微信后端工程師,看完以后又會思考,學習了這樣的文章以后,是否能給自己的工作帶來一些實際的經驗呢?所謂紙上得來終覺淺,絕知此事要躬行,能否自己實踐一下 100 億次紅包請求呢?

否則讀完以后腦子里能剩下的東西不過就是 100 億,1400 萬 QPS 整流這樣的字眼,剩下的文章將展示作者是如何以此過程為目標,在本地環(huán)境的模擬了此過程。

實現(xiàn)的目標:單機支持 100 萬連接,模擬了搖紅包和發(fā)紅包過程,單機峰值 QPS 6 萬,平穩(wěn)支持了業(yè)務。

注:本文以及作者所有內容,僅代表個人理解和實踐,過程和微信團隊沒有任何關系,真正的線上系統(tǒng)也不同,只是從一些技術點進行了實踐,請讀者進行區(qū)分。

背景知識

QPS:Queries per second(每秒的請求數(shù)目)。

PPS:Packets per second(每秒數(shù)據(jù)包數(shù)目)。

搖紅包:客戶端發(fā)出一個搖紅包的請求,如果系統(tǒng)有紅包就會返回,用戶獲得紅包。

發(fā)紅包:產生一個紅包里面含有一定金額,紅包指定數(shù)個用戶,每個用戶會收到紅包信息,用戶可以發(fā)送拆紅包的請求,獲取其中的部分金額。

確定目標

在一切系統(tǒng)開始以前,我們應該搞清楚我們的系統(tǒng)在完成以后,應該有一個什么樣的負載能力。

用戶總數(shù)

通過文章我們可以了解到接入服務器 638 臺,服務上限大概是 14.3 億用戶, 所以單機負載的用戶上限大概是 14.3 億/638 臺=228 萬用戶/臺。

但是目前中國肯定不會有 14 億用戶同時在線,參考的說法:

  1. http://qiye.qianzhan.com/show/detail/160818-b8d1c700.html 

2016 年 Q2 微信用戶大概是 8 億,月活在 5.4 億左右。所以在 2015 年春節(jié)期間,雖然使用的用戶會很多,但是同時在線肯定不到 5.4 億。

服務器數(shù)量

一共有 638 臺服務器,按照正常運維設計,我相信所有服務器不會完全上線,會有一定的硬件冗余,來防止突發(fā)硬件故障。假設一共有 600 臺接入服務器。

單機需要支持的負載數(shù)

每臺服務器支持的用戶數(shù):5.4 億/ 600=90 萬。也就是平均單機支持 90 萬用戶。

如果真實情況比 90 萬更多,則模擬的情況可能會有偏差,但是我認為 QPS 在這個實驗中更重要。

單機峰值 QPS

文章中明確表示為 1400 萬 QPS。這個數(shù)值是非常高的,但是因為有 600 臺服務器存在,所以單機的 QPS 為 1400 萬/600=約為 2.3 萬 QPS。

文章曾經提及系統(tǒng)可以支持 4000 萬 QPS,那么系統(tǒng)的 QPS 至少要到 4000 萬/ 600=約為 6.6 萬,這個數(shù)值大約是目前的 3 倍,短期來看并不會被觸及。但是我相信應該做過相應的壓力測試。

發(fā)放紅包

文中提到系統(tǒng)以 5 萬個每秒的下發(fā)速度,那么單機每秒下發(fā)速度 50000/600=83 個/秒,也就是單機系統(tǒng)應該保證每秒以 83 個的速度下發(fā)即可。

最后考慮到系統(tǒng)的真實性,還至少有用戶登錄的動作,真實的系統(tǒng)還會包括聊天這樣的服務業(yè)務。

最后整體看一下 100 億次搖紅包這個需求,假設它是均勻地發(fā)生在春節(jié)聯(lián)歡晚會的 4 個小時里。

那么服務器的 QPS 應該是 10000000000/600/3600/4.0=1157。也就是單機每秒 1000 多次,這個數(shù)值其實并不高。

如果完全由峰值速度 1400 萬消化 10000000000/(1400*10000)=714 秒,也就是說只需要峰值堅持 11 分鐘,就可以完成所有的請求。

可見互聯(lián)網(wǎng)產品的一個特點就是峰值非常高,持續(xù)時間并不會很長。

總結:從單臺服務器看,它需要滿足下面一些條件。

①支持至少 100 萬連接用戶。

②每秒至少能處理 2.3 萬的 QPS,這里我們把目標定得更高一些 ,分別設定到了 3 萬和 6 萬。

③搖紅包:支持每秒 83 個的速度下發(fā)放紅包,也就是說每秒有 2.3 萬次搖紅包的請求,其中 83 個請求能搖到紅包,其余的 2.29 萬次請求會知道自己沒搖到。

當然客戶端在收到紅包以后,也需要確??蛻舳撕头掌鲀蛇叺募t包數(shù)目和紅包內的金額要一致。

因為沒有支付模塊,所以我們也把要求提高一倍,達到 200 個紅包每秒的分發(fā)速度。

④支持用戶之間發(fā)紅包業(yè)務,確保收發(fā)兩邊的紅包數(shù)目和紅包內金額要一致。同樣也設定 200 個紅包每秒的分發(fā)速度為我們的目標。

想要完整地模擬整個系統(tǒng)實在是太難了,首先需要海量的服務器,其次需要上億的模擬客戶端。

這對我來說是辦不到,但是有一點可以確定,整個系統(tǒng)是可以水平擴展的,所以我們可以模擬 100 萬客戶端,再模擬一臺服務器,那么就完成了 1/600 的模擬。

和現(xiàn)有系統(tǒng)區(qū)別:和大部分高 QPS 測試的不同,本系統(tǒng)的側重點有所不同。

我對兩者做了一些對比:

基礎軟件和硬件

軟件

Golang 1.8r3,Shell,Python(開發(fā)沒有使用 C++ 而是使用了 Golang,是因為使用 Golang 的最初原型達到了系統(tǒng)要求。雖然 Golang 還存在一定的問題,但是和開發(fā)效率比,這點損失可以接受)。

服務器操作系統(tǒng):Ubuntu 12.04。

客戶端操作系統(tǒng):debian 5.0。

硬件環(huán)境

服務端:dell R2950。8 核物理機,非獨占有其他業(yè)務在工作,16G 內存。這臺硬件大概是 7 年前的產品,性能要求應該不是很高。

服務器硬件版本:

服務器 CPU 信息:

客戶端:esxi 5.0 虛擬機,配置為 4 核 5G 內存。一共 17 臺,每臺和服務器建立 6 萬個連接,完成 100 萬客戶端模擬。

技術分析和實現(xiàn)

單機實現(xiàn) 100 萬用戶連接

這一點來說相對簡單,筆者在幾年前就早完成了單機百萬用戶的開發(fā)以及操作?,F(xiàn)代的服務器都可以支持百萬用戶。相關內容可以查看 Github 代碼以及相關文檔、系統(tǒng)配置以及優(yōu)化文檔。

參考鏈接:

  1. https://github.com/xiaojiaqi/C1000kPracticeGuide 
  2. https://github.com/xiaojiaqi/C1000kPracticeGuide/tree/master/docs/cn 

3 萬 QPS

這個問題需要分 2 個部分來看客戶端方面和服務器方面。

①客戶端 QPS

因為有 100 萬連接連在服務器上,QPS 為 3 萬。這就意味著每個連接每 33 秒,就需要向服務器發(fā)一個搖紅包的請求。

因為單 IP 可以建立的連接數(shù)為 6 萬左右,有 17 臺服務器同時模擬客戶端行為。我們要做的就是保證在每一秒都有這么多的請求發(fā)往服務器即可。

其中技術要點就是客戶端協(xié)同。但是各個客戶端的啟動時間,建立連接的時間都不一致,還存在網(wǎng)絡斷開重連這樣的情況,各個客戶端如何判斷何時自己需要發(fā)送請求,各自該發(fā)送多少請求呢?

我是這樣解決的:利用 NTP 服務,同步所有的服務器時間,客戶端利用時間戳來判斷自己的此時需要發(fā)送多少請求。

算法很容易實現(xiàn):假設有 100 萬用戶,則用戶 id 為 0-999999。要求的 QPS 為 5 萬,客戶端得知 QPS 為 5 萬,總用戶數(shù)為 100 萬,它計算 100 萬/5 萬=20,所有的用戶應該分為 20 組。

如果 time()%20==用戶id%20,那么這個 id 的用戶就該在這一秒發(fā)出請求,如此實現(xiàn)了多客戶端協(xié)同工作。每個客戶端只需要知道總用戶數(shù)和 QPS 就能自行準確發(fā)出請求了。

擴展思考:如果 QPS 是 3 萬這樣不能被整除的數(shù)目,該如何做?如何保證每臺客戶端發(fā)出的請求數(shù)目盡量的均衡呢?

②服務器 QPS

服務器端的 QPS 相對簡單,它只需要處理客戶端的請求即可。但是為了客觀了解處理情況,我們還需要做 2 件事情。

第一:需要記錄每秒處理的請求數(shù)目,這需要在代碼里埋入計數(shù)器。

第二:需要監(jiān)控網(wǎng)絡,因為網(wǎng)絡的吞吐情況,可以客觀的反映出 QPS 的真實數(shù)據(jù)。

為此,我利用 Python 腳本結合 ethtool 工具編寫了一個簡單的工具,通過它我們可以直觀地監(jiān)視到網(wǎng)絡的數(shù)據(jù)包通過情況如何。它可以客觀地顯示出我們的網(wǎng)絡有如此多的數(shù)據(jù)傳輸在發(fā)生。

工具截圖:

搖紅包業(yè)務

搖紅包的業(yè)務非常簡單,首先服務器按照一定的速度生產紅包。紅包沒有被取走的話,就堆積在里面。

服務器接收一個客戶端的請求,如果服務器里現(xiàn)在有紅包就會告訴客戶端有,否則就提示沒有紅包。

因為單機每秒有 3 萬的請求,所以大部分的請求會失敗。只需要處理好鎖的問題即可。

我為了減少競爭,將所有的用戶分在了不同的桶里。這樣可以減少對鎖的競爭。

如果以后還有更高的性能要求,還可以使用高性能隊列——Disruptor 來進一步提高性能。

注意,在我的測試環(huán)境里是缺少支付這個核心服務的,所以實現(xiàn)的難度是大大地減輕了。

另外提供一組數(shù)字:2016 年淘寶的雙 11 的交易峰值僅僅為 12 萬/秒,微信紅包分發(fā)速度是 5 萬/秒,要做到這點是非常困難的。

參考鏈接:

  1. http://mt.sohu.com/20161111/n472951708.shtml 

發(fā)紅包業(yè)務

發(fā)紅包的業(yè)務很簡單,系統(tǒng)隨機產生一些紅包,并且隨機選擇一些用戶,系統(tǒng)向這些用戶提示有紅包。

這些用戶只需要發(fā)出拆紅包的請求,系統(tǒng)就可以隨機從紅包中拆分出部分金額,分給用戶,完成這個業(yè)務。同樣這里也沒有支付這個核心服務。

監(jiān)控

最后,我們需要一套監(jiān)控系統(tǒng)來了解系統(tǒng)的狀況,我借用了我另一個項目里的部分代碼完成了這個監(jiān)控模塊,利用這個監(jiān)控,服務器和客戶端會把當前的計數(shù)器內容發(fā)往監(jiān)控,監(jiān)控需要把各個客戶端的數(shù)據(jù)做一個整合和展示。

同時還會把日志記錄下來,給以后的分析提供原始數(shù)據(jù)。線上系統(tǒng)更多使用 opentsdb 這樣的時序數(shù)據(jù)庫,這里資源有限,所以用了一個原始的方案。

參考鏈接:

  1. https://github.com/xiaojiaqi/fakewechat 

監(jiān)控顯示日志大概這樣:

代碼實現(xiàn)及分析

在代碼方面,使用到的技巧實在不多,主要是設計思想和 Golang 本身的一些問題需要考慮。

首先 Golang 的 goroutine 的數(shù)目控制,因為至少有 100 萬以上的連接,所以按照普通的設計方案,至少需要 200 萬或者 300 萬的 goroutine 在工作,這會造成系統(tǒng)本身的負擔很重。

其次就是 100 萬個連接的管理,無論是連接還是業(yè)務都會造成一些心智的負擔。

我的設計是這樣的:

①首先將 100 萬連接分成多個不同的 SET,每個 SET 是一個獨立、平行的對象。

每個 SET 只管理幾千個連接,如果單個 SET 工作正常,我只需要添加 SET 就能提高系統(tǒng)處理能力。

②其次謹慎地設計了每個 SET 里數(shù)據(jù)結構的大小,保證每個 SET 的壓力不會太大,不會出現(xiàn)消息的堆積。

③再次減少了 gcroutine 的數(shù)目,每個連接只使用一個 goroutine,發(fā)送消息在一個 SET 里只有一個 gcroutine 負責,這樣節(jié)省了 100 萬個 goroutine。

這樣整個系統(tǒng)只需要保留 100 萬零幾百個 gcroutine 就能完成業(yè)務。大量的節(jié)省了 CPU 和內存。

系統(tǒng)的工作流程大概是:每個客戶端連接成功后,系統(tǒng)會分配一個 goroutine 讀取客戶端的消息,當消息讀取完成,將它轉化為消息對象放至在 SET 的接收消息隊列,然后返回獲取下一個消息。

在 SET 內部,有一個工作 goroutine,它只做非常簡單而高效的事情,它做的事情如下。

檢查 SET 的接受消息,它會收到 3 類消息:

  • 客戶端的搖紅包請求消息。
  • 客戶端的其他消息,比如聊天好友這一類。
  • 服務器端對客戶端消息的回應。

對于第 1 種消息是這樣處理的,從客戶端拿到搖紅包請求消息,試圖從 SET 的紅包隊列里獲取一個紅包,如果拿到了就把紅包信息返回給客戶端,否則構造一個沒有搖到的消息,返回給對應的客戶端。

對于第 2 種消息,只需簡單地從隊列里拿走消息,轉發(fā)給后端的聊天服務隊列即可,其他服務會把消息轉發(fā)出去。

對于第 3 種消息,SET 只需要根據(jù)消息里的用戶 id,找到 SET 里保留的用戶連接對象,發(fā)回去就可以了。

對于紅包產生服務,它的工作很簡單,只需要按照順序輪流在每個 SET 的紅包產生隊列里放置紅包對象就可以了。

這樣可以保證每個 SET 里都是公平的,其次它的工作強度很低,可以保證業(yè)務穩(wěn)定。

參考鏈接:

  1. https://github.com/xiaojiaqi/10billionhongbaos 

實踐

實踐的過程分為三個階段:

階段 1

分別啟動服務器端和監(jiān)控端,然后逐一啟動 17 臺客戶端,讓它們建立起 100 萬的鏈接。在服務器端,利用 ss 命令統(tǒng)計出每個客戶端和服務器建立了多少連接。

命令如下:

  1. Alias ss2=Ss –ant | grep 1025 | grep EST | awk –F: “{print \$8}” | sort | uniq –c’ 

結果如下:

階段 2

利用客戶端的 HTTP 接口,將所有的客戶端 QPS 調整到 3 萬,讓客戶端發(fā)出 3W QPS 強度的請求。

運行如下命令:

觀察網(wǎng)絡監(jiān)控和監(jiān)控端反饋,發(fā)現(xiàn) QPS 達到預期數(shù)據(jù),網(wǎng)絡監(jiān)控截圖:

在服務器端啟動一個產生紅包的服務,這個服務會以 200 個每秒的速度下發(fā)紅包,總共 4 萬個。

此時觀察客戶端在監(jiān)控上的日志,會發(fā)現(xiàn)基本上以 200 個每秒的速度獲取到紅包。

等到所有紅包下發(fā)完成后,再啟動一個發(fā)紅包的服務,這個服務系統(tǒng)會生成 2 萬個紅包,每秒也是 200 個,每個紅包隨機指定 3 位用戶,并向這 3 個用戶發(fā)出消息,客戶端會自動來拿紅包,最后所有的紅包都被拿走。

階段 3

利用客戶端的 HTTP 接口,將所有的客戶端 QPS 調整到 6 萬,讓客戶端發(fā)出 6W QPS 強度的請求。

如法炮制,在服務器端,啟動一個產生紅包的服務,這個服務會以 200 個每秒的速度下發(fā)紅包,總共 4 萬個。

此時觀察客戶端在監(jiān)控上的日志,會發(fā)現(xiàn)基本上以 200 個每秒的速度獲取到紅包。

等到所有紅包下發(fā)完成后,再啟動一個發(fā)紅包的服務,這個服務系統(tǒng)會生成 2 萬個紅包,每秒也是 200 個,每個紅包隨機指定 3 位用戶,并向這 3 個用戶發(fā)出消息,客戶端會自動來拿紅包,最后所有的紅包都被拿走。

最后,實踐完成。

分析數(shù)據(jù)

在實踐過程中,服務器和客戶端都將自己內部的計數(shù)器記錄發(fā)往監(jiān)控端,成為了日志。

我們利用簡單 Python 腳本和 gnuplt 繪圖工具,將實踐的過程可視化,由此來驗證運行過程。

第一張是客戶端的 QPS 發(fā)送數(shù)據(jù):

這張圖的橫坐標是時間,單位是秒,縱坐標是 QPS,表示這時刻所有客戶端發(fā)送的請求的 QPS。

圖的第一區(qū)間,幾個小的峰值,是 100 萬客戶端建立連接的, 圖的第二區(qū)間是 3 萬 QPS 區(qū)間,我們可以看到數(shù)據(jù)比較穩(wěn)定地保持在 3 萬這個區(qū)間。最后是 6 萬 QPS 區(qū)間。

但是從整張圖可以看到 QPS 不是完美地保持在我們希望的直線上。

這主要是以下幾個原因造成的:

①當非常多 goroutine 同時運行的時候,依靠 sleep 定時并不準確,發(fā)生了偏移。

我覺得這是 Golang 本身調度導致的。當然如果 CPU 比較強勁,這個現(xiàn)象會消失。

②因為網(wǎng)絡的影響,客戶端在發(fā)起連接時,可能發(fā)生延遲,導致在前 1 秒沒有完成連接。

③服務器負載較大時,1000M 網(wǎng)絡已經出現(xiàn)了丟包現(xiàn)象,可以通過 ifconfig 命令觀察到這個現(xiàn)象,所以會有 QPS 的波動。

第二張是服務器處理的 QPS 圖:

和客戶端相對應,服務器也存在 3 個區(qū)間,和客戶端的情況很接近。但是我們看到了在大概 22:57 分,系統(tǒng)的處理能力就有一個明顯的下降,隨后又提高的尖狀,這說明代碼還需要優(yōu)化。

整體觀察可以發(fā)現(xiàn),在 3 萬 QPS 區(qū)間,服務器的 QPS 比較穩(wěn)定,在 6 萬 QSP 時候,服務器的處理就不穩(wěn)定了。我相信這和我的代碼有關,如果繼續(xù)優(yōu)化的話,還應該能有更好的效果。

將兩張圖合并起來:

基本是吻合的,這也證明系統(tǒng)是符合預期設計的。

這是紅包生成數(shù)量的狀態(tài)變化圖:

非常穩(wěn)定。

這是客戶端每秒獲取的搖紅包狀態(tài):

可以發(fā)現(xiàn) 3 萬 QPS 區(qū)間,客戶端每秒獲取的紅包數(shù)基本在 200 左右,在 6 萬 QPS 的時候,以及出現(xiàn)劇烈的抖動,不能保證在 200 這個數(shù)值了。

我覺得主要是 6 萬 QPS 時候,網(wǎng)絡的抖動加劇了,造成了紅包數(shù)目也在抖動。

最后是 Golang 自帶的 pprof 信息,其中有 GC 時間超過了 10ms, 考慮到這是一個 7 年前的硬件,而且非獨占模式,所以還是可以接受。

總結

按照設計目標,我們模擬和設計了一個支持 100 萬用戶,并且每秒至少可以支持 3 萬 QPS,最多 6 萬 QPS 的系統(tǒng),簡單模擬了微信的搖紅包和發(fā)紅包的過程,可以說達到了預期的目的。

如果 600 臺主機每臺主機可以支持 6 萬 QPS,只需要 7 分鐘就可以完成 100 億次搖紅包請求。

雖然這個原型簡單地完成了預設的業(yè)務,但是它和真正的服務會有哪些差別呢?

我羅列了一下:

參考資料:

  • 單機百萬的實踐

https://github.com/xiaojiaqi/C1000kPracticeGuide

  • 如何在 AWS 上進行 100 萬用戶壓力

https://github.com/xiaojiaqi/fakewechat/wiki/Stress-Testing-in-the-Cloud

  • 構建一個你自己的類微信系統(tǒng)

https://github.com/xiaojiaqi/fakewechat/wiki/Design

http://techblog.cloudperf.net/2016/05/2-million-packets-per-second-on-public.html

  • @火丁筆記

http://huoding.com/2013/10/30/296

https://gobyexample.com/non-blocking-channel-operations

 

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

2017-03-20 16:13:31

微信紅包高并發(fā)紅包系統(tǒng)

2025-10-15 01:55:00

系統(tǒng)架構多屬性

2025-08-22 09:06:57

2025-01-12 13:06:45

2021-07-09 05:52:36

架構開發(fā)緩存

2015-03-02 13:10:53

IT技術周刊

2015-02-26 14:00:38

微信支付寶紅包

2015-02-26 17:55:00

微信支付寶紅包

2020-11-27 14:33:00

QQ紅包設計

2025-02-14 03:00:00

2023-04-26 07:40:34

MySQL索引類型存儲

2023-04-18 15:22:04

2025-09-17 05:00:00

2025-02-24 07:48:04

2021-03-31 10:12:12

MongoDBQPS存儲

2017-01-19 18:20:59

數(shù)據(jù)架構數(shù)據(jù)庫

2019-11-12 09:32:35

高并發(fā)流量協(xié)議

2025-08-20 09:17:41

2015-09-24 16:24:58

2025-10-27 05:11:00

點贊
收藏

51CTO技術棧公眾號

欧美精品xxxxx| 999这里有精品| 黄色大片在线免费观看| 蜜桃视频一区二区三区| 美女撒尿一区二区三区| 好吊色视频一区二区三区| 不卡av影片| 亚洲欧美在线观看| 久久av一区二区| 国产又大又粗又长| 一本久久知道综合久久| 最近中文字幕mv在线一区二区三区四区| 亚洲综合伊人久久| 在线观看v片| 中文字幕亚洲电影| 欧美成人dvd在线视频| 国产亲伦免费视频播放| 久久久蜜桃一区二区人| 久久99国产综合精品女同| 成年人免费观看视频网站 | 国产一区视频在线播放| 天天插天天操天天干| 91中文字幕精品永久在线| 亚洲老头同性xxxxx| 精品人妻一区二区乱码| 88xx成人网| 欧美日韩一区二区在线| 激情六月天婷婷| 国产www.大片在线| 91免费看`日韩一区二区| 91在线观看免费高清完整版在线观看| 日本一本在线观看| 亚洲巨乳在线| 九九精品在线播放| av最新在线观看| 国产亚洲欧美日韩在线观看一区二区| 欧美精品一区二区三区蜜桃视频 | 国产福利电影一区二区三区| 国产精品久久网| 一级片中文字幕| 一区在线免费观看| 精品中文字幕视频| 91成人福利视频| 久久国产小视频| 影音先锋日韩有码| 午夜时刻免费入口| 国产精品手机在线播放| 亚洲国产欧美一区二区三区久久| 免费看三级黄色片| 日韩免费成人| 欧美一区二区三区四区五区| 日韩av一卡二卡三卡| 国产69精品久久久久按摩| 欧美亚洲国产一区二区三区| 国产av人人夜夜澡人人爽| 中文字幕色婷婷在线视频| 精品久久中文字幕久久av| 国产3p露脸普通话对白| a级片免费在线观看| 亚洲宅男天堂在线观看无病毒| 麻豆md0077饥渴少妇| 黄色av网站在线播放| 亚洲欧洲日产国码二区| 中文字幕久久综合| 成人无遮挡免费网站视频在线观看| 亚洲特级片在线| 国产人妻互换一区二区| 尤物视频在线看| 亚洲一级在线观看| 国产 福利 在线| 欧美gay囗交囗交| 欧美视频一区二区三区| 免费av不卡在线| 一本色道69色精品综合久久| 精品国产91久久久久久久妲己| 制服丝袜第一页在线观看| 亚洲综合福利| 日韩中文字幕欧美| 波多野结衣亚洲色图| 制服诱惑一区二区| 国产精品mp4| 91在线你懂的| 北岛玲一区二区三区四区| 欧洲亚洲一区二区三区四区五区| 97超碰国产一区二区三区| 亚洲欧美一区二区久久| 免费av手机在线观看| 欧美性理论片在线观看片免费| 欧美日韩dvd在线观看| 丰满人妻一区二区三区大胸| 天海翼亚洲一区二区三区| 在线观看国产精品淫| 久久精品www| 久久久久国产精品午夜一区| 成人网在线免费观看| 色一情一乱一区二区三区| 中文av一区二区| 欧美成人三级在线视频| 亚洲综合在线电影| 欧美sm美女调教| 久久久久久久毛片| 欧美私人啪啪vps| 国产精品都在这里| 韩国av免费在线| 国产精品私人自拍| 欧美日韩黄色一级片| 国产美女视频一区二区| 亚洲片在线观看| 久久一级黄色片| 麻豆91在线看| 欧美日韩亚洲在线| 青草在线视频| 欧美卡1卡2卡| 女人又爽又黄免费女仆| 亚洲成人在线| 亚洲a在线观看| 国产人成在线视频| 精品人伦一区二区三区蜜桃免费| 成年人三级黄色片| 国产精品探花在线观看| 91精品国产网站| 精品久久久无码中文字幕| 欧美高清一级片在线观看| 精品久久一二三| 国产一区二区三区视频在线| 在线视频中文亚洲| 免费av网站在线| 99国产精品久久久久久久久久| 国产一二三四五| 欧美日韩破处视频| 亚洲天堂免费观看| 天天操天天爽天天干| 福利一区福利二区| 爱爱爱视频网站| 免费成人高清在线视频| 夜夜嗨av色综合久久久综合网| 国产成人亚洲欧洲在线| 成人午夜大片免费观看| 亚洲精品天堂成人片av在线播放| 久久亚洲精品人成综合网| 亚洲天堂av女优| 不卡av电影在线| 久久影音资源网| av网站在线观看不卡| 国产亚洲精品美女久久| 久久久最新网址| 黄色av中文字幕| 五月综合激情日本mⅴ| 免费不卡的av| 亚洲毛片av| 久久免费99精品久久久久久| 日本免费一区二区六区| 亚洲精品成人久久| 国产又黄又爽又色| 26uuu国产日韩综合| 欧美极品欧美精品欧美图片| 宅男在线一区| 国产精品成av人在线视午夜片 | 99久久er热在这里只有精品66| 日韩一级性生活片| 欧美精品中文字幕亚洲专区| 91禁外国网站| 天堂影院在线| 欧美主播一区二区三区美女| 亚洲aaa视频| 国产在线看一区| 可以看毛片的网址| 风间由美一区二区av101 | 亚洲精品一级二级| 中文日韩在线视频| 国产尤物在线观看| 亚洲伊人伊色伊影伊综合网| 国产十八熟妇av成人一区| 国产精品普通话对白| 日本一区视频在线观看| 亚洲一区导航| 国模私拍视频一区| 国模精品一区二区| 欧美精品一二三区| 九热这里只有精品| 久久久久综合网| 亚洲一二三不卡| 精品电影一区| 日韩av高清| 精品网站999| 69视频在线播放| 在线免费av网站| 精品国产青草久久久久福利| 国产剧情在线视频| 亚洲欧洲国产日韩| 亚洲综合自拍网| 久久成人18免费观看| 日本五级黄色片| 精品久久美女| 成人欧美一区二区三区视频| 欧美电影免费观看高清完整| 久久精品99国产精品酒店日本 | 2欧美一区二区三区在线观看视频| 亚洲视频在线a| 欧美成人首页| 日本最新一区二区三区视频观看| 玖玖玖电影综合影院| 日韩av免费在线看| 日本欧美电影在线观看| 亚洲午夜国产成人av电影男同| 99热这里只有精| 一本高清dvd不卡在线观看| 成年人二级毛片| 国产网站一区二区| 麻豆av免费看| 久久99精品久久久久婷婷| 欧美 日韩 国产 高清| 国产高清一区| 日韩少妇中文字幕| 久久综合五月婷婷| 亚洲va国产va天堂va久久| 色老太综合网| 国模精品系列视频| 亚洲小说区图片区都市| 中文字幕视频在线免费欧美日韩综合在线看| 精品毛片一区二区三区| 欧美日韩你懂的| 天堂网免费视频| 无吗不卡中文字幕| 久久国产在线观看| 亚洲精品免费看| 欧美精品日韩在线| 久久综合av免费| 88av在线播放| 成人一区二区三区视频在线观看 | 色婷婷综合成人av| 日本不卡视频一区二区| 精品国产乱码久久久久久闺蜜| 91欧美日韩麻豆精品| 欧美日韩一区不卡| av一级在线观看| 一本一道久久a久久精品综合蜜臀| 久久综合色综合| 亚洲男帅同性gay1069| 99热6这里只有精品| 国产精品免费丝袜| 亚洲第一综合网| 国产偷国产偷亚洲高清人白洁| 国产精品一区二区入口九绯色| 国产91在线看| 在线精品视频播放| 成人午夜激情片| 午夜免费福利影院| 成人免费毛片嘿嘿连载视频| 国产精品嫩草69影院| 丁香六月综合激情| 蜜臀av粉嫩av懂色av| 不卡一区二区中文字幕| 高清中文字幕mv的电影| 成人高清视频在线观看| 人妻av一区二区| kk眼镜猥琐国模调教系列一区二区| 国产人妻黑人一区二区三区| 成人在线视频一区| bl动漫在线观看| 久久免费电影网| 五月天精品在线| 国产精品蜜臀av| 国产97免费视频| 亚洲午夜三级在线| 91porny在线| 欧美专区日韩专区| 国产精品免费无遮挡| 日韩免费观看高清完整版在线观看| 亚洲国产精品视频在线| 日韩av网站导航| 国产永久av在线| 久久综合五月天| 波多野结衣在线高清| 青草青草久热精品视频在线网站| 成人黄色毛片| 91中文字幕在线| 久久综合另类图片小说| 小说区图片区图片区另类灬| 天天影视天天精品| 日本a在线免费观看| 日本系列欧美系列| 原创真实夫妻啪啪av| 99国产精品视频免费观看| 天堂网av2018| 亚洲午夜精品久久久久久久久| 欧产日产国产69| 7878成人国产在线观看| 十八禁一区二区三区| 在线午夜精品自拍| aaa大片在线观看| 欧美主播福利视频| 清纯唯美激情亚洲| 免费精品视频一区二区三区| 婷婷色综合网| 中文字幕无码精品亚洲35| 老司机精品视频导航| 黑森林av导航| 国产精品丝袜91| 男人的天堂一区二区| 欧美精品xxxxbbbb| 你懂的免费在线观看视频网站| 久热爱精品视频线路一| 校园春色亚洲色图| 亚洲综合日韩在线| 日韩精品一卡| 亚洲午夜无码av毛片久久| 国产一区二区三区免费观看| 色欲狠狠躁天天躁无码中文字幕| 一区二区三区91| 真实新婚偷拍xxxxx| 亚洲国产黄色片| 国产不卡在线| 国产精品啪视频| 女同一区二区三区| 三级在线免费观看| 日本aⅴ精品一区二区三区| 偷偷色噜狠狠狠狠的777米奇| 日韩一区在线播放| 波多野结衣爱爱| 日韩成人av网址| 波多一区二区| 波多野结衣久草一区| 欧美a级成人淫片免费看| 国产又大又硬又粗| 99精品国产视频| 妺妺窝人体色www聚色窝仙踪| 欧美日本一区二区| 国产youjizz在线| 国产精品2018| 国产精品一国产精品| 无码精品a∨在线观看中文| 成人午夜电影久久影院| 免费麻豆国产一区二区三区四区| 欧美日韩国产小视频| 丁香婷婷在线| 国产精品1234| 成人精品天堂一区二区三区| 免费在线观看的毛片| 91原创在线视频| 成年人免费高清视频| 亚洲经典中文字幕| av人人综合网| 极品校花啪啪激情久久| 亚洲小说欧美另类婷婷| 国产调教打屁股xxxx网站| 亚洲综合视频网| 丰满肉嫩西川结衣av| 性欧美暴力猛交69hd| 激情亚洲另类图片区小说区| 国产美女在线一区| aaa国产一区| 一级黄色大片视频| 亚洲人成在线观看网站高清| 亚洲承认视频| 亚洲人一区二区| 国内欧美视频一区二区| 欧美风情第一页| 日韩一区二区三区精品视频| 国产亚av手机在线观看| 成人免费视频网站| 亚洲三级国产| 亚洲一级中文字幕| 欧美日韩精品专区| 国产在线高清视频| 成人免费在线一区二区三区| 99视频精品| av永久免费观看| 欧美精品久久久久久久多人混战| bt在线麻豆视频| 国产在线资源一区| 久久精品天堂| chinese全程对白| 亚洲成人激情视频| 日韩电影av| 午夜探花在线观看| 99久久精品国产一区| 中文有码在线播放| 免费不卡欧美自拍视频| 精品自拍偷拍| 天天操天天爱天天爽| 亚洲精品国产第一综合99久久| 蜜臀av在线观看| 国产精品福利在线观看| 你懂的成人av| 亚洲区免费视频| 欧美精品国产精品| 亚洲性受xxx喷奶水| 麻豆中文字幕在线观看| 成人91在线观看| 在线免费观看一区二区| 91禁外国网站| 欧美mv日韩| 国产三级国产精品| 91麻豆精品国产自产在线 | 色网站国产精品| 中文字幕伦理免费在线视频| 欧美日韩精品久久| 国产成人亚洲综合a∨猫咪| 中文字幕69页|