午夜视频免费看_日韩三级电影网站_国产精品久久一级_亚洲一级在线播放_人妻体内射精一区二区三区_91夜夜揉人人捏人人添红杏_91福利在线导航_国产又粗又猛又黄又爽无遮挡_欧美日韩一区在线播放_中文字幕一区二区三区四区不卡 _日日夜夜精品视频免费观看_欧美韩日一区二区三区

主頁 > 知識庫 > 詳解玩轉直播系列之消息模塊演進

詳解玩轉直播系列之消息模塊演進

熱門標簽:涿州代理外呼系統 阿克蘇地圖標注 百度地圖標注后傳給手機 外呼系統顯本地手機號 評價高的400電話辦理 外呼系統用什么卡 excel地圖標注分布數據 壽光微信地圖標注 電話機器人軟件免費

一、背景

即時消息(IM)系統是直播系統重要的組成部分,一個穩定的,有容錯的,靈活的,支持高并發的消息模塊是影響直播系統用戶體驗的重要因素。IM長連接服務在直播系統有發揮著舉足輕重的作用。

在目前大部分主流的直播業務中,推拉流是實現直播業務最基本的技術點,消息技術則是實現觀看直播的所有用戶和主播實現互動的關鍵技術點,通過直播IM系統模塊,我們可以完成公屏互動,彩色彈幕,全網送禮廣播,私信,PK等核心秀場直播的功能開發。"IM消息"作為用戶和用戶,用戶和主播之間"溝通"的信息橋梁,如何保證"信息橋梁"的在高并發場景下保持穩定可靠,是直播系統演進過程中一個重要的話題。

二、直播消息業務

在直播業務中,有幾個核心的關于消息模型的概念,我們先簡單地介紹一下,方便大家對直播相關的消息模型有一個整體上的理解。

2.1、主播與用戶

主播和觀眾,對于IM系統來說,都是一個普通用戶,都會有一個唯一用戶標識,也是IM分發到點對點消息的重要標識。

2.2、房間號

一個主播對應一個房間號(RoomId),主播在開播之前,進行身份信息驗證之后,就會綁定唯一的房間號,房間號是IM系統進行直播間消息分發的重要標識。

2.3、消息類型劃分

按照直播業務特性,IM消息劃分的方式有很多方式,例如按照接收方維度進行劃分,按照直播間消息業務類型進行劃分,按照消息的優先級,存儲方式都可以進行不同的劃分等等方式。

通常,我們按照接收方維度進行劃分有如下幾個類型的消息:

  • 點對點消息(單播消息)
  • 直播間消息(群播消息)
  • 廣播消息

按照具體的業務場景有如下幾個類型的消息:

  • 禮物消息
  • 公屏消息
  • PK消息
  • 業務通知類消息

消息能夠實時準確地分發到對應的群體或者單個用戶終端都是非常必要的。當然好一點的IM消息模型也能夠賦能業務一些新的能力,例如如下的能力:

統計每個直播間的實時在線人數

捕獲用戶進出直播間的事件

統計每個用戶實時進入直播間的時間

2.4、消息優先級

直播的消息是有優先級的,這一點是很重要的,與微信,QQ等聊天IM產品不一樣的地方是直播間消息是分優先級的。

微信等聊天消息產品,不管是私聊還是群聊,每個人發送消息的優先級基本上是一樣的,不存在誰的消息優先級高,誰的消息優先級低,都需要將消息準確實時地分發到各個業務終端,但是直播因為業務場景的不同,消息分發的優先級也是不一樣的。

舉例來說,如果一個直播間每秒只能渲染15~20個消息,如果一個熱點直播間一秒鐘產生的消息量大于20條或者更多,如果不做消息優先級的控制,直接實時分發消息,那么導致的結果就是直播間公屏客戶端渲染卡頓,禮物彈框渲染過快,用戶觀看體驗大幅下降,所以我們要針對不同業務類型的消息,給出不同的消息優先級。

舉例來說,禮物消息大于公屏消息,同等業務類型的消息,大額禮物的消息優先級又大于小額禮物的消息,高等級用戶的公屏消息優先級高于低等級用戶或者匿名用戶的公屏消息,在做業務消息分發的時候,需要根據實際的消息優先級,選擇性地進行消息準確地分發。

三、消息技術點

3.1、消息架構模型

3.2、短輪詢 VS 長鏈接

3.2.1、短輪詢

