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

2022 春節抖音視頻紅包系統設計與實現

原創 精選
移動開發 移動應用
在春節活動期間,抖音將視頻和春節紅包相結合,用戶可以通過拍視頻發紅包的方式來給粉絲和好友送祝福。整個活動玩法分為 B2C 和 C2C 兩種玩法,下面對這兩個玩法的流程簡單介紹下。

我們做了什么

業務背景

在春節活動期間,抖音將視頻和春節紅包相結合,用戶可以通過拍視頻發紅包的方式來給粉絲和好友送祝福。

業務玩法

整個活動玩法分為 B2C 和 C2C 兩種玩法,下面對這兩個玩法的流程簡單介紹下

B2C 紅包

在 B2C 紅包玩法中,用戶需要先來抖音或者抖 Lite 參加春節紅包雨活動,有一定概率在春節紅包雨活動中獲得紅包補貼。用戶可以在獲得補貼后直接跳轉到相機頁面,或者在之后拍攝視頻跳轉到相機頁面,在相機頁面用戶拍攝完視頻后會看到一個紅包掛件,在掛件中可以看到已發放補貼。用戶選擇補貼后點擊下一步完成投稿后即可完成視頻紅包的發放。

圖片

圖 1 春節紅包雨活動   圖 2 紅包補貼   圖 3 紅包掛件   圖 4b2c 紅包發送 tab 頁

C2C 紅包

在 C2C 紅包玩法中,用戶拍攝視頻點擊掛件,填寫紅包的金額和個數信息,選擇紅包的領取范圍后,點擊發送紅包會拉起收銀臺,用戶支付完成后點擊下一步發布視頻,即可完成 C2C 紅包的發放。

圖片

圖 1C2C 紅包發送 Tab 頁   圖 2 支付界面   圖 3 紅包支付后掛件展示

紅包領取

B2C 和 C2C 紅包的領取流程都是一樣的。用戶在抖音刷視頻遇到有視頻紅包的視頻時,視頻下方有個領取紅包按鈕,用戶點擊紅包領取,會彈出到紅包封面,用戶點擊紅包封面的開紅包后即可領取紅包,領取成功后會顯示領取結果彈窗,在領取結果中用戶可以看領取金額,以及跳轉到領取詳情頁,在領取詳情頁中可以看到這個紅包其他用戶的領取手氣。

圖片

圖 1 紅包視頻   圖 2 紅包封面   圖 3 紅包領取結果   圖 4 紅包領取詳情

我們碰到的一些問題

通用紅包系統的設計

在上文中有提到,本次春節活動需要同時支持 B2C 和 C2C 兩種類型的紅包,這兩個類型的紅包既有一些相似的業務,也有很多不同的業務。在相同點上他們都包括紅包的發放和領取這兩個操作。在不同點上,比如 B2C 的紅包發放需要通過使用補貼來發送,而 C2C 的紅包發放需要用戶去完成支付。B2C 的紅包用戶領取后需要去提現,而 C2C 的紅包用戶領取后直接到零錢。因此需要設計一個通用的紅包系統來支持多種紅包類型。

另外對于紅包系統本身而言,除了發領紅包外,還涉及到一些紅包信息的查詢,以及各種狀態機的推進,這些功能模塊之間如何劃分也是需要考慮的一個點。

大流量補貼的發放處理

前面提到過,B2C 紅包玩法會先進行補貼的發放。在春節活動期間,每場紅包雨都會有大量的用戶進入參與,如果將這些流量直接打到數據庫,將需要大量的數據庫資源,而春節期間數據庫的資源是非常稀缺的,如何減少這部分的資源消耗也是一個需要考慮的問題。

紅包領取方案的選型

在紅包業務中,領取是一個高頻的操作,在領取方式的設計中,需要業務場景考慮一個紅包是否會被多個用戶同時領取。多個用戶同時去領取同一個紅包可能會導致熱點賬戶問題,成為系統性能的瓶頸。解決熱點賬戶問題也有多個方案,我們需要結合視頻紅包的業務場景特點來選取合適的方案。

穩定性容災

在本次春節活動中,包括 B2C 和 C2C 兩種業務流程,其中每個業務流量鏈路都依賴很多的下游服務和基礎服務。在這種大型活動中,如果出現黑天鵝事件時,如何快速止損,減少對系統的整體影響,是一個必須要考慮的問題。

資金安全保證

