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

彈幕系統(tǒng)更新的血與淚

移動(dòng)開(kāi)發(fā)
16年是直播浪潮興起的元年,許多互聯(lián)網(wǎng)公司的業(yè)務(wù)都開(kāi)始涉足直播內(nèi)容模塊。我目前所在公司接手的第一份工作,就是直播業(yè)務(wù)中的彈幕系統(tǒng)優(yōu)化。隨著公司直播業(yè)務(wù)的變化,彈幕系統(tǒng)從最初的版本到后來(lái)優(yōu)化了三四個(gè)版本,這個(gè)過(guò)程大概持續(xù)了一年的時(shí)間,本文將從我司早期的彈幕系統(tǒng)開(kāi)始給大家介紹整個(gè)更新過(guò)程的“血與淚 ”。

16年是直播浪潮興起的元年,許多互聯(lián)網(wǎng)公司的業(yè)務(wù)都開(kāi)始涉足直播內(nèi)容模塊。我目前所在公司接手的***份工作,就是直播業(yè)務(wù)中的彈幕系統(tǒng)優(yōu)化。隨著公司直播業(yè)務(wù)的變化,彈幕系統(tǒng)從最初的版本到后來(lái)優(yōu)化了三四個(gè)版本,這個(gè)過(guò)程大概持續(xù)了一年的時(shí)間,本文將從我司早期的彈幕系統(tǒng)開(kāi)始給大家介紹整個(gè)更新過(guò)程的“血與淚 ”。

早期彈幕系統(tǒng)

一、基本狀況

  1. 由PHP + Gateway框架編寫(xiě)
  2. 所有的Client ID存放在Redis里面
  3. 最初由三臺(tái)機(jī)器掛載在LVS系統(tǒng)后方提供服務(wù)
  4. 使用多進(jìn)程的方式,開(kāi)啟多個(gè)worker進(jìn)程來(lái)處理消息傳遞內(nèi)容

二、存在的問(wèn)題

  1. 內(nèi)存占用量巨大,單機(jī)(4核8G配置)承受500左右的Client就會(huì)達(dá)到內(nèi)存上限
  2. 每次發(fā)送消息的時(shí)候,每臺(tái)機(jī)器都需要從Redis里面拿取對(duì)應(yīng)房間的所有Client ID;并發(fā)高時(shí),Redis的單進(jìn)程處理效率和內(nèi)網(wǎng)帶寬就成為瓶頸 。
  3. 單機(jī)的并發(fā)處理能力被消息處理的worker進(jìn)程數(shù)量限制。同時(shí)開(kāi)啟過(guò)多的進(jìn)程,也是對(duì)系統(tǒng)資源的格外浪費(fèi)。
  4. 單房間超過(guò)2000人的時(shí)候,消息的延遲有可能會(huì)達(dá)到1分鐘左右,這是極其嚴(yán)重的問(wèn)題。

三、臨時(shí)改造

由于需要解決的問(wèn)題比較緊迫,所以快速做了一些邏輯上的改變和業(yè)務(wù)層面的取舍:

  1. 對(duì)Redis的實(shí)例進(jìn)行了拆分,使用了雙機(jī),單機(jī)4實(shí)例的方式,分散了Redis的壓力
  2. 對(duì)消息處理worker進(jìn)程的邏輯做了一些修改,限制了單位時(shí)間內(nèi)進(jìn)行廣播的消息數(shù)量,多余的消息會(huì)被丟棄 。
  3. 對(duì)于已經(jīng)完成了直播進(jìn)入點(diǎn)播狀態(tài)的房間,額外啟用了另外一套彈幕系統(tǒng)來(lái)進(jìn)行分流。
  4. 單個(gè)房間切成多個(gè)房間進(jìn)行消息處理。

四、改造之后的效果

  1. Redis壓力大幅度降低
  2. 單機(jī)IO性能壓力降低
  3. 同樣數(shù)量的機(jī)器,可以承載更多的直播房間個(gè)數(shù)

[[214239]]