短輪詢的業務模型

首先我們先簡單地描述一下短輪詢時間的過程和基本設計思想:

客戶端每隔2s輪詢服務器接口,參數是roomId和timestamp,timestamp第一次傳遞0或者null。

服務器根據roomId和timestamp查詢該房間在timestamp時間戳后產生的消息事件,返回限定條數的消息例如(例如返回10~15條,當然在這個timestamp之后產生的消息數遠遠大于15條,不過因為客戶端渲染能力有限和過多的消息展示,會影響用戶體驗,所以限制返回的條數),并且同時返回這些消息中最后一條消息產生的時間戳timestamp,作為客戶端下次請求服務器的基準請求時間戳。

以此反復,這樣就可以每隔2s按照各個終端要求,更新每個直播間的最新消息了

整體的主體思想如上圖所示,不過具體的時間可以再做精細化處理,后續再做具體的說明和細節說明。

短輪詢的存儲模型

短輪詢的消息存儲與正常的長連接的消息存儲有一定的區別,不存在消息擴散的問題,我們需要做的消息存儲需要達到如下的業務目標:

消息插入時間復雜度要相對比較低;

消息查詢的復雜度要相對比較低;

消息的存儲的結構體要相對比較小,不能占用太大的內存空間或者磁盤空間;

歷史消息能夠按照業務需要做磁盤持久化存儲;

結合上述4點的技術要求,畢竟經過小組成員的討論,我們決定使用Redis的SortedSet數據結構進行存儲,具體實現思路:按照直播間產品業務類型,將業務消息劃分為如下四大類型:禮物,公屏,PK,通知。

一個直播間的消息使用四個Redis的SortedSet數據結構進行存儲,SortedSet的key分別是"live::roomId::gift","live::roomId::chat","live::roomId::notify","live::roomId::pk",score分別是消息真實產生的時間戳,value就是序列化好的json字符串,如下圖所示:

客戶端輪詢的時候,服務端查詢的邏輯如下所示:

很多同學會疑問,為什么不適用Redis的list的數據結構呢?如下圖會進行詳細的說明:

最后我們再對比一下Redis的SortedSet和Redis的List這兩個數據結構在直播消息存儲的時候,時間復雜度的相關分析。

以上,就是我們使用Redis的SortedSet數據結構進行消息存儲的一些簡單的設計思考,后續我們也會提到端輪詢的編碼時候,需要的注意點。

短輪詢的時間控制

短輪詢的時間控制及其重要,我們需要在直播觀眾觀看體驗QoE和服務器壓力之間找到一個很好的平衡點。

輪詢的間隔時間太長,用戶體驗就會下降很多,直播觀看體驗就會變差,會有"一頓一頓"的感覺。短輪詢的頻率過高,會導致服務器的壓力過大,也會出現很多次"空輪詢",所謂的"空輪詢"就是無效輪詢,也就是在上一秒有效輪詢返回有效消息之后,間隔期直播間沒有產生新的消息,就會出現無效的輪詢。

vivo直播目前每日的輪詢次數是10+億次,晚觀看直播高峰期的時候,服務器和Redis的CPU負載都會上升,dubbo的服務提供方的線程池一直處于高水位線上,這塊需要根據機器的和Redis的實時負載的壓力,做服務器的水平擴容和Redis Cluster的節點擴容,甚至讓一些超高熱度值的直播間負載到指定的Redis Cluster集群上,做到物理隔離,享受到"VIP"服務,確保各個直播間的消息相互不影響。

直播人數不一樣的直播間,輪詢的時間也是可以配置的,例如人數比較少的直播,百人以下的直播間,可以設置比較高頻的輪詢頻率,例如1.5s左右,超過300人以上的,1000人以下可以2s左右,萬人直播間可以設置2.5s左右,這些配置應該都可以通過配置中心實時下發,客戶端能夠實時更新輪詢的時間,調整的頻率可以根據實際直播間用戶體驗的效果,并且結合服務器的負載,找到一個輪詢間隔的相對最佳值。

短輪詢的注意點

1)服務端需要校驗客戶端傳遞過來的時間戳:這一點非常重要,試想一下,如果觀眾在觀看直播的時候,將直播退出后臺,客戶端輪詢進程暫停,當用戶恢復直播觀看畫面進程的時候,客戶端傳遞過來的時間就會是非常老舊甚至過期的時間,這個時間會導致服務器查詢Redis時出現慢查,如果出現大量的服務器慢查的話,會導致服務器連接Redis的連接無法快速釋放,也會拖慢整個服務器的性能,會出現一瞬間大量的輪詢接口超時,服務質量和QoE會下降很多。