在春節活動期間,B2C 會發放大量的紅包補貼,如果補貼發生超發,或者補貼的核銷出現問題,一個補貼被多次核銷,將會造成大量的資損。另外 C2C 也涉及到用戶的資金流入流出,如果用戶領取紅包后如果發現錢變少了,也可能會造成大量的客訴和資損。因此資金安全這塊需要做好充足的準備。

紅包系統的壓測

在傳統的壓測方式中,我們一般會對某個大流量接口進行壓測從而得到系統的瓶頸。然而在紅包系統中,用戶的發領和查都是同時進行的,并且這幾個接口之間也是相互依賴的,比如需要先發紅包,有了紅包后才能觸發多個人的領取,領取完成后才可以查看領取詳情。如果使用傳統的單接口的壓測方式,首先 mock 數據會非常困難,和支付相應的壓測數據因為涉及實名還需要特殊生成,而且單個接口單個接口的壓測很難得到系統的真實瓶頸,因此如何對系統進行全鏈路的壓測從而得到系統準確的瓶頸也是我們需要解決的一個問題。

我們怎么做的

通用紅包系統的設計

對于紅包系統,核心操作包括紅包發送,領取,以及未領取的退款這三個操作。另外我們還會需要去查一些紅包的信息和領取的信息等。同時對于發送,領取和退款這三個核心操作,我們需要對它們的狀態進行一個維護。同時在我們的業務場景中,還存在 B2C 特有的補貼的發放,我們也需要維護補貼的狀態。

在上面初步介紹紅包系統后,可以看到紅包的幾個功能模塊,有發放,領取,退款,補貼發放以及各種信息查詢,另外還有狀態機的維護等,對紅包的功能進行梳理后,我們開始對紅包的模塊進行劃分。

劃分原則

  • 功能內聚,每個系統只處理一個任務,方便之后系統的開發和迭代,以及問題的排查
  • API 網關層只進行簡單的 proxy 處理
  • 異步任務拆解?
  • 讀寫分離,將紅包的核心操作和紅包的查詢分成兩個服務

劃分模塊

紅包網關服務

  • HTTP API 網關,對外對接客戶端和 h5,對內封裝各個系統 rpc 接口,限流,權限控制、降級等功能

紅包核心服務

  • 主要承載紅包核心功能,包括紅包的發放、領取、退款,以及紅包補貼的發放,維護紅包狀態機,紅包的狀態推進

紅包查詢服務

  • 主要承載紅包查詢功能,包括紅包詳情、紅包發送狀態、紅包領取狀態、紅包領取詳情、紅包補貼信息

紅包異步服務

  • 主要承載紅包異步任務,保證狀態機的流轉,包括紅包的轉賬,紅包的退款,以及紅包補貼的狀態推進

紅包基礎服務

  • 主要承載紅包各個系統的公共調用,例如對 DB,redis、tcc 的操作,公共常量和工具類,相當于紅包的基礎工具包

紅包對賬服務

  • 主要承載紅包和財經的對賬邏輯,按天和財經對賬

整體架構

最后整個視頻紅包的系統架構如圖所示

圖片

大流量補貼的發放處理

同步獎勵發放

在紅包補貼發放鏈路流程中,為了應對春節的大流量,整個鏈路流程也經歷過幾次方案的迭代。

在最初的方案設計中,我們是按照同步的補貼發放流程來處理的,上游鏈路調用紅包系統接口發券,發券成功后用戶感知到券發放成功,可以使用該券來發放紅包,最初方案的整體流程如下圖:

圖片

上面方案的一個問題是在春節活動期間,整個鏈路都需要能扛住活動期間的總流量,而且最終流量都會打到數據庫,而數據庫的資源在春節期間也是比較緊缺的。

異步獎勵發放

為了解決同步獎勵發放的問題,整體流程改為通過 MQ 進行削峰,從而降低下游的流量壓力,相當于是從同步改為異步,用戶參與活動后會先下發一個加密 Token 給客戶端,用于客戶端的展示以及和服務端的交互處理。活動異步發券方案如下圖

圖片

這樣解決了大流量的問題,但是相應地引入了其他的問題,在最初方案中,用戶的紅包補貼都會先在紅包系統中落庫,后續用戶對補貼的查詢和核銷我們都能在紅包數據庫中找到對應的記錄,但是在異步的方式中,整個補貼的入賬預估需要 10min,而用戶在 APP 界面感知到發券后可能馬上就會開始使用用補貼來發放視頻紅包,或者會去紅包掛件查看自己已經領取的紅包補貼,而此時補貼還未在紅包系統中入賬。

最終方案