但是,根本問(wèn)題并沒(méi)有得到解決。在臨時(shí)解決壓力問(wèn)題之后,我們需要花一些時(shí)間來(lái)重新對(duì)彈幕系統(tǒng)進(jìn)行分析,按照分析后的需求,對(duì)新的彈幕系統(tǒng)進(jìn)行重構(gòu)。

新的彈幕系統(tǒng)

一、新彈幕系統(tǒng)面臨的挑戰(zhàn)

  1. 單房間人數(shù)較高,依照我們公司直播情況,單房間5 – 10萬(wàn)人同時(shí)在線是會(huì)出現(xiàn)的。
  2. 由于直播內(nèi)容等情況造成的某時(shí)間段用戶(hù)暴漲。
  3. 需要盡可能實(shí)時(shí)到達(dá),延遲過(guò)高的話會(huì)大大降低互動(dòng)的實(shí)時(shí)性。
  4. 每一條消息,都要遞送大量的長(zhǎng)連接。
  5. 大量長(zhǎng)連接的維護(hù)機(jī)制。
  6. 在運(yùn)營(yíng)的過(guò)程中,需要處理用戶(hù)黑名單、IP黑名單、敏感詞等需求。

二、新的彈幕系統(tǒng)需求

  1. 由于內(nèi)存的管理對(duì)于PHP來(lái)說(shuō)算是一個(gè)短板,對(duì)于大并發(fā)且長(zhǎng)時(shí)間穩(wěn)定不需要經(jīng)常更新維護(hù)的系統(tǒng)來(lái)說(shuō),并非***的選擇,因此選一門(mén)合適的語(yǔ)言是必須的。
  2. 分布式支持,可以快速的橫向擴(kuò)展,單房間人數(shù)可以支持到十萬(wàn)級(jí)別。
  3. 可以方便快捷的對(duì)系統(tǒng)進(jìn)行第三方消息的發(fā)送(例如禮物信息、系統(tǒng)通知等)。
  4. 盡量使用本地內(nèi)存管理來(lái)記錄房間內(nèi)客戶(hù)端連接,剩下大量的數(shù)據(jù)交互和查詢(xún)時(shí)間。
  5. 并發(fā)支持消息廣播,提高廣播效率。

三、新彈幕系統(tǒng)版本的改造方法

  1. 選擇當(dāng)前正紅且對(duì)高并發(fā)支持良好的Golang作為開(kāi)發(fā)語(yǔ)言。
  2. 使用開(kāi)發(fā)語(yǔ)言進(jìn)行客戶(hù)端連接的管理,且每臺(tái)機(jī)器只管理自己收到的連接請(qǐng)求。
  3. 使用并發(fā)的房間內(nèi)廣播邏輯,同時(shí)對(duì)多人進(jìn)行廣播。

新彈幕系統(tǒng)改造的相關(guān)經(jīng)驗(yàn)

下面先對(duì)一個(gè)模塊細(xì)節(jié)進(jìn)行分析,然后進(jìn)一步分析模塊上層的調(diào)度邏輯。

