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

嗶哩嗶哩直播通用獎勵系統(tǒng)揭秘

開發(fā) 架構(gòu)
通用獎勵系統(tǒng)的設(shè)計需要從分別從需求側(cè)和供給側(cè)兩個方向入手:一是發(fā)放場景接入,二是獎品類型接入,獎勵系統(tǒng)為二者制訂了接入標(biāo)準(zhǔn),方便進行后續(xù)的擴展維護。

背景

B站直播平臺近年來迅猛發(fā)展,為了吸引更多觀眾和優(yōu)質(zhì)主播,直播平臺通常會推出多樣玩法(包括節(jié)日活動、任務(wù)、榜單、抽獎),以激勵用戶參與和創(chuàng)造高質(zhì)量內(nèi)容,拉動平臺營收,豐富直播生態(tài)。諸多玩法都存在一個共同的場景:給用戶發(fā)放獎勵。為了滿足獎品種類以及發(fā)放場景的多樣性,我們設(shè)計了通用獎勵系統(tǒng),用于支撐各類上層業(yè)務(wù)。本文將介紹直播獎勵系統(tǒng)的技術(shù)架構(gòu),從需求分析到實現(xiàn)細節(jié),全面解析其背后的技術(shù)方案。

圖片圖片

需求分析

通用獎勵系統(tǒng)的設(shè)計需要從分別從需求側(cè)和供給側(cè)兩個方向入手:一是發(fā)放場景接入,二是獎品類型接入,獎勵系統(tǒng)為二者制訂了接入標(biāo)準(zhǔn),方便進行后續(xù)的擴展維護。

圖片圖片

從業(yè)務(wù)接入來看,獎勵系統(tǒng)需要滿足各類上游場景的發(fā)放,如:榜單截榜后發(fā)獎、任務(wù)完成發(fā)獎、抽獎發(fā)獎、競猜開獎發(fā)獎等諸多場景,因此接入方式既要足夠標(biāo)準(zhǔn)化又要兼容差異化。

從獎品類型來看,獎勵存在多樣性,既包含頭像框、頭銜、房間皮膚等權(quán)益類獎品,又包含電池、金倉鼠、包裹道具等價值類獎品,不同的獎品各自所需的配置屬性不同,由不同的下游發(fā)放,且每個下游吞吐能力也不一致,獎勵系統(tǒng)在處理獎勵發(fā)放時需要分別設(shè)置不同的發(fā)放限流閾值以防止擊垮下游。

從發(fā)放時效來看,業(yè)務(wù)能級有高低之分,高能級的業(yè)務(wù)場景發(fā)放延遲會造成用戶體驗下降,甚至?xí)l(fā)客訴輿情,因此需要有獨立的發(fā)放通道專門用于保障高優(yōu)業(yè)務(wù)。

最后作為一個值得被信任的獎勵系統(tǒng),一定要滿足這三個特點:低延遲、不超發(fā)、不漏發(fā)。

架構(gòu)介紹

基于獎勵上游業(yè)務(wù)方多、峰值流量高、穩(wěn)定性要求高的特點,為求高峰值流量下獎勵系統(tǒng)的穩(wěn)定可靠,方案選型時選擇了基于消息隊列削峰、異步處理請求的總體方案。以下是獎勵系統(tǒng)整體架構(gòu)圖:

圖片圖片