為了解決上面問題,我們對紅包補貼的視頻紅包發放和紅包補貼查詢的整個邏輯進行了修改,在用戶使用紅包補貼進行視頻紅包發放時,我們會先對該補貼進行一個入庫操作,入庫成功后才可以用這個補貼進行紅包發放。另外對于查詢接口,我們無法感知到所有補貼是否完全入賬,因此每次查詢時我們都需要去獎勵發放端查詢全量的 Token 列表,同時我們還需要查詢出數據庫中用戶的補貼,對這兩部分數據進行一次 merge 操作,才能得到全量的補貼列表。

圖片

在上面的流程中,為了解決 MQ 異步會有延遲的問題,我們在用戶進行請求時主動地進行入賬,而用戶主動的操作包括使用補貼發放紅包和查詢補貼,我們為什么只在補貼發放紅包時入賬而在查詢補貼時不入賬呢?因為用戶的查詢行為是一個高頻行為,同時涉及到批量的操作,在操作 DB 前我們無法感知該補貼是否入賬,所以會涉及到 DB 的批量處理,甚至用戶每次來查詢時我們都需要重復這個操作,會導致大量的 DB 資源浪費。而補貼的發放時入賬則是一個低頻的,單個補貼的操作,我們只需要在用戶核銷時入賬即可,這樣可以大量減輕數據庫的壓力,節省數據庫資源。

紅包領取方案的選型

在視頻紅包領取的技術方案中,我們也有一些方案的選擇和思考,這里和大家分享下。

悲觀鎖方案

圖片

方案一也是最常見的思路,在用戶領取時對數據庫的紅包進行加鎖,然后扣減金額,然后釋放鎖完成整個紅包領取。這個方案的優點是清晰明了,但是這種方案的問題會導致多個用戶同時來領取紅包時,會造成數據庫行鎖的沖突,需要排隊等待,當排隊請求過多時會造成數據庫鏈接的浪費,影響整體系統的性能。同時在上游長時間未收到反饋導致超時,用戶側可能會不停重試,導致整體數據庫鏈接被耗盡,從而導致系統崩潰。

紅包預拆分方案

方案一的問題是多個用同時領取會造成鎖沖突,解鎖鎖沖突可以通過拆分的方式,來將鎖化成更細的粒度,從而提高單個紅包的領取并發量。具體方案如下:

圖片

在方案二中,對發紅包的流程進行了一個改動,在發紅包時會對紅包進行一個預拆分的處理,將紅包拆成多個紅包,這樣就完成了鎖粒度的細化,在用戶領取紅包時從之前的爭搶單個紅包鎖變為現在多個紅包鎖分配。從而在領取紅包時問題就變為如何給用戶分配紅包,一種常用的思路是當用戶請求領取紅包時,通過 redis 的自增方法來生成序列號,該序列號即對應該領取那一個紅包。但是這種方式強依賴 redis,在 redis 網絡抖動或者 redis 服務異常時,需要降級到去查詢 DB 還未領取的紅包來獲取序列號,整體實現比較復雜。

最終方案

在視頻紅包的場景中,整個業務流程是用戶拍攝視頻發紅包,然后在視頻推薦 feed 流中刷到視頻時,才會觸發領取。相對于微信和飛書這種群聊場景,視頻紅包中同一個紅包的領取并發數并不會很高,因為用戶刷視頻的操作以及 feed 流本身就完成了流量的打散,所以對于視頻紅包來說,領取的并發數并不會很高。從業務的角度來看,在需求實現上,我們在用戶領取完成后需要能獲取到未領取紅包的個數信息下發給用戶展示,方案一獲取紅包庫存很方便,而方案二獲取庫存比較麻煩。另外從系統開發復雜度和容災情況看,方案一相對來說是一個更合適的選擇。但是方案一中的風險我們需要處理下。我們需要有其他的方式來保護 DB 資源,盡量減少鎖的沖突。具體方案如下:

圖片

紅包 redis 限流

  • 為盡可能少的減少 DB 鎖沖突,首先會按照紅包單號進行限流,每次允許剩余紅包個數*1.5 的請求量通過。被限流返回特殊錯誤碼,前端最多輪訓 10 次,在請求量過多的情況下通過這種方式來慢慢處理