2)客戶端需要校驗重復消息:在極端情況下,客戶端有可能收到重復的消息,產生的原因可能如下,在某一個時刻客戶端發出roomId=888888timestamp=t1的請求,因為網絡不穩定或者服務器GC的原因,導致該請求處理比較慢,耗時超過2s,但是因為輪詢時間到了,客戶端又發出了roomId=888888timestamp=t1的請求,服務器返回相同的數據,就會出現客戶端重復渲染相同的消息進行展示,這樣也會影響用戶體驗,所以每一個客戶端有必要對重復消息進行校驗。

3)海量數據無法實時返回渲染的問題:設想一下,如果一個熱度極大的直播間,每秒鐘產生的消息量是數千或者上萬的時候,按照上面的存儲和查詢思路是有漏洞的,因為我們每次因為各個因素的限制,每次只返回10~20條消息,那么我們需要很長的時間才能把這熱度很多的一秒鐘的數據全部返回,這樣就會造成最新的消息無法快速優先返回,所以輪詢返回的消息也可以按照消息優先級進行選擇性丟棄。

客戶端輪詢服務服務器查詢直播間的消息的好處是顯而易見的,消息的分發是非常實時和準確的,很難出現因為網絡顫抖導致消息無法到達的場景,不過壞處也是非常明顯的,服務器在業務高峰期的負載壓力很大,如果直播間的所有消息都是通過輪詢分發的,長期以往,服務器是很難通過水平擴容的方式來達到線性增長的。

3.2.2、長連接

長連接的架構模型

從流程上來說,如上圖所示,整體直播長連接的流程:

  • 手機客戶端首先通過http請求長連接服務器,獲取TCP長連接的IP地址,長連接服務器根據路由和負載策略,返回最優的可連接的IP列表。
  • 手機客戶端根據長連接服務器返回的IP列表,進行長連接的客戶端的連接請求接入,長連接服務器收到連接請求,進而建立連接。
  • 手機客戶端發送鑒權信息,進行通信信息的鑒權和身份信息確認,最后長連接建立完成,長連服務器需要對連接進行管理,心跳監測,斷線重連等操作。

長連接服務器集群的基本架構圖如下所示,按照地域進行業務劃分,不同地域的終端機器按需接入;

長連接建立和管理

為了使消息即時、高效、安全地觸達用戶,直播客戶端和IM系統建立了一條加密的全雙工數據通路,收發消息均使用該通道,當大量用戶在線的時候,維護這些連接、保持會話,需要用到大量內存和CPU資源。

IM接入層盡量保持功能簡潔,業務邏輯下沉到后面邏輯服務中進行處理,為了防止發布的時候,重啟進程會導致大量的外網設備重新建立連接,影響用戶體驗。接入層提供熱更新的發布方案:連接維護,賬號管理等不經常改動的基礎邏輯放入主程序中,業務邏輯采用so插件的方式嵌入到程序的,修改業務邏輯時只需要重新加載一次插件即可,可以保證與設備的長連接不受影響。

長連接保活

長連接建立后,如果中間網絡斷開,服務端和客戶端都無法感知,造成假在線的情況。因此維護好這個“長連接”一個關鍵的問題在于能夠讓這個“長連接”能夠在中間鏈路出現問題時,讓連接的兩端能夠快速得到通知,然后通過重連來建立新的可用連接,從而讓我們這個長連接一直保持高可用狀態。IM在服務端開啟了keeplive?;钐綔y機制和在客戶端啟用了智能心跳。

  • 利用keeplive?;钐綔y功能,可以探知客戶端崩潰、中間網絡端開和中間設備因超時刪除連接相關的連接表等意外情況,從而保證在意外發生時,服務端可以釋放半打開的TCP連接。
  • 客戶端啟動智能心跳不僅能在消耗極少的電和網絡流量條件下,通知服務器客戶端存活狀態、定時的刷新NAT內外網IP映射表,還能在網絡變更時自動重連長連接。

3.2.3、直播間IM消息分發

IM長連接分發消息的整體流程圖