系統(tǒng)架構(gòu)包括:

  • 接入層:負責(zé)制定業(yè)務(wù)接入標(biāo)準(zhǔn),提供業(yè)務(wù)源注冊、獎勵發(fā)放、回收、獎品佩戴、取消佩戴等功能;
  • 配置層:按照業(yè)務(wù)所需配置各類獎勵包裹,如:排行榜發(fā)獎、主播任務(wù)發(fā)獎、獎池抽獎發(fā)獎,同時還負責(zé)新獎勵類型的配置接入;
  • 服務(wù)層:處理接入層的獎勵請求,拆分包裹,記錄發(fā)放狀態(tài),管理發(fā)獎二級隊列,調(diào)度不同的獎品下游進行獎勵發(fā)放;
  • 存儲層:架構(gòu)中依賴的存儲方案
  • databus 作為MQ提升吞吐量
  • mysql負責(zé)存儲基本配置、獎品和包裹的映射關(guān)系以及發(fā)放記錄
  • taishanKV存儲獎品擴展配置
  • redis 負責(zé)提供二級隊列、延遲重試隊列
  • hdfs 存儲獎勵配置和發(fā)放記錄離線數(shù)據(jù),提供分析、篩查等功能
  • 離線層:數(shù)平oneservice數(shù)據(jù)檢索、掃描異常發(fā)放記錄狀態(tài)補發(fā)獎勵、系統(tǒng)日志、相關(guān)數(shù)據(jù)埋點

詳細設(shè)計

發(fā)獎流程按照:業(yè)務(wù)上游 → 一級隊列 → 二級隊列 → 發(fā)放下游 四個模塊串行,簡單直觀,業(yè)務(wù)方僅需配置獎勵,再調(diào)用接口投遞發(fā)獎消息即可,非常便捷,串行流程如下圖所示:

圖片

針對需求中的三個特點系統(tǒng)分別進行了如下設(shè)計:

  • 低延遲:提供不同通道的隔離發(fā)放,針對高優(yōu)業(yè)務(wù)可選擇Fast通道,防止發(fā)放量過大的低優(yōu)業(yè)務(wù)影響高優(yōu)業(yè)務(wù)的發(fā)獎時長;
  • 不超發(fā):獎勵中心設(shè)計了全鏈路冪等,上游消息攜帶 source + msg_id,中間寫庫設(shè)置DB唯一鍵防止重復(fù)消費,下游提供支持冪等的發(fā)放接口,確保獎勵無論怎么重試都不會被超發(fā);
  • 不漏發(fā):層層重試,因獎勵系統(tǒng)存在多重異步,針對每一步都設(shè)置相應(yīng)的重試策略,避免中途鏈路中斷產(chǎn)生漏發(fā)。

古希臘哲學(xué)家赫拉克利特曾說過:"The only constant is change.",意思就是:唯一不變的是變化。這句話提醒我們要接受變化和不確定性,并在這種情況下保持適應(yīng)能力,設(shè)計系統(tǒng)也是如此,外部的變量太多,不能僅僅停留在理想狀態(tài)思考問題,因此獎勵系統(tǒng)在容錯上做了不少細節(jié)設(shè)計:

1.快慢隊列

某天凌晨收到大量客訴,反饋直播獎勵到賬延遲,排查下來是運營上了一個用戶觀看直播10min獲得抽獎券的任務(wù),0點10分過后,大量的發(fā)獎消息涌入隊列,當(dāng)時獎勵系統(tǒng)沒做消息隔離,造成高優(yōu)業(yè)務(wù)的發(fā)獎消息消費延遲。

圖片圖片

圖片圖片

直播按業(yè)務(wù)能級可以劃分高優(yōu)和低優(yōu)兩類業(yè)務(wù),一般低優(yōu)類業(yè)務(wù)因門檻較低所以獎勵發(fā)放量比較大,如:用戶觀看直播獲得抽獎券。而高優(yōu)類業(yè)務(wù)往往獎勵發(fā)放量比較少,如:用戶消費電池參與活動獲得獎勵。不同的是這兩類業(yè)務(wù)各自對發(fā)放時效的敏感度,低優(yōu)業(yè)務(wù)對時效不敏感,可接受延遲發(fā)放;高優(yōu)業(yè)務(wù)時效敏感,獎勵延遲到賬易導(dǎo)致用戶體驗降低,甚至帶來客訴。

獎勵系統(tǒng)提供了讓業(yè)務(wù)自主選擇快慢通道的能力,上游可根據(jù)業(yè)務(wù)是否容忍延遲來選擇快慢通道,可滿足不同場景下的業(yè)務(wù)需求。

2.冪等