內存排隊

  • 除了 redis 限流外,為了減少 DB 鎖,我們在領取流程中加個一個紅包內存鎖,對于單個紅包,只有獲取到內存鎖的請求才能繼續去請求 DB,從而將 DB 鎖的沖突遷移到內存中提前處理,而內存資源相對于 DB 資源來說是非常廉價的,在請求量過大時,我們可以水平擴容。
  • 為了實現內存鎖,我們進行了幾個改動。首先需要保證同一個紅包請求能打到同一個 tce 實例上,這里我們對網關層路由進行了調整,在網關層調用下游服務時,會按照紅包單號進行路由策略,保證同一單號的請求打到同一個實例上。另外我們在紅包系統的 core 服務中基于 channel 實現了一套內存鎖,在領取完成后會釋放該紅包對應的內存鎖。另外為了防止鎖的內存占用過大或者未及時釋放,我們起了一個定時任務去定期地處理。

轉賬異步化

  • 從接口耗時來看,轉賬是一個耗時較長的操作,本身涉及和第三方支付機構交互,會有跨機房請求,響應延時較長,將轉賬異步化可以降低領取紅包接口的時延,提高服務性能和用戶體驗
  • 另外從用戶感知來看,用戶更關注的是領取紅包的點擊開后是否領取成功,至于余額是否同步到賬用戶其實感知沒那么強烈,另外轉賬本身也是有一個轉賬中到轉賬成功的過程,將轉賬異步化對于用戶的感知基本沒有影響

穩定性容災

整個紅包系統的容災我們主要從接口限流,業務降級和多重機制保證狀態機的推進這幾個方式來進行的,下面對這幾個方式分別介紹下:

圖片

接口限流

接口限流是一種常見的容災方式,用于保護系統只處理承受范圍內的請求,防止外部請求過大將系統打崩。在進行接口限流前,我們首先需要和上下游以及產品溝通得到一個預估的紅包發放和領取量,然后根據發放和領取量進行分模塊地全鏈路的大盤流量梳理,下面是當時我們梳理的一個 b2c 全鏈路的請求量。

圖片

有個各個模塊的請求量后,匯總之后就可以得到各個接口,紅包系統各個服務以及下游依賴的各個服務的流量請求,這個時候再做限流就比較方便了。

業務降級

核心依賴降級

在春節活動期間,紅包系統整個鏈路依賴的服務有很多,這些下游的鏈路依賴可以分為核心依賴和非核心依賴,當下游核心服務異常時,可能某一個鏈路就不可用,此時可以在 API 層直接降級返回一個比較友好的文案提示,等下游服務恢復后再放開。比如在 C2C 的紅包發送流程中,用戶需要完成支付才可以發紅包,如果財經的支付流程異常或者支付成功狀態長時間未完成,會造成用戶支付后紅包發送不成功,也會導致前端來不停的輪訓查詢紅包狀態,導致請求量陡增,造成服務壓力,甚至影響 B2C 的紅包發放和查詢。此時可以通過接口降級的方式,將 C2C 的紅包發放降級返回,減少服務壓力,同時降低對其他業務邏輯的影響。

非核心依賴降級

除核心依賴外,紅包系統還有一些非核心的下游依賴,對于這些依賴,如果服務出現異常,我們可以降低用戶部分體驗的方式來保證服務的可用。比如在 4.2 中我們提到的,用戶在發 B2C 紅包前需要先獲取所有可用的紅包補貼,我們會去獎勵發放端查詢到所有的 Token 列表,然后查詢我們自己的 DB,然后進行 merge 返回。如果獲取 Token 列表的接口異常時,我們可以降級只返回我們自己 DB 中的補貼數據,這樣可以保證用戶在這種情況下還可以進行紅包的發放,只影響部分補貼的展示,而不是影響整個紅包發送鏈路。

多重機制保證狀態機的推進

在紅包系統中,如果某個訂單長時間未到終態,比如用戶領取紅包后長時間未到賬,或者用戶 C2C 紅包未領取長時間未給用戶退款都有可能造成用戶的客訴。因此需要及時準確地保證系統中各個訂單的狀態能推到終態。

這里我們有幾種方式去保證,首先是回調,在依賴方系統訂單處理完后會及時地通知給紅包系統,這種方式也是最及時的一種方式。但是只依賴回調可能會出現依賴方異常或者網絡抖動導致回調丟失,此時我們在紅包的各個階段都會給紅包系統發一個 mq,間隔一定的時間去消費 mq 主動查詢依賴方的訂單狀態進行更新。最后我們對每個狀態機都會有一個定時任務用于兜底,在定時任務多次執行仍未到終態的會 lark 通知,及時人工介入發現問題。

資金安全保證

交易冪等

