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

聽說你會架構設計?來,弄一個紅包系統

開發 架構
和大多數秒殺系統設計相似,由于搶紅包時并發很高,如果直接操作 DB 里的數據表,可能觸發 DB 鎖的邏輯,導致響應不及時。

大家好,我是小?,一個漂泊江湖多年的 985 非科班程序員,曾混跡于國企、互聯網大廠和創業公司的后臺開發攻城獅。

1. 引言

當我那天拿著手機,正在和朋友們的微信群里暢聊著八卦新聞和即將到來的周末計劃時,忽然一條帶著喜意的消息撲面而來,消息正中間赫然寫著八個大字:恭喜發財,大吉大利。

圖片圖片

搶紅包!!相信大部分人對此都不陌生,自 2015 年春節以來,微信就新增了各類型搶紅包功能,吸引了數以億萬級的用戶參與體驗,今天,我們就來聊一聊這個奇妙有趣的紅包系統。

2. 概要設計

2.1 系統特點

圖片圖片

搶紅包系統從功能拆分,可以分為包紅包、發紅包、搶紅包和拆紅包 4 個功能。

對于系統特性來說,搶紅包系統和秒殺系統類似。

圖片圖片

每次發紅包都是一次商品秒殺流程,包括商品準備,商品上架,查庫存、減庫存,以及秒殺開始,最終的用戶轉賬就是紅包到賬的過程。

2.2 難點

相比秒殺活動,微信發紅包系統的用戶量更大,設計更加復雜,需要重視的點更多,主要包括以下幾點。

1、高并發

海量并發請求,秒殺只有一次活動,但紅包可能同一時刻有幾十萬個秒殺活動。

比如 2017 雞年除夕,微信紅包搶紅包用戶數高達 3.42 億,收發峰值 76 萬/秒,發紅包 37.77 億 個。

2、安全性要求

紅包業務涉及資金交易,所以一定不能出現超賣、少賣的情況。

  • 超賣:發了 10 塊錢,結果搶到了 11 塊錢,多的錢只能系統補上,如此為愛發電應用估計早就下架了;
  • 少賣:發了 10 塊錢,只搶了 9 塊,多的錢得原封不動地退還用戶,否則第二天就接到法院傳單了。

3、嚴格事務

參與用戶越多,并發 DB 請求越大,數據越容易出現事務問題,所以系統得做好事務一致性。

這也是一般秒殺活動的難點所在,而且搶紅包系統涉及金錢交易,所以事務級別要求更高,不能出現臟數據。

3. 概要設計

3.1 功能說明

搶紅包功能允許用戶在群聊中發送任意個數和金額的紅包,群成員可以搶到隨機金額的紅包,但要保證每個用戶的紅包金額不小于 0.01 元。

圖片圖片

搶紅包的詳細交互流程如下:

  1. 用戶接收到搶紅包通知,點擊通知打開群聊頁面;
  2. 用戶點擊搶紅包,后臺服務驗證用戶資格,確保用戶尚未領取過此紅包;
  3. 若用戶資格驗證通過,后臺服務分配紅包金額并存儲領取記錄;
  4. 用戶在微信群中看到領取金額,紅包狀態更新為“已領取”;
  5. 異步調用支付接口,將紅包金額更新到錢包里。

3.2 數據庫設計

紅包表 redpack 的字段如下:

  • id: 主鍵,紅包ID
  • userId: 發紅包的用戶ID
  • totalAmount: 總金額
  • surplusAmount: 剩余金額
  • total: 紅包總數
  • surplusTotal: 剩余紅包總數

該表用來記錄用戶發了多少紅包,以及需要維護的剩余金額。

紅包記錄表 redpack_record 如下:

  • id: 主鍵,記錄ID
  • redpackId: 紅包ID,外鍵
  • userId: 用戶ID
  • amount: 搶到的金額

記錄表用來存放用戶具體搶到的紅包信息,也是紅包表的副表。

3.3 發紅包

  1. 用戶設置紅包的總金額和個數后,在紅包表中增加一條數據,開始發紅包;
  2. 為了保證實時性和搶紅包的效率,在 Redis 中增加一條記錄,存儲紅包 ID 和總人數 n;
  3. 搶紅包消息推送給所有群成員。