在整合客戶端,IM長連接服務器模塊和直播業務服務器模塊這三個模塊的時候,整體消息的分發邏輯遵循如下的基本原則:

  • 單播,群播,廣播消息所有的消息都是由直播業務服務器調用IM長連接服務器的接口,將需要分發的消息分發到各個業務直播間。
  • 業務服務器對直播間產生的事件進行對應的業務類型做響應的處理,例如送禮扣減虛擬貨幣,發送公屏進行文本健康校驗等。
  • 客戶端接受直播業務服務器的信令控制,消息是通過長連接通道分發還是http短輪詢分發,都是由直播業務服務器控制,客戶端屏蔽底層消息獲取的方式細節,客戶端上層接受統一的消息數據格式,進行對應的業務類型消息處理渲染。

直播間成員管理和消息分發

直播間成員是直播間最重要的基礎元數據,單個直播間的用戶量實際上是無上限的,且呈現大直播若干個(大于30W同時在線)、中直播間幾百個、小直播幾萬個這樣分布,如何管理直播間成員是一個直播間系統架構中核心功能之一,常見的方式有如下兩種:

1.為直播間分配固定分片,用戶與具體的分片存在映射關系,每個分片中保存用戶相對隨機。

采用固定分片的方式算法實現簡單,但是對于用戶少的直播間有可能分片承載的用戶數量少,對于用戶大的直播間有可能分片承載用戶量又比較大,固定分片存在天然伸縮性差的特點。

2.動態分片,規定分片用戶數,當用戶數超過閾值時,增加一個新的分片,分片數量可以隨著用戶數增加而變化。

動態分片可以根據直播間人數自動生成分片,滿了就開辟新片,盡量使每個分片的用戶數達到閾值,但已有分片的用戶數量隨著用戶進出直播間變化,維護復雜度比較高。

直播間消息分發

直播間中有進出場消息、文本消息、禮物消息和公屏消息等多種多樣消息,消息的重要程度不一樣,可為每個消息設定相應的優先級。

不同優先級的消息放在不同的消息隊列中,高優先級的消息優先發送給客戶端,消息堆積超過限制時,丟棄最早、低優先級的消息。另外,直播間消息屬于實時性消息,用戶獲取歷史消息、離線消息的意義不大,消息采用讀擴散的方式存儲組織。直播間消息發送時,根據直播間成員分片通知對應的消息發送服務,再把消息分別下發給分片中對應的每一個用戶,為了實時、高效地把直播間消息下發給用戶,當用戶有多條未接收消息時,下發服務采用批量下發的方式將多條消息發送給用戶。

長連接的消息壓縮

在使用TCP長連接分發直播間消息的時候,也需要注意消息體的大小,如果某一個時刻,分發消息的數量比較大,或者同一個消息在做群播場景的時候,群播的用戶比較多,IM連接層的機房的出口帶寬就會成為消息分發的瓶頸。所以如何有效的控制每一個消息的大小,壓縮每一個消息的大小,是我們也需要思考的問題,我們目前通過兩種方式來來做相關消息體結構的優化:

  • 使用protobuf協議數據交換格式
  • 相同類型的消息進行合并發送

經過我們線上測試,使用protobuf數據交換格式,平均每一個消息節省43%的字節大小,可以大大幫助我們節省機房出口帶寬。

塊消息

所謂塊消息,也是我們借鑒其他直播平臺的技術方案,也就是多個消息進行合并發送,直播業務服務器不是產生一個消息就立馬調用IM長連接服務器集群直接進行消息的分發。主要思想,就是以直播間為維度,每隔1s或者2s,以勻速的時間間隔將在這個時間段業務系統產生的消息進行分發。

每秒分發1020個消息,如果每秒中,業務服務器積累到的消息大于1020個,那就按照消息的優先級進行丟棄,如果這10~20個消息的優先級都比較高,例如都是禮物類型的消息,則將消息放在后一個消息塊進行發送,這樣做的好處有如下三個;

  • 合并消息,可以減少傳輸多余的消息頭,多個消息一起發送,在自定義的TCP傳輸協議中,可以共用消息頭,進一步減少消息字節數大小;
  • 防止出現消息風暴,直播業務服務器可以很方便的控制消息分發的速度,不會無限制的分發消息到直播客戶端,客戶端無法處理如此多的消息;
  • 友好的用戶體驗,直播間的消息因為流速正常,渲染的節奏比較均勻,會帶來很好的用戶直播體驗,整個直播效果會很流暢