一級消息處理器接到消息后首先獲取獎勵包裹子獎勵,如果這一步出現(xiàn)異常,會直接返回消息重試信號,等待消費者重試。

接著將包裹中包含的所有獎勵進行封裝,再按 uid%64 進行分庫寫表,這里會通過DB組合唯一鍵 souce + msgId + awardTypeId + awardId + uid 實現(xiàn)發(fā)獎冪等判斷,如果已經(jīng)存在發(fā)獎記錄則跳過本次寫入,之后再根據(jù)快慢隊列各自的發(fā)獎鏈路進行二級隊列轉(zhuǎn)投,防止因某個下游發(fā)獎處理過慢導(dǎo)致整體消費吞吐量下滑造成的消息積壓。

慢通道消息會按照獎品類型進行隊列分配,一種獎品類型分到一組redis list隊列,具體隊列key的數(shù)量由初始化配置決定,而快隊列則是選擇databus,直接分成三個不同等級隊列,這么選擇的原因主要有以下兩點:

  • 快通道對獎勵可達性和時效性要求較高,因此選用高可用的MQ作為承載方式,但使用MQ需要單獨申請producer和consumer,這在運維部署上面增加了成本,因此只申請了高、中、低三個二級隊列,避免了每次新增獎品類型都需要單獨部署資源,針對不同的獎品類型會按照配置進行隊列分配,比如涉及金錢的獎品類型會放入Fast隊列,優(yōu)先保障;一些已知的慢下游會主動配置放到Slow隊列,避免拖慢整個發(fā)放隊列,其他的獎品類型默認進入Default隊列;
  • 慢通道對獎勵的時效性要求較低,redis list 不會增加運維負擔(dān),對于應(yīng)用來說只是從邏輯上劃分了多個隊列,非常便于擴充新獎品類型,但redis的可用性比起MQ稍顯不足,一旦出現(xiàn)意外情況可能會丟失數(shù)據(jù),因此需要有離線補償?shù)氖侄危@會犧牲獎勵發(fā)放的時效性,因此僅針對慢通道的獎勵采用這種模式。

3.可重試

二級隊列消費者隨時監(jiān)聽二級隊列消息,收到發(fā)獎消息后根據(jù)不同的獎品類型進行下游發(fā)放交互,拿到結(jié)果后更新DB狀態(tài)(如果失敗則會累計重試發(fā)放次數(shù)),更新產(chǎn)生的binlog會被canal監(jiān)聽,如果遇到發(fā)放異常需要重試的情況會將消息寫入三級隊列,此隊列主要用于獎勵重試,基于 redis zset 結(jié)構(gòu)設(shè)計的延遲隊列進行指數(shù)退避重試發(fā)獎,按照 2^0s → 2^1s → 2^2s → ... → 2^12s,自動重試13次,大概在2小時左右,如果還未恢復(fù),則判定為下游不可用,不再重試發(fā)獎等待人工介入。

圖片圖片

4.離線補償

只要發(fā)獎記錄落表成功,無論如何都需要走到最終的發(fā)獎,因此我們專門為此設(shè)計了離線補償方案,通過job定時撈取離線庫未發(fā)放完成的狀態(tài)記錄進行重試發(fā)放,如此可保證在最壞情況下的兜底,最大程度保證獎勵的可達性。

5.業(yè)務(wù)接入

為了降低上游接入成本,獎勵中心設(shè)計了一套易于理解且接入簡單的消息格式,同時支持面向未來擴展,消息格式如下:

MQ消息體
{
    "source":"(int64)業(yè)務(wù)來源,由獎勵中心頒發(fā)",
    "msg_id":"(string)消息id,同一個投遞來源下的消息id需要保證唯一",
    "uids":"([]int64)發(fā)獎勵的目標(biāo)uid,支持單條消息給多人發(fā)獎",
    "package_id":"(string)獎勵包裹ID,內(nèi)部封裝了多個子獎勵",
    "msg_time":"(int64)業(yè)務(wù)方時間戳,默認不傳用下游接收到的時間處理",
    "extra_data":"(string)擴展字段,json格式,用于面向擴展",
    "business_type":"(string)業(yè)務(wù)類型,統(tǒng)計使用",
    "business_id":"(string)業(yè)務(wù)ID,統(tǒng)計使用",
    "expire_time":"(int64)動態(tài)過期時間戳,此時間會覆蓋package內(nèi)配置的過期時間"
}
  