3.4 搶紅包

從 2015 年起,微信紅包的搶紅包和拆紅包就分離了,用戶點擊搶紅包后需要進行兩次操作。

這也是為什么明明有時候搶到了紅包,點開后卻發現該紅包已經被領取完了。

圖片圖片

搶紅包的交互步驟如下:

  1. 搶紅包:搶操作在 Redis 緩存層完成,通過原子遞減的操作來更新紅包個數,個數遞減為 0 后就說明搶光了。
  2. 拆紅包:拆紅包時,首先會實時計算金額,一般是通過二倍均值法實現(即 0.01 到剩余平均值的 2 倍之間)。
  3. 紅包記錄:用戶獲取紅包金額后,通過數據庫的事務操作累加已經領取的個數和金額,并更新紅包表和記錄表。
  4. 轉賬:為了提升效率,最終的轉賬為異步操作,這也是為什么在春節期間,紅包領取后不能立即在余額中看到的原因。

上述流程,在一般的秒殺活動中隨處可見,但是,紅包系統真的有這么簡單嗎?

當用戶量過大時,高并發下的事務一致性怎么保證,數據分流如何處理,紅包的數額分配又是怎么做的,接下來我們一一探討。

4. 詳細設計

由于是秒殺類設計,以及 money 分發,所以我們重點關注搶紅包時的高并發解決方案和紅包分配算法。

4.1 高并發解決方案

首先,搶紅包系統的用戶量很大,如果幾千萬甚至億萬用戶同時在線發搶紅包,請求直接打到數據庫,必然會導致后端服務過載甚至崩潰。

而在這種業務量下,簡單地對數據庫進行擴容不僅會讓成本消耗劇增,另一方面由于存在磁盤的性能瓶頸,所以大概率解決不了問題。

所以,我們將解決方案集中在 減輕系統壓力、提升響應速度 上,接下來會從緩存、加鎖、異步分治等方案來探討可行性。

1、緩存

和大多數秒殺系統設計相似,由于搶紅包時并發很高,如果直接操作 DB 里的數據表,可能觸發 DB 鎖的邏輯,導致響應不及時。

圖片圖片

所以,我們可以在 DB 落盤之前加一層緩存,先限制住流量,再處理紅包訂單的數據更新。

這樣做的優點是用緩存操作替代了磁盤操作,提升了并發性能,這在一般的小型秒殺活動中非常有效!

但是,隨著微信使用發&搶紅包的用戶量增多,系統壓力增大,各種連鎖反應產生后,數據一致性的問題逐漸暴露出來:

  • 假設庫存減少的內存操作成功,但是 DB 持久化失敗了,會出現紅包少發的問題;
  • 如果庫存操作失敗,DB 持久化成功,又可能會出現紅包超發的問題。

而且在幾十萬的并發下,直接對業務加鎖也是不現實的,即便是樂觀鎖。

2、加鎖

在關系型 DB 里,有兩種并發控制方法:分為樂觀鎖(又叫樂觀并發控制,Optimistic Concurrency Control,縮寫 “OCC”)和悲觀鎖(又叫悲觀并發,Pessimistic Concurrency Control,縮寫“PCC”)。

圖片圖片

悲觀鎖在操作數據時比較悲觀,認為別的事務可能會同時修改數據,所以每次操作數據時會先把數據鎖住,直到操作完成。

樂觀鎖正好相反,這種策略主打一個“信任”的思想,認為事務之間的數據競爭很小,所以在操作數據時不會加鎖,直到所有操作都完成到提交時才去檢查是否有事務更新(通常是通過版本號來判斷),如果沒有則提交,否則進行回滾。

在高并發場景下,由于數據操作的請求很多,所以樂觀鎖的吞吐量更大一些。但是從業務來看,可能會帶來一些額外的問題:

  1. 搶紅包時大量用戶涌入,但只有一個可以成功,其它的都會失敗并給用戶報錯,導致用戶體驗極差;
  2. 搶紅包時,如果第一時間有很多用戶涌入,都失敗回滾了。過一段時間并發減小后,反而讓手慢的用戶搶到了紅包;
  3. 大量無效的更新請求和事務回滾,可能給 DB 造成額外的壓力,拖慢處理性能。