3.3、消息丟棄

不管是http短輪詢還是長連接,在高熱度值直播間出現的時候,都會存在消息丟棄的情況,例如在游戲直播中,有出現比較精彩瞬間的時候,評論公屏數會瞬間增加,同時送低價值的禮物的消息也會瞬間增加很多,用來表示對自己選手精彩操作的支持,那么服務器通過IM長連接或者http短輪詢每秒分發的消息數就會數千或者上萬,一瞬間的消息突增,會導致客戶端出現如下幾個問題;

  • 客戶端通過長連接獲取的消息突增,下行帶寬壓力突增,其他業務可能會受到影響(例如禮物的svga無法及時下載播放);
  • 客戶端無法快速處理渲染如此多的禮物和公屏消息,CPU壓力突增,音視頻處理也會受到影響;
  • 因消息存在積壓,導致會展示過期已久消息的可能,用戶體驗(QoE)指標會下降。

所以,因為這些原因,消息是存在丟棄的必要的,舉一個簡單的例子,禮物的優先級一定是高于公屏消息的,PK進度條的消息一定是高于全網廣播類消息的,高價值禮物的消息又高于低價值禮物的消息。

根據這些業務理論,我們在真實代碼開發中,可以做如下的控制:

結合具體業務特點,給各個業務類型的消息劃分出不同等級,在消息分發觸發流控的時候,根據消息優先級選擇性丟棄低優先級消息。

消息結構體新增創建時間和發送時間兩個字段,在實際調用長連接通道的時候,需要判斷當前時間與消息的創建時間是夠間隔過大,如果過大,則直接丟棄消息。

增益消息(糾正消息),在業務開發中,消息的設計中,盡量地去設計增益消息,增益消息指的是后續到達的消息能夠包含前續到達的消息,舉例來說,9點10的消息,主播A和主播B的PK值是20比10,那么9點11分分發的PK消息值就是22比10,而不能分發增量消息2:0,希望客戶端做PK條的累加(20+2 :10+0),但是存在消息因為網絡顫抖或者前置消息丟棄,導致消息丟棄,所以分發增益消息或者糾正消息會能夠幫助業務重新恢復正常。

四、寫在最后

任何一個直播系統,隨著業務的發展和直播間人氣不斷的增加,消息系統遇到的問題和挑戰也會隨之而來,不管是長連接的消息風暴,還是海量http短輪詢的請求,都會導致服務器壓力的劇增,都是我們需要不斷解決和優化的。我們要針對每一個時期的業務特點,做直播消息的持續升級,做可演進的消息模塊,確保消息分發的能力能夠確保業務的持續發展。

vivo直播消息模塊也是逐步演進的,演進的動力主要來自于因為業務的發展,隨著業務形態的多樣化,觀看的用戶數越來越多,系統的功能也會逐步增多,也會遇到各種性能瓶頸,為了解決實際遇到的性能問題,會逐一進行代碼分析,接口性能瓶頸的分析,然后給出對應的解決方案或者解耦方案,消息模塊也不例外,希望這篇文章能夠給大家帶來相關直播消息模塊的設計啟發。

以上就是詳解玩轉直播系列之消息模塊演進的詳細內容,更多關于直播消息模塊演進的資料請關注腳本之家其它相關文章!

您可能感興趣的文章:
  • jQuery+ThinkPHP+Ajax實現即時消息提醒功能實例代碼
  • C# 調用騰訊即時通信 IM的示例
  • java實現即時通信的完整步驟分享
  • Android實現聊天記錄上傳本地服務器(即時通訊)
  • python實現b站直播自動發送彈幕功能
  • php和騰訊直播的實現代碼
  • 詳解阿里云視頻直播PHP-SDK接入教程
  • 2分鐘實現一個Vue實時直播系統的示例代碼

標簽:吐魯番 重慶 欽州 汕頭 銅川 梅河口 蘭州 雞西