extra_data 格式:
{
    "lottery":{
        "count":"(int64)發(fā)放包裹數(shù)量,在已有包裹獎勵配置的數(shù)量上再*count得到最終發(fā)放數(shù)量"
    },
    "send_gold_seeds_package":{
        "room_id":"(int64)送出的直播間id",
        "ruid":"(int64)送出的主播ID"
    }
}

以上消息基本滿足語義:給xx用戶發(fā)放xx獎勵,易于理解,消息體內(nèi)已經(jīng)約定了冪等鍵,按照 source + msg_id 組成聯(lián)合冪等鍵,防止超發(fā),此外還支持了 extra_data 用于針對一些特定場景,比如動態(tài)數(shù)量、動態(tài)直播間等場景,如果未來有擴展需求可基于此持續(xù)迭代。

6.獎勵配置

上面的發(fā)放條件內(nèi)包含package_id,代指獎勵包裹,其內(nèi)部封裝了我們發(fā)獎所需要的所有獎品參數(shù),通過可視化面板進行獎品配置:

圖片圖片

獎品配置主要分為4個部分:

  • 包裹ID :通過編輯不同的編號產(chǎn)生不一樣的包裹ID,如果想把多個獎品放入同一個包裹可以給它們設(shè)置相同的編號;
  • 基本屬性:選擇獎勵類型,再根據(jù)類型對應(yīng)的屬性分別配置獎勵I(lǐng)D、數(shù)量、有效期,不同的類型屬性不同,取決于服務(wù)端下發(fā);
  • 擴展屬性:不同的獎品類型附帶的發(fā)獎參數(shù)也不相同,擴展屬性根據(jù)獎勵類型進行附加,以便在發(fā)放時作為參數(shù)攜帶;
  • 顯示配置:用于C端展示;

針對上述結(jié)構(gòu),我們抽象出獎勵的基本結(jié)構(gòu)體如下:

// AwardType 獎品類型
type AwardType struct {
    // 類型ID
    TypeId int64 `json:"type_id"`
    // 類型名
    TypeName string `json:"type_name"`
    // 對C端展示類型名(為空則展示 TypeName)
    ShowTypeName string `json:"show_type_name"`
    // 類型值(用于標(biāo)記擴展字段)
    TypeVal string `json:"type_val"`
    // 獎勵I(lǐng)D控件類型 none:無 select:下拉 input:輸入
    AwardIdControl string `json:"award_id_control"`
    // 獎品是否存在數(shù)量配置 0:否 1:是
    IsNum int64 `json:"is_num"`
    // 是否存在有效期配置 0:否 1:是
    IsTime int64 `json:"is_time"`
    // 有效期配置
    TimeConfigData []*AwardTypeTime `json:"time_config_data"`
    // 擴展屬性控件配置
    ExtendPropControl []*ExtendPropControlItem `json:"extend_prop_control"`
}
  
// SelectItem 擴展屬性下拉數(shù)據(jù)選項
type SelectItem struct {
    Id   string `json:"id"`
    Name string `json:"name"`
}
  
// ExtendPropControlItem 擴展屬性
type ExtendPropControlItem struct {
    // 屬性名
    PropName string `json:"prop_name"`
    // 顯示表頭名
    ColumnName string `json:"column_name"`
    // 控件類型 switch、input、select
    PropControl string `json:"prop_control"`
    // 控件下拉數(shù)據(jù),僅限控件類型為 select 會用到
    PropSelectData []*SelectItem `json:"prop_select_data"`
}
  
