精品欧美一区二区三区在线观看 _久久久久国色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)

日本不卡视频一区二区| 欧美福利视频一区二区| www.欧美| 亚洲综合区在线| 精品在线观看一区二区| 91丨九色丨海角社区| 婷婷综合网站| 日韩成人av一区| 日本xxxx黄色| 丰满的护士2在线观看高清| 久久综合九色综合97婷婷女人 | 乱色588欧美| 在线观看国产一区二区三区| 欧美破处大片在线视频| 亚洲欧洲在线免费| 深夜福利网站在线观看| 日韩新的三级电影| 亚洲一区二区高清| 亚洲欧美日韩国产yyy | 成人动漫中文字幕| 国产精品久久久久久久久| 国产乱国产乱老熟300| 亚洲人和日本人hd| 99国产精品一区| 国产欧美在线看| 亚洲免费在线观看av| 一区二区免费不卡在线| 亚洲色图欧美制服丝袜另类第一页 | 视频一区二区三区不卡 | 91中文字幕永久在线| 精品视频在线观看免费观看 | 欧美精品videos另类日本| 精品无码国产污污污免费网站| 亚洲一区二区免费在线观看| 国产精品系列在线| 久久久99爱| 亚洲精品视频91| 精品一区精品二区高清| 国产精品91久久| 日韩三级视频在线| 欧美午夜不卡影院在线观看完整版免费| 永久免费看mv网站入口亚洲| 日本黄色录像片| 蜜桃精品视频| 91精品国产一区二区三区| 热久久精品免费视频| 性xxxxfreexxxxx欧美丶| 亚洲午夜av在线| 97av中文字幕| 污污的网站在线免费观看| 自拍偷拍国产精品| 成人三级在线| 国产高清免费av| 国产麻豆一精品一av一免费| 成人久久精品视频| 国产又粗又猛又爽| 久久www免费人成看片高清| 国产精品夫妻激情| 国产成人a v| 蜜臀av一区二区三区| 国产精品看片资源| 中文字幕在线播放日韩| 免费人成黄页网站在线一区二区| 国产精品久久久久久亚洲影视| 免费的毛片视频| 久久国产成人精品| 日韩在线免费视频| www.99re6| 五月婷婷六月综合| 欧美裸体男粗大视频在线观看| 国产男女猛烈无遮挡在线喷水| 99热国内精品永久免费观看| 日韩中文字幕亚洲| 免费人成视频在线| 亚洲国产午夜| 91精品国产高清久久久久久91| 日日摸天天添天天添破| 日韩国产精品久久久久久亚洲| 国产精品男人的天堂| 国产精品久久婷婷| 国产99久久久国产精品| 美女被啪啪一区二区| 国产二区视频在线观看| 中文字幕视频一区| 久草免费福利在线| 在线视频超级| 精品视频在线视频| 午夜诱惑痒痒网| 97人妻一区二区精品免费视频| 日本欧美电影在线观看| 一区二区三区在线免费观看| 999一区二区三区| 国产色播av在线| 成人永久看片免费视频天堂| 国产专区一区二区| 国产美女性感在线观看懂色av| 国产精品视频你懂的| 精品国产一区二区三区在线| 欧美aa一级| 欧美日韩高清影院| 国产麻豆xxxvideo实拍| 日韩一区自拍| 7777免费精品视频| 国产又大又黄的视频| 99视频精品免费视频| 亚洲精品免费网站| 四虎在线免费看| 国产精品乱码一区二区三区软件| 久久这里只有精品8| 校园春色亚洲色图| 精品三级在线观看| 天堂av8在线| 国产综合色区在线观看| 3d动漫精品啪啪| 男生草女生视频| 欧美精品导航| 国产啪精品视频网站| 日本精品一二区| 亚洲精品v日韩精品| 九九视频精品在线观看| 悠悠资源网亚洲青| 欧美一级黄色录像| 九色91porny| 精品国产一区二区三区久久久樱花 | 一区二区三区资源| 九热视频在线观看| 婷婷精品在线观看| 欧美成人在线网站| 亚洲一区二区色| 国产亚洲成aⅴ人片在线观看| av日韩一区二区三区| 金瓶狂野欧美性猛交xxxx| 一区二区三区欧美| 欧美日韩一区二区三区69堂| 国产一区二区三区电影在线观看| 久久久久亚洲精品| www.超碰在线.com| 亚洲欧洲国产专区| 中文字幕 日韩 欧美| 成人精品影视| 国产精品久久久久久中文字 | 最近日韩中文字幕中文| 日韩精品在线免费视频| 成人晚上爱看视频| 欧美亚洲色图视频| 国产精品午夜av| 欧美精品videossex性护士| 成人福利小视频| 一区二区三区欧美日| 肉丝美足丝袜一区二区三区四| 888久久久| 亚洲自拍偷拍一区| 性网站在线观看| 日韩免费视频一区| 国产一级片播放| 国产欧美不卡| 国产精品一国产精品最新章节| av福利精品| 在线精品视频免费观看| 在线国产视频一区| 亚洲在线黄色| 日本一区免费观看| 国产精品一二三区视频| 精品美女国产在线| 玖草视频在线观看| 亚洲制服少妇| 欧美成人免费在线| 三级成人黄色影院| 亚洲另类图片色| 免费观看一区二区三区毛片| 91丨九色丨蝌蚪丨老版| 亚洲熟妇av一区二区三区漫画| 农村少妇一区二区三区四区五区 | 欧美亚洲爱爱另类综合| 松下纱荣子在线观看| 日韩av一区二区在线| 欧美成人精品欧美一级乱黄| 91年精品国产| 三上悠亚av一区二区三区| 四虎8848精品成人免费网站| 成人国内精品久久久久一区| 国产精品久久麻豆| 在线观看av一区二区| 久久精品黄色片| 亚洲久久在线| 久久久水蜜桃| 精品免费av一区二区三区| 少妇精69xxtheporn| 超碰在线播放97| 欧美日韩亚洲网| 手机av在线网站| 欧美精品1区| 日本精品一区二区三区高清 久久 日本精品一区二区三区不卡无字幕 | 成人网欧美在线视频| av在线网址观看| 精品国产三级a在线观看| 欧美高清视频一区二区三区| 久久尤物电影视频在线观看| 欧美日韩在线观看不卡| 欧美日韩网站| 欧美精品v日韩精品v国产精品| av日韩在线免费观看| 久久久免费av| aaa在线观看| 日韩视频中午一区| 欧产日产国产69| 亚洲精品久久久蜜桃| 爱爱的免费视频| 久久精品99国产精品日本| 91九色丨porny丨国产jk| 亚洲bt欧美bt精品777| 成人h猎奇视频网站| 手机在线观看av网站| 日韩中文字幕网址| 三级在线电影| 欧美一级在线观看| 在线免费看av的网站| 亚洲成av人片www| 欧美88888| ww久久中文字幕| 亚洲精品激情视频| 麻豆极品一区二区三区| 1024av视频| 欧美久色视频| 精品91一区二区三区| 一区三区在线欧| 99在线观看视频网站| 91精品影视| 日本电影亚洲天堂| 先锋成人av| 最近中文字幕日韩精品| 青青久草在线| 欧美mv日韩mv| a级片免费视频| 欧美视频在线播放| 国产精品久免费的黄网站| 亚洲午夜免费视频| 国产午夜手机精彩视频| 1024成人网| 亚洲一级黄色录像| 91蜜桃传媒精品久久久一区二区| 日本人妻一区二区三区| 国产成人超碰人人澡人人澡| 做a视频在线观看| 日韩精品1区2区3区| 国产毛片视频网站| 国产日韩一区二区三区在线播放| 三年中国中文在线观看免费播放| 91精品影视| 色综合老司机第九色激情| sm国产在线调教视频| 视频在线观看一区二区| 阿v免费在线观看| 日韩在线视频线视频免费网站| 国产尤物视频在线| 国产亚洲精品日韩| 久久精品a一级国产免视看成人| 亚洲欧美另类在线观看| 手机在线精品视频| 亚洲国产欧美日韩精品| 亚洲欧美一二三区| 日韩欧美有码在线| 国产精品51麻豆cm传媒| 在线免费精品视频| 久久影视中文字幕| 在线观看免费一区| 国产三级伦理片| 欧美一区二区网站| 亚洲第一成人av| 亚洲福利小视频| 中文字幕+乱码+中文字幕明步| 色综合久久久久久久久| 懂色av蜜臀av粉嫩av分享吧最新章节| 日韩欧美在线国产| 亚洲无码精品国产| 91.com视频| www.成人精品| 欧美一区二区视频免费观看| 亚洲爱情岛论坛永久| 亚洲国产高清高潮精品美女| 亚洲av成人无码网天堂| 亚洲欧美国产一区二区三区| lutube成人福利在线观看| 久久精品视频在线观看| 久草在线视频资源| 2019中文字幕免费视频| 蜜桃成人精品| 成人信息集中地欧美| 香港久久久电影| 日韩av一区二区三区美女毛片| 日韩av专区| 日本a级片在线播放| 欧美理论在线| 杨幂毛片午夜性生毛片 | 98精品久久久久久久| 17c丨国产丨精品视频| 亚洲大胆视频| 日本a√在线观看| 国产成人午夜高潮毛片| www.涩涩爱| 亚洲福利一区二区| 成人午夜精品视频| 精品国产一区二区三区忘忧草 | 都市激情国产精品| 成人福利免费观看| 天天躁日日躁成人字幕aⅴ| 亚洲精品高清国产一线久久| 日韩精品久久久久久久电影99爱| 欧美乱大交xxxxx潮喷l头像| 麻豆精品一区二区综合av| 黑人巨大猛交丰满少妇| 久久精品夜色噜噜亚洲a∨| 国产一二三四区| 色婷婷国产精品| 女人裸体性做爰全过| 中文字幕电影一区| 香蕉免费毛片视频| 欧美电影一区二区| 日本在线一二三| 欧美国产极速在线| av成人在线播放| 好吊色欧美一区二区三区视频| 欧美残忍xxxx极端| 黄色片在线免费| 99久久综合国产精品| 青青青在线免费观看| 欧美视频一区二区三区四区| 天堂在线视频观看| 欧美大码xxxx| 日韩护士脚交太爽了| 日本日本精品二区免费| 亚洲欧洲综合| 男插女视频网站| 亚洲欧美日韩小说| 这里只有精品免费视频| 日韩高清a**址| 欧美高清视频| 国产精品免费一区二区三区都可以 | 97偷自拍亚洲综合二区| 天天干在线影院| 久久亚洲综合av| 国内免费精品视频| 亚洲码在线观看| 黄色视屏在线免费观看| 99久久无色码| 亚洲人成毛片在线播放女女| 俄罗斯女人裸体性做爰| 亚洲人成精品久久久久久| 最新黄色网址在线观看| 日韩中文字幕网址| 精品久久在线| 国产在线视频91| 色吊丝一区二区| 欧美日韩在线一| 成人午夜精品在线| 免费麻豆国产一区二区三区四区| 91精品麻豆日日躁夜夜躁| jizz在线观看视频| 国产精品第二页| 日本高清免费电影一区| 久久精品99国产| 欧美国产精品v| 又骚又黄的视频| 亚洲欧美激情在线视频| 欧美精选视频一区二区| 日韩av电影在线观看| 热久久久久久久| 日本午夜在线观看| 日韩欧美成人一区| jizz一区二区三区| 欧美色图亚洲自拍| 免费在线观看一区二区三区| 久久久国产一级片| 日韩欧美一区中文| 国产美女高潮在线观看| 久久伊人一区| 精品一区二区三区香蕉蜜桃| 中文字幕第69页| 欧美一区二区视频在线观看2022 | 国产99久久九九精品无码| 国产亚洲一区二区三区| a片在线免费观看| 理论片在线不卡免费观看| 久久夜色精品国产噜噜av小说| 日韩av在线综合| 一区二区中文视频| 特黄视频在线观看| 97视频在线观看播放| 欧洲在线一区| 日本a√在线观看| 亚洲日本电影在线| 欧美欧美欧美| 成人在线激情视频| 一区在线视频观看| 一区二区三区伦理片| 777奇米四色成人影色区| 8x8ⅹ拨牐拨牐拨牐在线观看| 水蜜桃一区二区三区| 国产传媒日韩欧美成人| 久久人妻免费视频|