巨人網絡通訊聲明:本文標題《詳解玩轉直播系列之消息模塊演進》,本文關鍵詞  詳解,玩轉,直播,系列,之,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《詳解玩轉直播系列之消息模塊演進》相關的同類信息!
  • 本頁收集關于詳解玩轉直播系列之消息模塊演進的相關信息資訊供網民參考!
  • 推薦文章
    亚洲精华国产精华精华液网站| 无码精品a∨在线观看中文| 国产男人精品视频| 亚洲夜晚福利在线观看| 欧美精品v日韩精品v韩国精品v| 成人av手机在线| 欧美国产精品一二三| 九九九在线观看视频| av免费观看大全| 久久99精品久久久久久秒播放器 | 可以直接看的黄色网址| 一边摸一边做爽的视频17国产 | 这里只有久久精品视频| 东方伊人免费在线观看| 9.1成人看片| 国产成人av片| 中文文字幕文字幕高清| av中文字幕网址| 九热视频在线观看| 青青草精品视频在线观看| 国产精品色在线| 大胆欧美熟妇xx| 成人国产精品日本在线| 日韩一区二区三区国产| 日韩午夜中文字幕| 欧美一区二区三区四区视频| 欧美性xxxxx极品| 狠狠久久亚洲欧美专区| 夜夜亚洲天天久久| 亚洲国产裸拍裸体视频在线观看乱了 | 久艹在线观看视频| 希岛爱理中文字幕| 久久高清免费视频| 综合久久中文字幕| 中文字幕第99页| 国产男男gay网站| 天堂av资源在线| 国内成人精品2018免费看| fc2成人免费人成在线观看播放| 91日韩在线专区| 亚洲精品乱码久久久久久日本蜜臀| 日本一区二区三区高清不卡| 亚洲麻豆国产自偷在线| 91精品国产入口| 北条麻妃久久精品| 成人自拍性视频| 欧美不卡在线一区二区三区| 国产传媒久久久| 992kp免费看片| 水蜜桃av无码| 好看的av在线| 中文字幕av无码一区二区三区| 国产三级三级在线观看| 麻豆精品蜜桃视频网站| 亚洲午夜日本在线观看| 亚洲精品亚洲人成人网| 91精品国产综合久久国产大片| 亚洲欧美制服综合另类| 欧美风情在线观看| 97成人精品区在线播放| 六月婷婷久久| 久久国产激情视频| 欧美黑人猛猛猛| 日本三级午夜理伦三级三| 奇米四色…亚洲| 专区另类欧美日韩| 中文在线资源观看视频网站免费不卡| 国产精品免费一区| 欧美性猛交久久久乱大交小说| 国产精品99久久久久久成人| 天堂网在线观看视频| 亚洲精品视频在线看| 亚洲国产福利在线| 91在线国产电影| 大陆极品少妇内射aaaaa| 成年人免费观看视频网站 | 欧日韩在线视频| 波多野结衣中文一区| 欧美日韩亚洲精品一区二区三区| 精品香蕉一区二区三区| 成人精品网站在线观看| 你懂的av在线| 日韩 中文字幕| 性生活视频软件| 色综合天天综合网天天看片| 国产一区二区三区在线观看视频| 日韩在线电影一区| 五月天婷婷色综合| 日韩国产在线一| 欧美午夜精品久久久久久孕妇| 国产精品久久久av| 免费国偷自产拍精品视频| 国产精品久久久久毛片| 亚洲一区二区黄色| 国产日本欧美一区二区三区在线| 无码人妻一区二区三区免费n鬼沢 久久久无码人妻精品无码 | 久久久久国产精品免费网站| 国产av无码专区亚洲精品| 亚洲成人av网址| 婷婷国产v国产偷v亚洲高清| 国产日韩精品一区二区| 欧美激情aaa| 久久久高清一区二区三区| 久久久久久com| 亚洲欧美在线不卡| 91在线视频网址| 4438全国成人免费| 亚洲精品在线视频免费观看| 久久影院午夜论| 国产精品福利小视频| 2019男人天堂| 亚洲黄色录像片| 成人a在线视频| 国产精品1区2区3区4区| 国产精品的网站| 国产麻豆日韩| 中文天堂在线播放| 日韩精品极品视频免费观看| 超碰av在线免费观看| 国产成人免费xxxxxxxx| 欧美性资源免费| 欧美 日韩 国产 一区二区三区| 图片区小说区区亚洲影院| 亚洲一区精品视频| 污视频软件在线观看| 久久久999国产精品| 欧美日韩中文字幕视频| 一本久久精品一区二区| 成人黄色片免费| 国产精品99久久久| 国产日韩欧美在线播放| 91在线精品入口| 欧美激情一区二区久久久| 蜜桃av免费观看| 51久久夜色精品国产麻豆| 亚欧激情乱码久久久久久久久| 91亚洲精华国产精华精华液| 欧美13一14另类| 国产一区二区不卡在线| 国产欧美一区二区在线播放| 亚洲人午夜射精精品日韩| 国产精品高精视频免费| va婷婷在线免费观看| 性色av一区二区三区免费| 国产精品无码粉嫩小泬| 97超碰国产精品| 91视频xxxx| 丰满爆乳一区二区三区| 亚洲一区二区成人在线观看| 91插插插影院| 91精品国产乱| 亚洲第一页av| 亚洲爱爱爱爱爱| 国产做受高潮漫动| 欧美亚洲一区在线| 久热国产精品| 午夜精品一区二区在线观看 | 久久综合久久88| 可以免费观看的毛片| 国产精品二区三区四区| 97久久超碰精品国产| 日本一本二本在线观看| 欧美日韩免费一区二区三区| 欧美xxxooo| 97国产在线视频| 经典三级在线一区| 中文字幕欧美人与畜| 婷婷国产v国产偷v亚洲高清| 天天摸日日摸狠狠添| 欧美高清视频免费观看| 麻豆91精品视频| 好男人www社区| 亚洲三级黄色在线观看| 亚洲国产综合网| 一级黄色片播放| 欧美电影一区二区| 中文字幕+乱码+中文| 欧美日韩免费观看一区| 欧美日韩在线视频首页| 亚洲 欧美 变态 另类 综合| 国产专区欧美专区| 亚洲欧美电影院| 国产亚洲精品久久久久久无几年桃 | 欧美成人中文字幕| 99精品欧美一区二区蜜桃免费| 涩视频在线观看| 97在线视频一区| 91小视频免费看| 欧美三级视频网站| 97超级在线观看免费高清完整版电视剧| 亚洲少妇30p| 国产黄色激情视频| 精品久久久久久久久久久久久久久久久 | 欧洲在线视频一区| 6080国产精品一区二区| 无码精品人妻一区二区| 涩多多在线观看| 国产极品jizzhd欧美| 亚洲国产成人tv| 一级黄色片网站| av丝袜天堂网| 国产精品专区第二| 色综合久久中文综合久久97| 日韩有码第一页| 91av在线免费| 亚洲国产一区二区精品视频 | 成人精品一区二区三区电影黑人 | 久久99精品国产麻豆不卡| 男人的天堂影院| 久久涩涩网站| 亚洲午夜女主播在线直播| 久久久美女毛片| 一级aaaa毛片| 国产男男chinese网站| 亚洲国产日韩欧美| 久久久亚洲成人| 欧美色成人综合| 国产高清亚洲一区| 国产精品视频一区在线观看| 色婷婷.com| 狠狠色伊人亚洲综合网站色| 在线亚洲欧美视频| 亚洲成人免费视频| 东方aⅴ免费观看久久av| www.国产com| 精品国产一二区| 天天想你在线观看完整版电影免费 | 日本网站免费观看| 亚洲天堂2024| 大陆极品少妇内射aaaaaa| 97超碰色婷婷| 亚洲国产另类 国产精品国产免费| 久久亚洲二区三区| 日本国产在线观看| 久久免费小视频| 日本国产在线视频| 国产天堂视频在线观看| 精品91免费| 国产精品aaaa| 久久99精品久久久久久琪琪| 精品乱人伦小说| 色综合天天视频在线观看| 中文字幕乱码一区二区免费| 久久国产精品99久久久久久老狼| 一级片aaaa| 亚洲GV成人无码久久精品| 激情高潮到大叫狂喷水| 黄色在线免费播放| 深夜黄色小视频| 男女激情无遮挡| 久久久天堂国产精品| 久久国产精品久久精品国产| 91精品视频网站| 国产在线精品一区免费香蕉| 欧日韩不卡在线视频| 欧美激情日韩图片| 久久久国产精彩视频美女艺术照福利| 精品视频在线播放| 亚洲欧美制服丝袜| 日韩中文综合网| www日韩欧美| 欧美成人在线免费视频| 免费成人高清视频| 国内精品久久久久影院优 | 极品粉嫩美女露脸啪啪| 污污的视频免费| 国产一精品一aⅴ一免费| 四虎精品一区二区| 朝桐光av一区二区三区| 成人一级片免费看| 在线观看亚洲黄色| 亚洲人成无码www久久久| 国产传媒久久久| 777视频在线| 大桥未久恸哭の女教师| 亚洲欧美精品久久| 日韩精选在线观看| 天天操天天操天天| 国产成人一区二区精品非洲| 91影院在线免费观看| 亚洲国产精品一区二区www在线 | 亚洲综合激情五月| 手机在线看福利| 在线观看日韩精品视频| 国产精品18p| 亚洲免费成人在线| 99精品欧美一区二区三区小说| 亚洲另类一区二区| 欧美一级日韩免费不卡| 久久久精品国产亚洲| 91在线视频导航| 美女黄色免费看| 色婷婷av777| 一级久久久久久久| 91亚洲国产成人精品一区二区三 | 欧美精品二区三区四区免费看视频| 国产97在线 | 亚洲| 成年人网站免费在线观看| 中国a一片一级一片| 国v精品久久久网| 在线亚洲人成电影网站色www| 日韩在线视频导航| 精品欧美一区二区在线观看视频 | 欧美理论一区二区| 日韩在线一区视频| 天天做天天爱夜夜爽| 国产精品主播直播| 欧美日韩一区二区在线观看 | 88av在线播放| 免费观看的毛片| 一区二区三区不卡视频在线观看| 国产一区二区三区在线视频| 黄色91av| 日韩网站在线播放| 日韩高清不卡一区二区三区| 午夜精品久久久久久久久久久| 色av吧综合网| 黄色特一级视频| 日韩av在线电影| 国产亚洲人成网站| 国产一区二区三区三区在线观看| 日本电影一区二区三区| 97在线观看免费视频| 精品综合久久久久久8888| 欧美裸体一区二区三区| 51精品国产人成在线观看| 亚洲图片综合网| 免费在线欧美视频| 亚洲第一页自拍| 中文字幕av久久| 久久精品视频2| 日韩欧美在线第一页| 91亚洲一区精品| a毛片毛片av永久免费| 成人动漫一区二区三区| 欧美另类在线播放| www.国产福利| 精品亚洲成av人在线观看| 亚洲新声在线观看| 欧美男女交配视频| 老司机午夜精品| 亚洲人成电影网| 中文字幕永久有效| 国产91富婆露脸刺激对白| 欧美成人精品激情在线观看 | 日韩在线视频观看正片免费网站| 亚洲五月天综合| 国产麻豆日韩欧美久久| 日韩在线观看网站| 岛国av免费观看| 国产亚洲欧美在线| 成人激情av在线| 欧美黑人一区二区| 亚洲国产欧美一区二区三区同亚洲 | 99久久免费精品高清特色大片| 欧美综合激情网| 男女羞羞免费视频| 欧美美女激情18p| 国产精品宾馆在线精品酒店| 青青草97国产精品免费观看无弹窗版| 久久精品国产99国产精品澳门 | 国产中年熟女高潮大集合| 成人在线视频首页| 亚洲va电影大全| 国产精品无码一区二区桃花视频| 日韩精品久久久久久久玫瑰园| 久久久久久国产精品日本| 国产欧美精品区一区二区三区| 久久久com| 麻豆国产精品777777在线| 国产精品热视频| 在线视频播放大全| 免费不卡欧美自拍视频| 青青操免费在线视频| 国产一区二区三区在线| 99热精品免费| 亚洲女人天堂视频| 国产尤物在线播放| 亚洲欧美精品一区| 青青草偷拍视频| 日日摸夜夜添一区| 一区二区三区福利视频| 久久成人亚洲精品| 中文字幕人妻丝袜乱一区三区| 欧美日韩福利在线观看| 日本少妇性生活| 欧美大片免费看| 一卡二卡三卡在线观看| 97视频在线观看网址| 亚洲永久精品视频| 国产精品日韩一区| 久久精品国产亚洲高清剧情介绍 | 加勒比海盗1在线观看免费国语版| 久久精子c满五个校花| 亚洲人精品午夜射精日韩 | 国产精品一区在线观看| 国产成人日日夜夜| 男人日女人的bb| 欧美日韩美女视频| 午夜理伦三级做爰电影| 日韩精品极品在线观看播放免费视频| 欧美精品色哟哟| 欧美激情一区二区三区在线视频观看 | 亚洲成人第一页| 蜜桃无码一区二区三区| 色偷偷av一区二区三区乱| 狠狠躁日日躁夜夜躁av| 婷婷视频在线播放| 日本高清视频一区二区| 日韩三级在线观看视频|