// AwardTypeTime 獎品有效期配置
type AwardTypeTime struct {
    // 有效期類型id
    TimeType int64 `json:"time_type"`
    // 有效期類型說明
    TimeTypeDesc string `json:"time_type_desc"`
    // 有效期值控件 (none:無 datepicker:日期選擇框 input:文本框)
    TimeValControl string `json:"time_val_control"`
    // 有效期單位控件 (none:無 select:下拉框)
    TimeUnitControl string `json:"time_unit_control"`
    // 有效期單位數(shù)據(jù)
    TimeUnitData []*SelectItem `json:"time_unit_data"`
}

服務(wù)端可以通過接口告知配置后臺應(yīng)該如何渲染配置面板,從而在新增獎品類型的時候無需后臺介入開發(fā),提升生產(chǎn)效率。

7.新獎品類型接入

作為一個通用的獎勵系統(tǒng),快捷高效地接入新的獎品類型應(yīng)該放在首要位置考慮,系統(tǒng)設(shè)計了標(biāo)準(zhǔn)的獎勵發(fā)放和回收接口,用于實現(xiàn)快速接入新類型能力,如圖所示:

圖片圖片

AwardTypeFunc為獎勵接口,AwardTypeDefaultFunc 為默認實現(xiàn),下面繼承自AwardTypeDefaultFunc的各個struct為具體獎勵,在這里真正實現(xiàn)下游接口的調(diào)用。

獎勵發(fā)放接口拿到上游獎勵包裹配置數(shù)據(jù)和發(fā)放消息參數(shù)后,先進行參數(shù)驗證,計算獎勵的過期時間,調(diào)用下游接口進行獎勵發(fā)放,由于下游接口實現(xiàn)標(biāo)準(zhǔn)各不統(tǒng)一,如不支持批量用戶發(fā)放,還需要獎勵自身做一層適配轉(zhuǎn)換,最終給到上游結(jié)果,結(jié)果返回發(fā)放成功的用戶ID、發(fā)放失敗的用戶ID、需要重試的用戶ID以及失敗的具體錯誤明細,上游再根據(jù)返回值做對應(yīng)的流程操作。

8.數(shù)據(jù)監(jiān)控

系統(tǒng)目前做了獎勵發(fā)放記錄相關(guān)的埋點,可以觀測到一段時間范圍內(nèi)各個獎品類型的發(fā)放情況,通過監(jiān)控可分析出單品斜率過高的獎勵,從而針對治理(提速、隔離、限速)。

圖片圖片

未來規(guī)劃

獎勵系統(tǒng)經(jīng)過多次迭代逐步演化成如今的多層次架構(gòu),未來還需要在以下幾個方向分別進行建設(shè):

  1. 獎勵配置復(fù)雜度過高導(dǎo)致配置準(zhǔn)確性無法保障,需要接入配置自檢能力,盡早檢測出配置問題,避免線上事故;
  2. 系統(tǒng)的監(jiān)控粒度覆蓋不夠全面,如:獎勵發(fā)放異常監(jiān)控、上游發(fā)放來源監(jiān)控、各個隊列的生產(chǎn)消費情況監(jiān)控;
  3. 測試環(huán)境自動化回歸。
責(zé)任編輯:武曉燕 來源: 嗶哩嗶哩技術(shù)
相關(guān)推薦

2019-04-24 09:48:54

2022-12-13 07:32:46

2023-07-04 07:11:30

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

2015-10-30 17:48:55

2023-04-26 00:59:49

嗶哩嗶哩工程優(yōu)化

2022-11-30 10:33:03

直播技術(shù)

2021-06-04 14:56:36

App青少年模式未成年人

2022-04-08 14:21:56

App個性化推薦算法推薦管理

2020-04-26 19:57:08

天翼云

2021-08-21 14:30:58

機器學(xué)習(xí)bilibili股價

2021-08-23 11:15:20

Python機器學(xué)習(xí)bilibili
點贊
收藏

51CTO技術(shù)棧公眾號