總的來說,樂觀鎖適用于數據競爭小,沖突較少的業務場景,而悲觀鎖也不適用于高并發場景的數據更新。

因此對于搶紅包系統來說,加鎖是非常不適合的。

3、異步分治

綜上所述,搶紅包時不僅要解決高并發問題、還得保障并發的順序性,所以我們考慮從隊列的角度來設計。

我們知道,每次包紅包、發紅包、搶紅包時,也有先后依賴關系,因此我們可以將紅包 ID 作為一個唯一 Key,將發一次紅包看作一個單獨的 set,各個 set 相互獨立處理。

圖片圖片

這樣,我們就把海量的搶紅包系統分成一個個的小型秒殺系統,在調度處理中,通過對紅包 ID 哈希取模,將一個個請求打到多臺服務器上解耦處理。

然后,為了保證每個用戶搶紅包的先后順序,我們把一個紅包相關的操作串行起來,放到一個隊列里面,依次消費。

從上述 set 分流我們可以看出,一臺服務器可能會同時處理多個紅包的操作,所以,為了保證消費者處理 DB 不被高并發打崩,我們還需要在消費隊列時用緩存來限制并發消費數量。

搶紅包業務消費時由于不存儲數據,只是用緩存來控制并發。所以我們可以選用大數據量下性能更好的 Memcached。

除此之外,在數據存儲上,我們可以用紅包 ID 進行哈希分表,用時間維度對 DB 進行冷熱分離,以此來提升單 set 的處理性能。

綜上所述,搶紅包系統在解決高并發問題上采用了 set 分治、串行化隊列、雙維度分庫分表 等方案,使得單組 DB 的并發性能得到了有效提升,在應對數億級用戶請求時取得了良好的效果。

4.2 紅包分配算法

搶紅包后,我們需要進行拆紅包,接下來我們討論一下紅包系統的紅包分配算法。

紅包金額分配時,由于是隨機分配,所以有兩種實現方案:實時拆分和預先生成。

1、實時拆分

實時拆分,指的是在搶紅包時實時計算每個紅包的金額,以實現紅包的拆分過程。

這個對系統性能和拆分算法要求較高,例如拆分過程要一直保證后續待拆分紅包的金額不能為空,不容易做到拆分的紅包金額服從正態分布規律。

2、預先生成

預先生成,指的是在紅包開搶之前已經完成了紅包的金額拆分,搶紅包時只是依次取出拆分好的紅包金額。

這種方式對拆分算法要求較低,可以拆分出隨機性很好的紅包金額,但通常需要結合隊列使用。

3、二倍均值法

綜合上述優缺點考慮,以及微信群聊中的人數不多(目前最高 500 人),所以我們采用實時拆分的方式,用二倍均值法來生成隨機紅包,只滿足隨機即可,不需要正態分布。

故可能出現很大的紅包差額,但這更刺激不是嗎??

使用二倍均值法生成的隨機數,每次隨機金額會在 0.01 ~ 剩余平均值*2 之間。

假設當前紅包剩余金額為 10 元,剩余個數為 5,10/5 = 2,則當前用戶可以搶到的紅包金額為:0.01 ~ 4 元之間。

4、算法優化

用二倍均值法生成的隨機紅包雖然接近平均值,但是在實際場景下:微信紅包金額的隨機性和領取的順序有關系,尤其是金額不高的情況下。

于是,小?耗費 “巨資” 在微信群發了多個紅包,得出了這樣一個結論:如果發出的 紅包總額 = 紅包數*0.01 + 0.01,比如:發了 4 個紅包,總額為 0.05,則最后一個人領取的紅包金額一定是 0.02。

圖片圖片

無一例外:

圖片圖片

所以,紅包金額算法大概率不是隨機分配,而是在派發紅包之前已經做了處理。比如在紅包金額生成前,先生成一個不存在的紅包,這個紅包的總額為 0.01 * 紅包總數。

而在紅包金額分配的時候,會對每個紅包的隨機值基礎上加上 0.01,以此來保證每個紅包的最小值不為 0。