在編程中,冪等指任意多次執行一個請求所產生的影響與一次執行的影響相同。在資金安全中,通過訂單號來進行相應的冪等邏輯處理可以防止資損的發生。具體來說在紅包系統中,在紅包的發放,領取和退款中,我們都通過訂單號唯一鍵來保證接口冪等。另外紅包系統的補貼發放接口是冪等的,外部同一個單號多次請求發放補貼,我們需要保證只會發一張券。

實現冪等的方案很多,包括有通過數據庫或者 redis 來實現冪等的。最可靠的就是通過數據庫的唯一鍵沖突來實現,但是這種方式在數據庫存在分片實例時會引入一些額外的問題。這里我們就補貼的發放來簡單介紹下,在業務系統的設計中,我們是按照 uid 分片的方式來建立業務的數據庫表,這就導致補貼的分片鍵是 uid,雖然我們也設置了紅包的補貼單號作為唯一鍵。但是其中存在一個風險就是如果上游的系統調用補貼發放時,同一個外部單號更換了 uid,就可能會導致兩個請求分別打到不同的數據庫實例上,導致唯一索引失效,造成資損。為了解決這個問題,我們又額外的引入一個以補貼發放外部單號作為分片鍵的數據庫來解決這個風險。

圖片

B2C 紅包核對

除了在開發過程的系統設計上進行相應的資金安全考慮,我們還需要通過對賬的方式來校驗我們的系統是否有資金安全問題。

在 B2C 鏈路中,整個鏈路主要是從補貼發放到紅包領取,我們對這幾個鏈路的上下游的數據都進行相應的小時計 hive 對賬。

圖片

C2C 紅包核對

在 C2C 鏈路中,整個主要從用戶發起支付,到用戶領取轉賬以及最后紅包過期退款。在支付,轉賬,退款這三個流程都需要進行相應的核對。同時,還需要保證用戶的紅包發放金額大于等于紅包轉賬金額+紅包退款金額,這里大于等于是因為紅包從發放成功到退款成功整個周期會在 24h 以上,另外可能存在轉賬在途的這種訂導致會有多筆退款單,如果要求嚴格等于的話具體對賬時機沒法控制。

圖片

紅包系統的壓測

前面提到過,紅包系統的鏈路包含有多個接口,發領查等,需要模擬用戶的真實行為來進行壓測才能得到系統的真實性能。這里我們使用了壓測平臺的腳本壓測方式來進行壓測。

首先需要對整個壓測鏈路整個改造,和上下游溝通是否可以壓測,不能壓測的需要進行相應的 mock 處理。另外對于存儲服務,數據庫,redis 和 mq 都要確保壓測標的正確傳遞,否則可能會影響到線上。

改造完壓測鏈路后,需要構造相應的壓測腳本,對于 B2C 和 C2C 分為兩個腳本。

B2C 紅包鏈路壓測

圖片

上面是 B2C 壓測的整個鏈路,首先是補貼的發放,然后通過查詢補貼,通過補貼來發放紅包,為了模擬多人來領取的情況,我們起了多個 goroutinue 來并發的領取紅包。

C2C 紅包鏈路壓測

圖片

C2C 紅包因為涉及到支付相關的操作,整個鏈路又是另外一套流程,因此對于 C2C 也需要有一個單獨的腳本。在壓測流程中,因為涉及到外部系統的依賴,如果等待全鏈路 OK 時再一起壓測可能會導致一些未知的問題出現。因此我們需要自己壓測沒問題后再開始全鏈路一起壓測,在圖中和支付相關的藍色模塊我們都添加了相應的 mock 開關,來控制壓測的結果。在 mock 開關打開時,會直接構造一個結果返回,在 mock 開關關閉時,會正常地去請求財經獲取結果。

后續規劃

服務 Set 化

圖片

在前面提到的系統容災中,如果紅包核心服務改掉,或者數據庫 DB 主機房掛掉,將影響所有的用戶,此時只能降級返回,整個系統無法快速切換和恢復。后續考慮將服務改為 set 化的架構。將服務 Server 和對應的存儲劃分為一個單獨的 Set,每個 Set 只處理對應劃分單元內的流量,同時多個單元之間實現流量拆分和故障隔離,以及 Set 之間數據備份。這樣后續在某個單元異常時,可以及時將對應單元的流量切到備份單元中。

責任編輯:未麗燕 來源: 字節跳動技術團隊
相關推薦

2023-03-03 15:40:43

抖音視頻編碼器

2019-02-18 16:39:21

春節檔社交音視頻

2022-08-29 10:39:32

FFmpeg多媒體框架開源

2022-07-01 10:59:28

英特爾

2022-06-20 05:59:35

5G技術音視頻技術安卓系統

2023-11-20 22:02:54