国产又粗又长又黄| 好男人香蕉影院| 九色porny在线| 国产精品一卡二卡在线观看| 久久久亚洲国产| 欧美xxxxx精品| 视频在线日韩| 一区二区三区免费看视频| 好吊色欧美一区二区三区视频| 亚洲欧美日韩激情| 一区二区电影| 亚洲色图35p| 中国老熟女重囗味hdxx| 欧美magnet| 尤物av一区二区| 色狠狠久久av五月综合|| 亚洲精品一区二区三区蜜桃| 久久久久综合| 国语自产在线不卡| 激情无码人妻又粗又大| 乱中年女人伦av一区二区| 欧美日韩免费在线视频| 精品国产一二三四区| h片在线免费观看| 国产午夜亚洲精品理论片色戒| 5566中文字幕一区二区| 亚洲 日本 欧美 中文幕| 国产精品mv在线观看| 最近日韩中文字幕中文| 中文字幕日韩三级片| 免费看日产一区二区三区| 色综合天天天天做夜夜夜夜做| 中文字幕在线乱| 国产精品一级伦理| 91免费视频大全| 国产精品视频500部| 91theporn国产在线观看| 久久中文在线| 97在线免费观看视频| 精品爆乳一区二区三区无码av| 日韩在线精品| 伊人久久男人天堂| 国产成人无码精品久久二区三| 激情小说一区| 亚洲电影免费观看高清完整版在线| 亚洲av无日韩毛片久久| 成人国产激情在线| 欧美一a一片一级一片| 丝袜老师办公室里做好紧好爽| 丰满诱人av在线播放| 亚洲黄一区二区三区| 看一级黄色录像| 黄色在线播放网站| 亚洲天堂a在线| 26uuu成人| 黄色片免费在线观看| 自拍偷拍国产亚洲| 最新黄色av网站| 国产激情在线观看| 亚洲精品中文在线影院| 蜜臀av性久久久久蜜臀av| 成人影院在线观看| 一区二区三区免费观看| 日本一本中文字幕| av在线播放资源| 欧美日韩国产精品专区| 午夜肉伦伦影院| 欧美gay囗交囗交| 欧美日韩一本到| 日本美女视频一区| 国产剧情一区二区在线观看| 日韩视频中午一区| 秘密基地免费观看完整版中文| 超碰成人福利| 精品偷拍一区二区三区在线看| 日本xxx在线播放| 国产最新精品| 精品国产依人香蕉在线精品| 五月天丁香激情| 在线成人av| 日本道色综合久久影院| 羞羞色院91蜜桃| 国产精品自拍毛片| 国产一区在线观| 超碰在线国产| 亚洲欧美日韩精品久久久久| 久久久亚洲国产精品| 亚洲最大网站| 9191久久久久久久久久久| 深夜视频在线观看| 宅男在线一区| 久久精品久久久久电影| 国产精品第一页在线观看| 美女国产精品| 91高跟黑色丝袜呻吟在线观看| 欧美一级淫片免费视频魅影视频| 国产日韩欧美综合在线| 青青视频免费在线观看| 一区二区三区四区日本视频| 在线成人av网站| 欧洲一级黄色片| 久久亚洲成人| 18性欧美xxxⅹ性满足| 一区二区视频网站| 99免费精品在线观看| 亚洲欧美一区二区原创| 国精一区二区三区| 精品视频一区 二区 三区| 国产在线不卡av| 久久影院一区| 日本亚洲欧美成人| 老司机午夜福利视频| 中文字幕一区二区三区蜜月| 成人毛片一区二区| 欧美国产亚洲精品| 原创国产精品91| av大片免费在线观看| 久久99国产精品久久| 免费一区二区三区| 成人性生交大片免费看在线播放| 精品视频999| 丰满少妇一区二区| 亚洲精品日本| 91传媒在线免费观看| 午夜在线观看视频| 日本道精品一区二区三区| 国产国语老龄妇女a片| 99精品美女| 国产精品夫妻激情| 亚洲色图狠狠干| 亚洲一区免费在线观看| 成人性生交视频免费观看| 国产亚洲欧美日韩在线观看一区二区 | 国产精品私人自拍| 欧美日韩二三区| 国产精品久久久网站| 欧美成人中文字幕| 99久久免费国产精精品| 中文字幕亚洲不卡| 激情 小说 亚洲 图片: 伦| 你懂的视频欧美| 2019中文字幕在线观看| 色婷婷视频在线| 亚洲精品国产a久久久久久| 亚洲制服中文字幕| 午夜久久免费观看| 成人羞羞国产免费| 国产日产一区二区三区| 在线综合视频播放| 波多野结衣家庭教师| 国产老妇另类xxxxx| 日本福利视频导航| 中文成人在线| 欧美精品一二区| 超碰免费在线97| 亚洲午夜精品17c| 日韩少妇一区二区| 亚洲影视在线| 日韩av一区二区三区在线观看| 午夜无码国产理论在线| 在线观看国产精品91| 最近中文字幕在线观看| 中文字幕亚洲在| 亚洲av毛片在线观看| 伊人精品在线| 免费成人深夜夜行视频| 无人区在线高清完整免费版 一区二| 亚洲人成77777在线观看网| 亚洲大尺度在线观看| 国产精品久久久久久福利一牛影视 | 日韩精品最新网址| 日本三级欧美三级| 久久久国产精品不卡| 天天操天天爱天天爽| 婷婷伊人综合| 国产区一区二区三区| 大胆人体一区二区| 三级精品视频久久久久| 性中国古装videossex| 欧美日韩国产色视频| 懂色av粉嫩av浪潮av| 国产精品亚洲第一| 国产91在线视频观看| 欧美日韩伦理在线免费| 91亚洲人电影| 神马久久午夜| 精品国产区一区二区三区在线观看| www.超碰在线.com| 色先锋aa成人| 国产成人无码aa精品一区| 97久久人人超碰| 亚洲另类第一页| 亚洲伦理精品| 免费观看黄色的网站| 欧美日韩大片免费观看| 成人av在线天堂| 麻豆蜜桃在线观看| 久久亚洲成人精品| 欧美亚洲视频在线看网址| 天天操天天爽天天干| 国产拍欧美日韩视频二区| 国产传媒免费观看| 夜夜爽av福利精品导航| 亚洲在线视频一区二区| 精品国产导航| 91精品久久久久久久久久久久久久| 91视频欧美| 久久国内精品一国内精品| 神马精品久久| 日韩午夜小视频| 自拍偷拍精品视频| 欧美日韩国产精品专区| www欧美com| 国产偷国产偷精品高清尤物| 亚洲v在线观看| 麻豆精品一区二区三区| 久久网站免费视频| 欧美二区视频| 亚洲激情电影在线| 中日韩免视频上线全都免费| 91免费版网站在线观看| 日韩城人网站| 国产精品成人免费视频| 欧美裸体视频| 欧美国产日韩xxxxx| 麻豆视频在线观看免费| 国产一区二区三区日韩欧美| 色播色播色播色播色播在线| 欧美成人欧美edvon| 国产免费无遮挡| 欧美日免费三级在线| 加勒比在线一区| 欧美视频在线视频| 在线观看精品国产| 亚洲福利电影网| 久草视频中文在线| 亚洲激情男女视频| www.99re7| 亚洲黄色av一区| 三级影片在线看| 亚洲人成小说网站色在线| 蜜桃视频最新网址| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 神马久久午夜| 奇米影视亚洲狠狠色| av电影免费在线看| 午夜精品一区二区三区在线视频| 青青在线视频| 久久久在线视频| 国产理论在线| 国产69久久精品成人看| 在线男人天堂| 日本精品一区二区三区在线| 日韩毛片免费观看| 日韩免费观看视频| 国产69精品久久久久9999人| 国产精品露脸自拍| 日韩电影精品| 91九色极品视频| av动漫精品一区二区| 国产一区二区在线网站| 色先锋久久影院av| 日韩色妇久久av| 久久网站免费观看| 日韩一级免费看| 黑丝一区二区三区| 18禁免费观看网站| 日韩av电影天堂| 玖玖爱视频在线| 国产成人午夜高潮毛片| 国产原创剧情av| 久久先锋影音av鲁色资源| 亚洲а∨天堂久久精品2021| 亚洲三级在线免费观看| 国产一级片久久| 欧美小视频在线| 中文字幕在线观看欧美| 欧美一区二区播放| 色就是色亚洲色图| 久久亚洲精品视频| 波多野结衣在线高清| 日韩免费高清在线观看| 精品中文视频| 久久婷婷开心| 香蕉综合视频| 欧美 日韩 国产在线观看| 日韩精品91亚洲二区在线观看 | 你真棒插曲来救救我在线观看| 欧美专区在线| 手机av在线网站| 久久久久久久久久久久久夜| 男女全黄做爰文章| 欧美日韩亚洲成人| 国产巨乳在线观看| 日韩极品精品视频免费观看| 午夜国产福利在线| 4438全国成人免费| 国产精品2区| 日韩动漫在线观看| 国内一区二区三区| www.com黄色片| 99国产精品国产精品久久| 黄色一级片一级片| 欧美日韩国产一区在线| 国产精品天天操| 国产亚洲欧美另类中文| 国产盗摄精品一区二区酒店| 国产精品一区二区三区久久久 | 日韩大片免费观看视频播放| 国产黄色在线网站| 国产精品99久久久久久白浆小说 | 亚洲女人毛片| 亚洲一区观看| 国产调教打屁股xxxx网站| 中文字幕巨乱亚洲| √资源天堂中文在线| 日韩精品影音先锋| 毛片在线看片| 国产精品999| 亚洲区小说区| r级无码视频在线观看| 国产一区二区三区四区五区入口 | 亚洲综合123| 中文字幕精品三区| 无码人妻av免费一区二区三区| 亚洲福利在线看| 日本资源在线| 亚洲一区二区三区毛片 | 久久av综合网| 国产一区二区三区久久久| 国产精品理论在线| 日本韩国一区二区三区| 欧洲毛片在线| 青青久久av北条麻妃海外网| 国产精品男女| 日韩亚洲欧美视频| 盗摄精品av一区二区三区| www.99re7| 欧美第一区第二区| 日本大片在线播放| 波多野结衣久草一区| 欧美韩日精品| 2025中文字幕| 亚洲制服丝袜一区| 亚洲精品国产精品乱码不卡| 欧美日韩xxx| 在线精品国产亚洲| 免费的一级黄色片| 粉嫩久久99精品久久久久久夜| 青娱乐av在线| 欧美大片日本大片免费观看| 色呦呦在线播放| 国产区一区二区三区| 国产精品婷婷| 日本精品在线观看视频| 欧美在线观看18| 日本免费在线视频| 亚洲影院色在线观看免费| 欧美va天堂在线| 99免费观看视频| 天天色天天操综合| 国产资源在线看| 国产欧美精品一区二区| 亚洲人metart人体| 国产精品19p| 性久久久久久久久久久久| 日韩av地址| 国产在线视频2019最新视频| 欧美午夜一区| 少妇特黄一区二区三区| 欧美日韩精品免费观看视频| av大大超碰在线| 久久精品国产第一区二区三区最新章节| 久久久一二三| 亚洲视频重口味| 亚洲精品在线免费观看视频| 久久uomeier| 少妇高潮大叫好爽喷水| 成人激情视频网站| 国产精品免费精品一区| 日韩中文字幕精品视频| 一区三区自拍| 日本爱爱免费视频| 亚洲视频一二区| 嫩草影院一区二区| 国产精品久久久久久一区二区| 中文字幕免费精品| 尤物视频最新网址| 91精品婷婷国产综合久久竹菊| 6699嫩草久久久精品影院| 日韩资源av在线| 国产91精品一区二区麻豆网站 | 91精品福利在线一区二区三区 | 国产精品678| 欧美日本在线| 免费视频91蜜桃| 欧美精品一区二区在线播放| 国产a亚洲精品| 激情五月宗合网| 亚洲欧美成人一区二区三区|