一、房間管理

 

  1. type RoomInfo struct {  
  2. RoomID string //房間ID  
  3. Lock *sync.Mutex //房間操作鎖  
  4. Rows []*RowList //房間多行Slice  
  5. Length uint64 //當(dāng)前房間總節(jié)點(diǎn)數(shù)  
  6. LastChangeTime time.Time //***一次更新時(shí)間  
  7.  
  8. type RowList struct {  
  9. Nodes []*Node //節(jié)點(diǎn)列表  

由于每個(gè)房間都有自己的ID,客戶(hù)端建立連接之后,就會(huì)被放到一個(gè)大廳房間里面。接著,客戶(hù)端自己提交RoomID上來(lái),連接會(huì)被重新連接到對(duì)應(yīng)的房間里面。 每個(gè)連接在建立之后,都會(huì)被包裝成一個(gè)Node,放到Rows里面。

 

  1. type Node struct {  
  2. RoomID       string  
  3. ClientID     int64  
  4. Conn         *websocket.Conn  
  5. UpdateTime   time.Time  
  6. LastSendTime time.Time //***一次發(fā)送消息時(shí)間  
  7. IsAlive      bool  
  8. DisabledRead    bool//是否已經(jīng)被關(guān)閉了發(fā)言權(quán)限  

每一個(gè)Node中,都有一個(gè)IsAlive來(lái)表示連接是否成功。如果連接斷開(kāi),或者因?yàn)槠渌驈?qiáng)制停止服務(wù)的話,會(huì)修改此標(biāo)記狀態(tài)。然后由定時(shí)的處理機(jī)制將此連接關(guān)閉并從內(nèi)存中清除。 Rows的本質(zhì)就是一組事先設(shè)定了長(zhǎng)度的Node Slice。

發(fā)送消息的時(shí)候,每一組slice使用一個(gè)協(xié)程來(lái)順序發(fā)送。同一房間內(nèi)的連接,就可以依照slice分組進(jìn)行并發(fā)發(fā)送。 發(fā)送的時(shí)候,會(huì)使用鎖將整個(gè)房間鎖住,以防止并發(fā)情況下同一連接混入兩條信息。

二、消息管理

 

  1. var messageChannel map[string]chan nodeMessage  
  2. func init() {  
  3. messageChannel = make(map[string]chan nodeMessage)  
  4.  
  5. func sendMessageToChannel(roomId string, nm nodeMessage) error {  
  6. //如果房間不存在,創(chuàng)建一個(gè)房間  
  7. if c, ok := messageChannel[roomId]; ok {  
  8.  
  9. else {  
  10. //創(chuàng)建房間通道  
  11. messageChannel[roomId] = make(chan nodeMessage, 1024)  
  12. messageChannel[roomId]  
  13. //創(chuàng)建房間實(shí)例  
  14. roomObj := &RoomInfo{}  
  15. roomObj.RoomID = roomId  
  16. roomObj.Rows = make([]*RowList, 0, 4)  
  17. roomObj.Lock = &sync.Mutex{}  
  18. //創(chuàng)建新的協(xié)程來(lái)監(jiān)控房間  
  19. go daemonReciver(messageChannel[roomId], roomObj)  
  20. go timerForClean(messageChannel[roomId])  
  21. //如果是大廳的話,啟動(dòng)大廳清理協(xié)程  
  22. if roomId == "" {  
  23. go CleanHall(roomObj)  
  24.  
  25.  
  26. return nil  

以上是關(guān)于彈幕信息傳遞的一部分代碼。 首先,每一個(gè)房間,都有自己的消息通道,所有的這些通道根據(jù)RoomID為key,記錄在一個(gè)叫做messageChannel的map里面。 每次收到消息的時(shí)候,都直接把消息丟到channel里面,就可以了。(后面由守護(hù)協(xié)程來(lái)處理)如果沒(méi)有房間通道的話,就建立房間的通道channel,并啟動(dòng)每個(gè)房間的一系列協(xié)程。

三、服務(wù)器管理

這里的方案比較簡(jiǎn)單,其實(shí)就是建立一個(gè)上一層的聊天室即一個(gè)房間,所有的服務(wù)器都會(huì)主動(dòng)連接到這里,每一個(gè)服務(wù)器收到的信息,就會(huì)在這個(gè)房間里面廣播到別的機(jī)器去。

四、守護(hù)協(xié)程們管理

守護(hù)協(xié)程處理很多瑣碎的事情,保證房間內(nèi)信息的正常分發(fā)以及房間連接的正常管理。各個(gè)守護(hù)協(xié)程的功能如下:

  1. 消息發(fā)送協(xié)程:每個(gè)房間配備一個(gè),從channel里面獲取到要發(fā)送到本房間的消息,然后在并發(fā)調(diào)用各個(gè)RowList的發(fā)送消息機(jī)制。
  2. 房間整理協(xié)程 :因?yàn)闀?huì)有連接斷開(kāi)、房間更換等修改Node狀態(tài)的行為,所以定期會(huì)有房間整理協(xié)程來(lái)進(jìn)行節(jié)點(diǎn)整理,刪除當(dāng)前房間無(wú)關(guān)的節(jié)點(diǎn)等以提高消息的發(fā)送效率。

[[214240]]

五、測(cè)試相關(guān)

  • 運(yùn)行環(huán)境:云主機(jī)8核16G實(shí)例
  • 操作系統(tǒng):Centos7(未進(jìn)行系統(tǒng)優(yōu)化或參數(shù)調(diào)整)
  • 測(cè)試內(nèi)容:?jiǎn)螜C(jī)建立15000 websocket連接,并且發(fā)送消息,進(jìn)入指定房間(所有連接進(jìn)入同一房間)。一個(gè)客戶(hù)端進(jìn)入房間,發(fā)送一條消息,經(jīng)過(guò)敏感詞處理、IP和用戶(hù)黑名單處理,然后被廣播到所有節(jié)點(diǎn)。

測(cè)試結(jié)果:

  • CPU占用:保持在5%以下
  • 內(nèi)存占用:2GB(包括操作系統(tǒng)本身開(kāi)銷(xiāo))
  • 網(wǎng)絡(luò)占用:峰值10Mb/s左右
  • 發(fā)送效率:15000節(jié)點(diǎn)廣播,100ms – 110ms左右。

根據(jù)測(cè)試結(jié)果計(jì)算:

完全可以在8核16G的機(jī)器上,實(shí)現(xiàn)無(wú)壓力運(yùn)行50K并發(fā),峰值接近60 – 70K的處理能力。

六、更多分享

我目前正在嘗試把完成這套彈幕系統(tǒng)的基本功能開(kāi)源出來(lái)。已經(jīng)提取出來(lái)了一部分,當(dāng)前的地址為:https://github.com/logan-go/roomManager,感興趣的讀者可以通過(guò)鏈接查看。

小結(jié)

彈幕系統(tǒng)給視頻直播/點(diǎn)播增加了更多內(nèi)容的互動(dòng)娛樂(lè)性質(zhì),從最初的A站B站發(fā)展到現(xiàn)在各主流視頻網(wǎng)站APP。如何健康高效的管理彈幕系統(tǒng),也是當(dāng)下視頻行業(yè)需要重視的一門(mén)技術(shù)活。

責(zé)任編輯:未麗燕 來(lái)源: U刻
相關(guān)推薦

2017-12-20 12:32:26

彈幕系統(tǒng)更新

2014-08-01 14:32:29

創(chuàng)業(yè)90后創(chuàng)業(yè)

2018-04-11 15:42:04

開(kāi)源項(xiàng)目姿勢(shì)

2012-12-24 09:18:22

iOSUnity3D

2017-05-11 22:43:53

2025-06-16 04:00:00

Spring彈幕技術(shù)

2025-06-16 01:00:00

彈幕系統(tǒng)架構(gòu)

2015-07-16 12:37:28

彈幕

2011-01-14 16:51:44

Linux內(nèi)核

2019-01-02 16:47:46

Golang彈幕

2019-01-02 16:38:37

Golang彈幕

2019-01-02 16:50:30

Golang彈幕

2019-11-20 18:47:26

物聯(lián)網(wǎng)OTA軟件

2025-08-15 07:36:48

彈幕系統(tǒng)Spring

2010-04-28 15:38:54

2010-12-23 14:17:14

Web 2.0

2023-01-04 09:29:03

線程業(yè)務(wù)代碼

2019-03-29 09:01:39

彈幕微博Python

2018-05-08 09:00:00

系統(tǒng)更新
點(diǎn)贊
收藏

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

台湾亚洲精品一区二区tv| 国产蜜臀在线| 国产一区二区三区美女| 美女福利精品视频| 熟女人妻在线视频| 四虎国产精品永久在线国在线| 一区二区三区四区av| 欧美日韩三区四区| av资源免费看| 久久综合九色| 欧美日韩国产第一页| 久久视频精品在线观看| 九色丨蝌蚪丨成人| 欧美日韩国产高清一区二区| 久久国产精品网| 欧美日韩在线看片| 91免费版在线看| 97超碰在线播放| 亚洲中文无码av在线| 亚洲福利免费| 欧美老女人在线视频| 国产123在线| 韩国女主播一区二区三区| 欧美日韩综合视频| www.好吊操| 久草资源在线观看| 欧美高清在线精品一区| 国产精品免费一区二区三区四区 | 亚洲成人av中文| 亚洲国产一区在线| 免费av在线电影| 成人的网站免费观看| 亚洲aaa激情| 中日韩在线观看视频| 久久精品一区二区三区中文字幕| 久久久噜噜噜久久久| 欧美国产日韩在线观看成人 | 亚洲人成网站777色婷婷| 成人欧美精品一区二区| 精品精品视频| 91精品国产一区二区人妖| 亚洲最大成人在线观看| 玛雅亚洲电影| 日本韩国欧美在线| jizz欧美激情18| 日韩一区二区三区免费| 色乱码一区二区三区88| 能在线观看的av| 天堂在线中文网官网| 亚洲国产va精品久久久不卡综合| 国产一级大片免费看| 怡红院av在线| 亚洲一区在线电影| 日韩av高清在线看片| www在线看| 午夜精品免费在线观看| 亚洲人成无码网站久久99热国产 | 国产精品欧美一区二区| 波多野结衣毛片| 青青国产91久久久久久| 国产精品aaaa| 中文字幕一区二区在线视频| 看国产成人h片视频| 国产在线精品一区免费香蕉| 国产精品自拍电影| 国产成都精品91一区二区三| 国产一区精品在线| 可以在线观看的黄色| 国产日韩av一区| 亚洲综合网中心| 色老头在线观看| 天天综合网 天天综合色| 国产精品动漫网站| 四虎精品永久免费| 日韩女优电影在线观看| 亚洲av无码一区二区三区网址 | 在线国产精品网| 在线中文免费视频| 狠狠色狠色综合曰曰| 国产成人精品视频ⅴa片软件竹菊| av成人在线看| 日韩欧美www| 在线国产视频一区| 牛牛国产精品| 日韩免费在线看| 国产精品久久久久精| 国产xxx精品视频大全| 欧美精品一区二区三区在线看午夜| 国产鲁鲁视频在线观看免费| 亚洲精品欧美在线| 国产极品粉嫩福利姬萌白酱| 久久夜夜久久| 亚洲国产高潮在线观看| 日本一二三不卡视频| 黄色亚洲精品| 国产精品精品久久久| 亚洲男女视频在线观看| 国产免费观看久久| 日本a在线免费观看| 青青在线精品| 亚洲欧美中文在线视频| 久久国产一级片| 免播放器亚洲一区| 韩国成人一区| av免费在线免费| 在线视频国内自拍亚洲视频| 少妇熟女视频一区二区三区| 日韩理论电影大全| 456国产精品| 丁香六月色婷婷| 国产精品全国免费观看高清| 黄色一级片播放| 亚洲综合网站| 久久久精品999| 成人午夜精品视频| 9久草视频在线视频精品| 亚洲欧美日韩不卡| www.成人在线视频| 亚洲人成电影网站色…| 精品无码久久久久久久久| 久久精品国产99国产| 欧美日韩一区二| av在线小说| 日韩欧美成人一区| 国产又黄又爽又无遮挡| 麻豆国产欧美日韩综合精品二区| 久久综合给合久久狠狠色| 黄网av在线| 欧美一级高清大全免费观看| 国产又粗又长又硬| 轻轻草成人在线| 日韩免费av一区二区三区| 性欧美18~19sex高清播放| 精品区一区二区| 久久国产一级片| 高潮精品一区videoshd| 少妇一晚三次一区二区三区| 豆花视频一区| 久久综合网hezyo| 国产绿帽刺激高潮对白| 自拍偷自拍亚洲精品播放| 亚洲激情在线看| 亚洲精品电影| 91免费看蜜桃| 久久久免费看| 理论片午午伦夜理片在线播放| 欧洲国内综合视频| 日本高清黄色片| 日本中文在线一区| 亚洲欧洲久久| 91国产精品| 久久99视频免费| 精品人妻无码一区二区色欲产成人 | 久久亚洲影院| 日韩欧美亚洲日产国产| 日韩精品影院| 在线电影av不卡网址| 中文字幕在线观看免费| 亚洲色图20p| 99热这里只有精品2| 国内精品久久久久久久97牛牛| 国产成人免费观看| jk漫画禁漫成人入口| 国产一区二区三区在线看| 91成人一区二区三区| 亚洲欧美偷拍卡通变态| 男人女人拔萝卜视频| 亚洲天堂偷拍| 欧美日韩亚洲免费| 国产精品伦一区二区| 欧美黄色成人网| 三级在线视频| 欧美日韩在线播放三区四区| 午夜免费激情视频| 99久久免费视频.com| www.xxx亚洲| 国产精品成人a在线观看| aa日韩免费精品视频一| 日本在线啊啊| www.日韩av.com| 黄色av中文字幕| 欧美视频在线不卡| 麻豆亚洲av成人无码久久精品| 久久蜜桃一区二区| www.污污视频| 亚洲一区自拍| 在线观看免费黄色片| 欧洲亚洲一区二区三区| 成人黄色大片在线免费观看| 岛国av免费在线观看| 永久555www成人免费| 亚洲毛片欧洲毛片国产一品色| 91久久精品一区二区二区| www.av成人| 91视频观看免费| 久草福利在线观看| 日本亚洲天堂网| 国产素人在线观看| 久久久久午夜电影| 日本高清不卡一区二区三| 一区中文字幕电影| 国产日韩精品在线播放| 色是在线视频| 欧美人与性动交a欧美精品| 国产女主播在线直播| 精品国产一区二区三区不卡 | 国产盗摄精品一区二区酒店| 在线日韩av观看| 香蕉久久国产av一区二区| 欧美精品少妇一区二区三区| 亚洲视频 欧美视频| 亚洲国产成人高清精品| 岛国毛片在线观看| 国产精品久久三区| 丰满圆润老女人hd| av一区二区久久| 亚洲黄色小说在线观看| 精一区二区三区| 91极品视频在线观看| 欧美在线综合| 日韩 欧美 视频| 欧美91福利在线观看| 日本福利视频导航| 99久久亚洲精品蜜臀| 日韩亚洲不卡在线| 国产aⅴ精品一区二区三区久久| 成人综合色站| 亚洲国产视频二区| 亚洲综合国产精品| 99国内精品久久久久| 国产人妖伪娘一区91| 91天天综合| 国产精品久久久久久久久影视| 日韩脚交footjobhdboots| 午夜精品一区二区三区在线播放| 日韩三级免费| 欧美激情精品在线| 青春草视频在线观看| 免费av一区二区| 国产视频在线播放| 精品中文字幕在线2019| 黄色网在线免费看| 另类少妇人与禽zozz0性伦| 男人和女人做事情在线视频网站免费观看| 在线精品高清中文字幕| 国产精品久久久久久久龚玥菲| 亚洲摸下面视频| 国产福利片在线| 在线精品播放av| 免费大片黄在线观看视频网站| 日韩在线播放一区| 26uuu亚洲电影在线观看| 九色精品免费永久在线| 久久青青色综合| 777午夜精品福利在线观看| 在线手机中文字幕| 国产精品久久久999| 日韩综合久久| av免费精品一区二区三区| 欧美精品国产白浆久久久久| 欧美精品欧美精品系列c| 日韩精品电影| 天堂а√在线中文在线| 激情视频一区二区三区| 国产主播在线看| 美女一区二区久久| 污污的网站免费| 国产99久久久国产精品潘金| 特大黑人巨人吊xxxx| 亚洲国产成人私人影院tom| 伊人久久久久久久久久久久久久| 亚洲黄色尤物视频| av大全在线观看| 欧美日韩一区二区三区在线| 精品国产无码一区二区三区| 亚洲国产女人aaa毛片在线| 国产在线视频网| 九九热这里只有在线精品视| 小早川怜子影音先锋在线观看| 国产裸体写真av一区二区| 香蕉成人app| 欧美日韩另类综合| 欧美 日韩 国产一区二区在线视频 | www 日韩| 久久久噜噜噜久久中文字免| 忘忧草在线www成人影院| 999视频在线观看| 伊人久久综合影院| 99热这里只有精品免费| 日韩激情一二三区| 国产亚洲精品成人a| 中文字幕免费不卡| 国产无遮挡又黄又爽又色| 在线欧美日韩精品| 蜜桃av中文字幕| 日韩小视频网址| 成人免费影院| 国产成人精品免费视频大全最热| 欧美一级本道电影免费专区| 97视频在线免费| 精品一区精品二区高清| 中文字幕国产综合| 一区二区三区久久| 中文字幕在线观看欧美| 日韩精品欧美激情| 在线h片观看| 国产欧美最新羞羞视频在线观看| 欧美调教在线| 黄色片免费在线观看视频| 青青草国产精品97视觉盛宴| 成人手机在线免费视频| 一区二区三区日韩精品视频| 男人天堂视频网| 日韩精品中文字| 欧美78videosex性欧美| 国产原创欧美精品| 欧州一区二区| www.四虎成人| 9色porny自拍视频一区二区| 欧美日韩成人免费观看| 欧美精选午夜久久久乱码6080| 国产www.大片在线| 国产精品va在线播放| 美女福利一区| 国产在线播放观看| 高清shemale亚洲人妖| 午夜精品福利在线视频| 欧美狂野另类xxxxoooo| 成年人在线视频免费观看| 热re91久久精品国99热蜜臀| 老牛影视av一区二区在线观看| 超薄肉色丝袜足j调教99| 激情综合网最新| 卡通动漫亚洲综合| 欧美一区二区在线免费观看| 欧美激情午夜| 成人欧美在线视频| 天天射综合网视频| 成人av毛片在线观看| 中文字幕中文字幕一区| 亚洲图片在线播放| 日韩在线视频免费观看| 久久青草免费| 穿情趣内衣被c到高潮视频| 国产伦精品一区二区三区免费 | 狠狠躁18三区二区一区| 日本护士...精品国| 日本高清不卡在线| jizzjizz欧美69巨大| 欧美女同在线观看| 中文字幕综合网| 国产三级在线观看视频| 欧美成人高清视频| 国产成人精品亚洲线观看| 青青草成人免费在线视频| 91丨porny丨蝌蚪视频| 在线免费观看国产精品| 中文字幕日韩综合av| 99tv成人影院| 霍思燕三级露全乳照| 26uuuu精品一区二区| 国产男人搡女人免费视频| www亚洲欧美| 草草视频在线一区二区| 久久久999免费视频| 国产免费成人在线视频| 国产日韩欧美一区二区东京热 | 精品国模一区二区三区| 亚洲欧美日韩在线综合| 国产精品一二一区| 国产网站在线看| 伊人久久综合97精品| 欧美久久一区二区三区| 欧洲黄色一级视频| 国产精品三级视频| 精品人妻一区二区三区日产乱码 | 香港三级日本三级a视频| 99re热视频这里只精品 | 日韩午夜在线观看视频| а√天堂中文在线资源8| 污视频在线免费观看一区二区三区| 国产真实乱对白精彩久久| 日干夜干天天干| 中文字幕9999| 成人自拍在线| 日本 片 成人 在线| 亚洲国产综合色| 最新av网站在线观看 | 亚洲在线观看网站| 欧美午夜女人视频在线| 国产高清一区二区三区视频| 蜜桃av久久久亚洲精品| 黄网站免费久久| 日韩在线视频不卡| 欧美日本亚洲视频| 欧美性感美女一区二区| 污污内射在线观看一区二区少妇 | 手机亚洲第一页| 亚洲自拍欧美另类| 天堂精品中文字幕在线|