所以,假設用戶發了總額為 0.04 的個數為 3 的紅包時,需要先提取 3*0.01 到 "第四個" 不存在的紅包里面,于是第一個人搶到的紅包隨機值是 0 ~ (0.04-3*0.01)/3。

由于擔心紅包超額,所以除數的商是向下取二位小數,0 ~ (0.04-3*0.01)/3 ==> (0 ~ 0) = 0,再加上之前提取的保底值 0.01,于是前兩個搶到的紅包金額都是 0.01。最后一個紅包的金額為紅包余額,即 0.02。

算法邏輯用 Go 語言實現如下:

import (
   "fmt"
   "math"
   "math/rand"
   "strconv"
)

type RedPack struct {
    SurplusAmount float64 // 剩余金額
     SurplusTotal int // 紅包剩余個數
}

// 取兩位小數
func remainTwoDecimal(num float64) float64 {
    numStr := strconv.FormatFloat(num, 'f', 2, 64)
    num, _ = strconv.ParseFloat(numStr, 64)
    return num
}

// 獲取隨機金額的紅包
func getRandomRedPack(rp *RedPack) float64 {
    if rp.SurplusTotal <= 0 {
        // 該紅包已經被搶完了
        return 0
    }

    if rp.SurplusTotal == 1 {
        return remainTwoDecimal(rp.SurplusAmount + 0.01)
    }

       // 向下取整
    avgAmount := math.Floor(100*(rp.SurplusAmount/float64(rp.SurplusTotal))) / float64(100)
    avgAmount = remainTwoDecimal(avgAmount)

       // 生成隨機數種子
    rand.NewSource(time.Now().UnixNano())

    var max float64
    if avgAmount > 0 {
        max = 2*avgAmount - 0.01
    } else {
        max = 0
    }
    money := remainTwoDecimal(rand.Float64()*(max) + 0.01)

    rp.SurplusTotal -= 1
    rp.SurplusAmount = remainTwoDecimal(rp.SurplusAmount + 0.01 - money)

    return money
}

// 實現主函數
func main() {
    rp := &RedPack{
        SurplusAmount: 0.06,
        SurplusTotal:  5,
    }
    rp.SurplusAmount -= 0.01 * float64(rp.SurplusTotal)
    total := rp.SurplusTotal
    for i := 0; i < total; i++ {
        fmt.Println(getRandomRedPack(rp))
    }
}

打印結果:

0.01、0.01、0.01、0.01、0.02

喜大普奔,符合預期!

5. 總結

設計一個紅包系統不僅要考慮海量用戶的并發體驗和數據一致性,還得保障用戶資金的安全。

這種技術難點,對于傳統的 “秒殺系統” 有過之而無不及。

責任編輯:武曉燕 來源: xin猿意碼
相關推薦

2023-11-08 07:05:07

架構設計群聊系統

2025-03-17 02:00:00

2023-12-29 11:32:27

2025-09-01 07:27:02

2025-09-08 08:25:45

2023-10-08 22:38:52

2023-11-01 18:10:45

架構設計技術

2022-12-25 18:58:53

架構RabbitMQ

2024-03-01 18:55:54

內存調試Go 語言

2024-08-28 08:38:51

2025-05-27 10:15:00

Go開發軟件架構

2021-04-28 08:52:22

高并發架構設高并發系統

2019-08-22 10:54:05

分布式系統架構

2022-05-17 20:37:41

MyPick泛型對象類型

2019-01-28 11:46:53

架構運維技術

2024-04-24 10:38:22

2025-04-29 02:00:00

高并發系統場景

2023-07-05 08:00:52

MetrAuto系統架構

2025-06-10 01:00:00

分布式日志系統

2025-10-28 02:00:00

秒殺系統客戶端并發
點贊
收藏

51CTO技術棧公眾號