開源模型

2019-04-03 14:12:19

抖單分析可視化

2017-12-22 22:13:22

語音視頻SDK延遲

2022-01-24 20:40:26

HarmonyOS音視頻鴻蒙

2024-10-15 13:30:03

2020-09-27 10:40:06

音視頻即構科技開源中國

2023-04-24 21:10:58

視頻云計算

2017-12-22 22:33:04

游戲語音音視頻社交

2021-01-21 14:50:01

微信紅包移動應用

2018-03-07 22:08:16

游戲語音

2022-09-21 11:48:40

端到端音視頻測試用戶體驗

2017-12-22 21:06:55

語音視頻SDK聽聲辨位

2022-04-01 15:41:35

字節春節活動用戶
點贊
收藏

51CTO技術棧公眾號

精品欧美国产| 97香蕉久久超级碰碰高清版| 女人高潮一级片| 宅男网站在线免费观看| 成人激情免费电影网址| 国产成人高潮免费观看精品| 欧美日韩黄色网| 女同另类激情重口| 欧美日韩另类一区| 亚洲 自拍 另类小说综合图区| 国产视频在线看| 国产成人av自拍| 国产精品成人观看视频国产奇米| 爱爱视频免费在线观看| 神马久久av| 8x8x8国产精品| 亚洲欧洲日产国码无码久久99| 日本成人网址| 久久综合久久99| 99国精产品一二二线| 中文字幕永久在线| 亚洲美女色禁图| 久久天堂av综合合色| 在线 丝袜 欧美 日韩 制服| 九九九九九九精品任你躁| 色菇凉天天综合网| 97在线国产视频| 超碰电影在线播放| 欧美激情综合在线| 久久九九视频| 亚洲欧美高清视频| 国产伦精品一区二区三区免费| 国产成人一区二区三区小说| 日韩精品在线不卡| 亚洲视频在线免费| 最近2019中文免费高清视频观看www99| 午夜不卡久久精品无码免费| 国产高清精品二区| 欧美色图一区二区三区| 欧美一级片中文字幕| 蜜桃成人365av| 亚洲乱码中文字幕| 在线观看一区二区三区三州| 国产毛片在线看| 久久久久久一二三区| 精品久久中出| 日日夜夜精品免费| 波多野结衣在线aⅴ中文字幕不卡| 91超碰在线免费观看| 一本一道精品欧美中文字幕| 青青草国产精品亚洲专区无| 日韩美女免费观看| 精品视频一二三区| 美女尤物久久精品| 国产91在线播放精品91| 9i精品福利一区二区三区| 国产欧美午夜| 欧美一乱一性一交一视频| 黄色小说在线观看视频| 亚洲小说欧美另类婷婷| 久久久视频免费观看| 精品无码人妻一区二区三区 | 免费影院在线观看一区| 四虎影院在线播放| 久久久www成人免费毛片麻豆| 免费一区二区三区| 91官网在线| 亚洲欧美一区二区三区孕妇| 六月婷婷激情网| 日本高清在线观看| 天天操天天色综合| 欧美黑人又粗又大又爽免费| 国产亚洲精彩久久| 91精品国产综合久久精品性色| 在线观看一区二区三区视频| 91精品导航| 日韩福利在线播放| 亚洲一二三精品| 欧美福利影院| 97超碰色婷婷| 中国a一片一级一片| 国精产品一区一区三区mba视频| 99re国产视频| 日韩欧美在线观看一区二区| 国产女主播视频一区二区| 自拍偷拍亚洲色图欧美| 超碰在线最新网址| 色综合久久中文字幕| wwwwwxxxx日本| 国产精品久久久网站| 亚洲精品网站在线播放gif| 国产精品酒店视频| 精品成人在线| 国产精品一区二区三| 国产探花精品一区二区| 91在线视频18| 992tv成人免费观看| 第一福利在线视频| 欧美日韩亚州综合| 日韩成人av一区二区| 日韩一区二区中文| 8x海外华人永久免费日韩内陆视频| 波多野结衣绝顶大高潮| 国产精品一区二区在线看| 欧美深深色噜噜狠狠yyy| 韩国av网站在线| 色成人在线视频| 欧美性猛交乱大交| 日韩av在线播放网址| 国语自产精品视频在线看抢先版图片 | 亚洲综合色丁香婷婷六月图片| 1024精品视频| 日韩一区二区三区高清在线观看| 精品一区精品二区| 欧美毛片在线观看| 蜜臀av性久久久久蜜臀aⅴ四虎 | 欧美在线中文字幕| av网站在线免费看| 中文字幕 久热精品 视频在线| 超碰成人免费在线| 日韩精品中文字幕吗一区二区| 亚洲色图35p| 天海翼一区二区| 国产激情视频一区二区三区欧美| 日韩中文字幕一区二区| 在线视频cao| 亚洲国产99精品国自产| 九九热精彩视频| 极品美女销魂一区二区三区免费| 久久综合入口| 17videosex性欧美| 日韩美一区二区三区| 最新av电影网站| 免费高清在线视频一区·| 欧美在线3区| 中文在线免费二区三区| 亚洲成色777777在线观看影院| 国产一区二区播放| 九一九一国产精品| 中文字幕在线中文字幕日亚韩一区| 亚洲男人av| 亚洲女人天堂色在线7777| 日本少妇bbwbbw精品| 风流少妇一区二区| 9色视频在线观看| 麻豆一二三区精品蜜桃| 久久亚洲精品成人| 国产女人爽到高潮a毛片| 亚洲欧洲日韩在线| www.51色.com| 欧美激情视频一区二区三区免费| 成人久久久久久| 黄色成人在线| 精品少妇一区二区三区视频免付费 | 97精品视频在线观看| 成人免费公开视频| 婷婷亚洲久悠悠色悠在线播放| 久久久久久久人妻无码中文字幕爆| 在线看片一区| 久久综合给合久久狠狠色| 成人影院网站| 亚洲最新中文字幕| 中文字幕在线观看第二页| 18成人在线视频| 亚洲精品无码久久久久久久| 国产精品v欧美精品v日本精品动漫| 91在线高清视频| 电影k8一区二区三区久久 | 欧美在线小视频| 永久免费观看片现看| 国产资源精品在线观看| 青青草视频在线视频| 任你躁在线精品免费| 日本欧美一级片| 日本电影全部在线观看网站视频| 欧美一级久久久| 亚洲久久在线观看| 国产精品乱码妇女bbbb| 无码人妻少妇色欲av一区二区| 在线成人黄色| 日韩影院一区| xxxxxhd亚洲人hd| 国产成人精品网站| av在线官网| 亚洲精品自在久久| 国产精品久久久久毛片| 亚洲无人区一区| 国产高清一区二区三区四区| 狠狠色丁香久久婷婷综合_中| 久久久久久久久久久综合| 首页亚洲中字| 91九色单男在线观看| 理论不卡电影大全神| 中文字幕欧美精品日韩中文字幕| 91精品国产乱码久久| 午夜私人影院久久久久| 国产精品av久久久久久无| 国产精品一二二区| 国产视频一区二区三区在线播放| 中文字幕免费精品| 欧美日韩中文国产一区发布| 天堂va在线高清一区| 国产精品第8页| 色呦呦视频在线观看| 亚洲日韩中文字幕在线播放| 午夜精品久久久久久久99老熟妇| 日本道免费精品一区二区三区| 精品97人妻无码中文永久在线| 久久精品视频一区二区三区| 无码人妻丰满熟妇区毛片蜜桃精品| 久久综合九色综合欧美狠狠| 黄色三级中文字幕| 无码一区二区三区视频| 蜜桃欧美视频| 风间由美一区二区av101| 国产在线拍揄自揄视频不卡99| 成人免费直播在线| 日韩av免费在线看| 男女免费观看在线爽爽爽视频| 伊是香蕉大人久久| 亚洲色图21p| 精品欧美黑人一区二区三区| 综合久久中文字幕| 一本大道综合伊人精品热热| 久久久久成人片免费观看蜜芽| 国产人妖乱国产精品人妖| 中文字幕免费高清视频| 国产成人自拍在线| 无尽裸体动漫2d在线观看| 日韩国产高清影视| 国产精品wwwww| 中文欧美日韩| 黄色成人在线看| 国产伊人精品| 日韩视频 中文字幕| 1024精品久久久久久久久| 亚洲高清精品中出| 欧美日韩高清| 日韩三级在线播放| 夜色77av精品影院| 久久久综合香蕉尹人综合网| 免费成人三级| 国产专区一区二区| 农村少妇一区二区三区四区五区| 国产日韩亚洲精品| 卡通动漫精品一区二区三区| 国产日韩欧美二区| 秋霞影视一区二区三区| 国产亚洲一区二区三区在线播放| 老司机凹凸av亚洲导航| 激情欧美一区二区三区中文字幕| 粉嫩久久久久久久极品| 国产一区二区三区四区五区在线| 高清欧美性猛交xxxx黑人猛| 国产伦精品一区二区三区高清版| 超碰一区二区三区| 久久综合中文色婷婷| 亚洲区小说区| 色婷婷精品国产一区二区三区| 波多野结衣在线播放一区| 亚洲日本精品一区| 亚洲精品va| 又大又硬又爽免费视频| 国产一区91| 四季av一区二区| 精品一区二区三区久久久| 无人码人妻一区二区三区免费| 懂色av中文一区二区三区| 欧美xxxx×黑人性爽| 久久综合色婷婷| 蜜桃av免费观看| 一区二区三区色| 伊人手机在线视频| 在线精品视频一区二区三四| 97人妻一区二区精品免费视频 | 欧美精品成人在线| 在线黄色的网站| 国产精品视频自拍| 亚洲午夜免费| 欧美性xxxx69| 最新国产精品| 熟女性饥渴一区二区三区| 日韩电影免费在线看| 亚洲国产日韩在线一区| 99久久99久久精品免费观看| 国产美女永久免费无遮挡| 成人欧美一区二区三区1314 | 亚洲三级毛片| the porn av| 成人午夜伦理影院| 毛片久久久久久| 午夜精品福利久久久| 亚洲视频一区在线播放| 亚洲аv电影天堂网| 9色在线视频网站| 欧美极品欧美精品欧美视频| 久久99久久99精品免观看软件| 91手机在线播放| 精品产国自在拍| 国产精品入口芒果| 久久9热精品视频| 精品无码在线视频| 亚洲人成7777| 中文字幕资源网| 亚洲精品久久久久| 麻豆av免费在线观看| 欧美在线视频a| 2020最新国产精品| 亚洲国产日韩美| 欧美综合国产| 亚洲色图欧美日韩| 亚洲精品国产无天堂网2021| 波多野结衣高清视频| 亚洲精品91美女久久久久久久| 日本中文字幕在线观看| 欧美一二三视频| avtt综合网| 韩国黄色一级大片| 麻豆精品新av中文字幕| 亚欧洲乱码视频| 精品福利免费观看| 国产三级视频在线播放| 中文字幕视频在线免费欧美日韩综合在线看 | 久久久精品国产99久久精品芒果 | 一本到一区二区三区| 男人天堂网在线视频| 欧美xxxx做受欧美| 亚洲青青久久| 一区二区三区av| 青青国产91久久久久久| 免费看黄色av| 91黄色小视频| 美女做暖暖视频免费在线观看全部网址91| 欧美劲爆第一页| 视频一区国产| 大地资源网在线观看免费官网| 久久99日本精品| 91麻豆精品成人一区二区| 欧美日韩精品一区二区| www.亚洲资源| 国产精品视频自在线| 色男人天堂综合再现| 亚洲综合日韩欧美| 国产精品麻豆99久久久久久| 中文字幕av第一页| 中文字幕成人在线| 久久精品97| 小说区视频区图片区| 国内久久精品视频| 成人在线观看高清| 日韩欧美中文字幕精品| 手机电影在线观看| 国产另类自拍| 国产日韩欧美高清免费| 欧美特黄一区二区三区| 在线国产亚洲欧美| 欧美成人高清在线| 成人免费大片黄在线播放| 女人天堂亚洲aⅴ在线观看| 国产大学生av| 精品久久久久人成| 国产在线黄色| 国产日产久久高清欧美一区| 久久久久久久久久久久久久久久久久| 亚洲国产午夜精品| 亚洲图片欧美综合| 韩国免费在线视频| 国产日韩欧美成人| 韩日成人在线| 一本色道久久综合亚洲精品图片| 色吊一区二区三区| 国产在线观看91| 国产综合av一区二区三区| 日韩在线卡一卡二| www欧美com| 亚洲丁香久久久| 国产成人免费9x9x人网站视频| 自拍另类欧美| 99国产精品久久久久| 中文文字幕一区二区三三| 久久av.com| 亚洲+变态+欧美+另类+精品| 久久婷婷综合色| 一区二区三区日韩欧美| 免费黄色在线视频网站| 成人a免费视频| 亚洲综合丁香| 91 在线视频| 日韩精品中文字| 电影中文字幕一区二区| 无码aⅴ精品一区二区三区浪潮| 国产精品国产三级国产三级人妇| 性生交生活影碟片| 国产福利精品av综合导导航| 午夜精品久久久久99热蜜桃导演 | 亚洲第一综合色| 毛片在线播放a| 久久婷婷开心| 国产激情91久久精品导航 | 亚洲一区bb|