日韩欧美一区二区免费| 成人小说亚洲一区二区三区| 头脑特工队2免费完整版在线观看| av中文字幕在线看| 久久精品在线| 午夜精品久久久久久久99水蜜桃| 欧美专区日韩视频| www.com久久久| 日韩电影免费| 在线成人黄色| 91精品麻豆日日躁夜夜躁| 欧美另类视频在线| 国产一级二级毛片| 婷婷激情成人| 国产婷婷色一区二区三区在线| 久久国产加勒比精品无码| 中文字幕无码不卡免费视频| a级片在线免费看| 欧美日韩亚洲在线观看| 亚洲一卡二卡三卡四卡| 91久久在线视频| 一本一本久久a久久| 超碰一区二区| 99精品视频中文字幕| 欧美日韩福利电影| 香蕉视频色在线观看| av网站在线免费播放| 欧美亚洲三级| 亚洲精品一区二区在线| 国产精品国产亚洲精品看不卡| 国产熟女一区二区三区四区| 日韩成人影院| 欧美在线不卡一区| 日本一区二区在线视频| 波多野结衣午夜| 久久爱www成人| 日韩欧美中文在线| 欧美日韩视频在线一区二区观看视频| 国产一区二区三区成人| 永久亚洲成a人片777777| 国产v片在线观看| 国产精品成人av| 欧美精品自拍偷拍| 在线成人性视频| 91 中文字幕| 久久最新视频| 日韩亚洲欧美中文在线| 亚洲精品20p| 黄色免费在线观看网站| 久久国产精品72免费观看| 中文字幕亚洲字幕| 肉色超薄丝袜脚交| 国产探花视频在线观看| 99国产麻豆精品| 国产精品国产三级欧美二区 | 国产一区二区三区网站| 国产视频一区二区视频| 国产精品久久一区二区三区不卡| 丝瓜av网站精品一区二区| 久久人人97超碰精品888| 黄色工厂在线观看| 欧美国产日韩电影| 亚洲婷婷在线视频| 亚洲一区二区三区香蕉| 久久夜靖品2区| 亚洲区小说区图片区qvod按摩| 91国偷自产一区二区开放时间 | 国产精品久久久久久久久久久久久久 | 黄页网站在线| 一区2区3区在线看| 蜜桃导航-精品导航| 最新国产中文字幕| 综合久久亚洲| 激情综合网址| 欧美日韩中文精品| 992tv成人免费观看| 成人精品在线播放| 国产成人在线色| 欧美一区二区三区图| 中文字幕资源站| 国内精品麻豆美女在线播放视频| 色屁屁一区二区| 欧美在线观看视频网站| 992tv国产精品成人影院| 亚洲欧美另类小说| 欧美日韩综合久久| 91在线观看| 亚洲欧美日韩电影| 国产原创中文在线观看 | 欧美一二三视频| 日本黄色一级视频| 午夜精彩国产免费不卡不顿大片| 日韩av网站电影| 成年人网站av| 国产欧美一区二区三区米奇| 精品国产一区二区亚洲人成毛片 | 五月天色一区| 搡老岳熟女国产熟妇| 日韩精品成人一区二区在线| 欧美高清激情视频| 青青草自拍偷拍| 全球av集中精品导航福利| 欧美一级电影网站| mm131亚洲精品| 日韩精品一区二区三区| 香蕉av福利精品导航| 日本三区在线观看| 免费欧美网站| 精品视频在线看| 国产精品无码自拍| 成人污污www网站免费丝瓜| 欧美性大战久久久久久久蜜臀| 日韩a一级欧美一级| 啄木系列成人av电影| 日韩最新中文字幕电影免费看| 国产精品9191| 激情另类综合| 国产精品久久久久久中文字| 日韩一级在线视频| 国产视频一区三区| 538国产精品视频一区二区| 91亚洲欧美激情| 91色九色蝌蚪| 久久免费看av| 天堂av网在线| 亚洲精品欧美激情| 九一精品在线观看| 黄色精品视频网站| 欧美日韩欧美一区二区| 香港日本韩国三级网站| 久久久久毛片| 亚洲欧美日韩国产中文专区| 亚洲国产av一区| 国产伦精品一区二区三区视频| 国产午夜精品免费一区二区三区 | 亚洲成av人片在www色猫咪| 中文字幕第17页| 国产成人调教视频在线观看| 久久久久在线观看| 国产模特av私拍大尺度| 国产精品久久久久天堂| 亚洲国产精品综合| 麻豆网站在线看| 一区二区视频免费在线观看| 国产美女永久无遮挡| 人人澡人人添人人爽一区二区| 亚洲一区二区黄色| 国产xxxxhd| 888久久久| 国语自产精品视频在线看| 国产情侣一区二区| 日韩美女视频一区二区 | 天堂中文а√在线| 亚洲激情图片一区| 99视频在线观看视频| 888久久久| av激情久久| 欧美孕妇性xxxⅹ精品hd| 欧美日韩国产精品| 中文字幕国产免费| 不卡中文字幕| 国内精品久久久久久| 亚洲国产欧美另类| 国产亚洲一区二区三区四区| 超碰97人人射妻| 亚洲精品三区| 日韩精品高清在线观看| 天天操天天爽天天干| 91丨九色丨黑人外教| 国产主播在线看| 国产一区二区三区亚洲综合 | 成人做爰69片免网站| 欧美69视频| 国产精品18毛片一区二区| 天堂а√在线8种子蜜桃视频| 粉嫩av一区二区三区免费野| 性少妇bbw张开| 欧美日一区二区三区在线观看国产免| 国产91色在线免费| 亚洲伦理在线观看| 亚洲va欧美va天堂v国产综合| 国产一级伦理片| 91精品在线观看国产| 亚洲永久免费观看| 超碰在线视屏| 欧美一区永久视频免费观看| 97超碰在线免费观看| 亚洲欧美文学| 国产日韩精品一区观看| 精品176二区| 精品久久久久久综合日本欧美| 天堂av网手机版| 国产精品一区不卡| 亚洲精品乱码久久久久久蜜桃91 | 91久久伊人青青碰碰婷婷| 久草在线免费福利资源| 亚洲电影在线播放| 五月天六月丁香| 亚洲另类视频| 成人黄视频免费| 国产精品专区免费| 蜜臀久久99精品久久久久久宅男| 日本高清视频免费看| 一区二区三区四区不卡在线| 亚洲狠狠婷婷综合久久久久图片| 免费黄网站欧美| 五月天亚洲综合小说网| 岛国成人av| 国产精品一区二区久久久| 狠狠色伊人亚洲综合网站l| 欧美一区二区三区免费观看视频| 啦啦啦免费高清视频在线观看| 成人综合婷婷国产精品久久蜜臀 | 成人av国产| 147欧美人体大胆444| rebdb初裸写真在线观看| 国产亚洲精品久久久| 蜜桃91麻豆精品一二三区| 欧洲精品中文字幕| 另类小说色综合| 黄色成人av网站| 成人资源av| 99久久久国产精品免费调教网站| 欧美激情一级精品国产| 精品黑人一区二区三区在线观看| 亚洲视频资源在线| 欧美熟妇一区二区| 国产91高潮流白浆在线麻豆| 日本免费a视频| 欧美激情777| 91亚洲va在线va天堂va国| 自拍网站在线观看| 亚洲欧洲xxxx| 成年人视频免费| 亚洲超碰97人人做人人爱| 老熟妻内射精品一区| 国产老女人精品毛片久久| 亚洲色图久久久| 国产一区二区你懂的| 精品一二三四五区| 国产一区二区三区自拍| 亚洲第一综合网站| 五月天综合网站| 亚洲精品一品区二品区三品区| 综合亚洲自拍| 久久综合狠狠综合久久综青草| 国产香蕉精品| 国产精品国色综合久久| 视频国产精品| 欧美在线视频导航| 国产免费拔擦拔擦8x在线播放| 九九热99久久久国产盗摄| 成人欧美在线| 日韩激情视频在线| 男人天堂网在线视频| 欧美mv日韩mv| 蜜臀av午夜精品| 亚洲成**性毛茸茸| 欧美天堂在线视频| 亚洲精品短视频| 一区二区视频网站| 亚洲综合网站在线观看| 久草视频在线资源| 国产视频一区不卡| 久久久视频6r| 国产精品欧美综合在线| 国产麻豆a毛片| 亚洲色图.com| 久久久久噜噜噜亚洲熟女综合| 一区二区三区在线观看动漫| 久久久久久久久久久久久久久久久| 亚洲影视在线观看| 五月婷婷激情网| 色天使色偷偷av一区二区| 做爰无遮挡三级| 5566中文字幕一区二区电影| www.av在线.com| 日韩高清免费观看| 亚洲成a人v欧美综合天堂麻豆| 久久久精品一区二区| 美女毛片在线看| 精品国产一区二区三区久久久蜜月| 免费观看a视频| 亚洲欧洲免费视频| 成人日韩欧美| 97在线视频免费| 欧美18一19xxx性| 欧美激情成人在线视频| 五月天av在线| 国产在线观看精品| 国产成人免费9x9x人网站视频| 成人h片在线播放免费网站| 亚洲最大网站| 国产精品亚洲网站| 中文字幕久久精品一区二区| 国产一区私人高清影院| 中文字幕一区日韩精品| 久久久久久99| 五月久久久综合一区二区小说| 精品国产av无码一区二区三区| 亚洲精品久久| 久久国产成人精品国产成人亚洲| 人人狠狠综合久久亚洲| 可以在线看的黄色网址| 精品在线观看视频| 国产肉体xxxx裸体784大胆| 国产精品日韩成人| 日本五十路女优| 亚洲午夜免费电影| 中文在线最新版天堂| 精品国产污网站| 在线激情小视频| 欧美性在线观看| 久久久久久亚洲精品美女| 日韩电影免费观看高清完整| 欧美极品在线观看| 色婷婷777777仙踪林| 综合激情视频| 99草草国产熟女视频在线| 丰满岳乱妇一区二区三区| 蜜桃av免费观看| 日韩欧美在线网址| 亚洲经典一区二区| 久久精品久久久久久| 人人鲁人人莫人人爱精品| 国产精品第一区| 国产一级成人av| 久久久国内精品| 亚洲国产高清一区| 国产女同无遮挡互慰高潮91| 久久久久免费观看| 国产真实乱人偷精品人妻| 亚洲一区二区精品久久av| 国产熟女一区二区三区四区| 中文字幕一区日韩电影| 国产v综合v| 精品免费国产| 亚洲精品一级二级三级| 成年人看的毛片| 国产成人综合在线播放| 天堂网avav| 亚洲一区二区四区蜜桃| 国产美女www爽爽爽视频| 这里只有精品视频| 美女网站视频一区| 日本一区二区在线视频观看| 老色鬼久久亚洲一区二区| 亚洲欧美色图视频| 精品久久久久久久久久国产| 免费观看日批视频| 日韩精品一区二区三区第95| 成人免费网站观看| 精品国产免费久久久久久尖叫 | 欧美黑人在线观看| 国产福利精品导航| 久久久一区二区三区四区| 日韩免费福利电影在线观看| 视频在线这里都是精品| 538国产精品视频一区二区| 噜噜噜狠狠夜夜躁精品仙踪林| 少妇精品久久久久久久久久| 首页欧美精品中文字幕| 成人在线观看免费高清| 欧美日韩小视频| 免费在线毛片网站| 91在线色戒在线| 亚洲欧美综合| 丰满大乳奶做爰ⅹxx视频| 一道本成人在线| 国产激情视频在线播放| 九色成人免费视频| 欧美黑人巨大videos精品| 亚洲乱码中文字幕久久孕妇黑人| 久久久久久久久久看片| 乱子伦一区二区三区| 俺去了亚洲欧美日韩| 天堂av一区| 欧美三级一级片| 久久精品日产第一区二区三区高清版 | 亚洲精品免费一区亚洲精品免费精品一区 | 亚洲中国色老太| 最新国产乱人伦偷精品免费网站| 国内精品久久99人妻无码| 欧美天堂一区二区三区| 黄av在线播放| 久久99精品久久久久子伦 | 国产97在线播放| 天天精品视频| 国产69视频在线观看| 国产精品福利一区| 亚洲 日本 欧美 中文幕| 中文字幕欧美日韩| 亚洲国产精品免费视频| www国产黄色| 亚洲视频在线观看一区| 亚洲欧美丝袜中文综合| 久久久久日韩精品久久久男男| 久久av综合| 中文在线字幕观看| 欧美制服丝袜第一页|