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

談?wù)勀澳盃幇栽跀?shù)據(jù)庫方面踩過的坑(mongoDB篇)

移動開發(fā) Android MongoDB
無論什么系統(tǒng),在對性能有要求的環(huán)境下,完全當(dāng)黑盒用都是不行的。游戲更是如此。上篇我就談過,我們絕對不可能把游戲里數(shù)據(jù)的變化全部扔到數(shù)據(jù)庫中去做。傳統(tǒng)數(shù)據(jù)庫并非為游戲設(shè)計的。

我們公司開始用 mongoDB 并不是因為開始的技術(shù)選型,而是我們代理的第一款游戲《 狂刃 》的開發(fā)商選擇了它。

這款游戲在我們代理協(xié)議簽訂后,就進(jìn)入了接近一年的共同開發(fā)期。期間發(fā)現(xiàn)了很多和數(shù)據(jù)庫相關(guān)的問題,迫使我們熟悉了 mongoDB 。在那個期間,我們搭建的運(yùn)營平臺自然也選擇了 mongoDB 作為數(shù)據(jù)庫,這樣維護(hù)人員就可以專心一種數(shù)據(jù)庫了。

經(jīng)過一些簡單的了解,我發(fā)現(xiàn)國內(nèi)很多游戲開發(fā)者都不約而同的采用了 mongoDB ,這是為什么呢?我的看法是這樣的:

游戲的需求多變,很難在一開始就把數(shù)據(jù)結(jié)構(gòu)設(shè)計清楚。而游戲領(lǐng)域的許多程序員的技術(shù)背景又和其他領(lǐng)域不同。

在設(shè)計游戲服務(wù)器前,他們更多的是在設(shè)計 游戲的客戶端:畫面、鍵盤鼠標(biāo)交互、UI 才是他們花精力最多的地方。對該怎么使用數(shù)據(jù)庫沒有太多了解。這個時候,出現(xiàn)了 mongoDB 這樣的 NOSQL 數(shù)據(jù)庫。mongoDB 是基于文檔的,不需要你設(shè)計數(shù)據(jù)表,和動態(tài)語言更容易結(jié)合。看起來很美好,你只需要把隨便一個結(jié)構(gòu)的數(shù)據(jù)對象往數(shù)據(jù)庫里一塞,然后就祈禱數(shù)據(jù)庫系統(tǒng)會為你搞定其它的事情。如果數(shù)據(jù)庫干的不錯,性能不夠,那是數(shù)據(jù)庫的責(zé)任,和我無關(guān)。看到那些評測數(shù)據(jù)又表明 mongoDB 的性能非常棒,似乎沒有什么可擔(dān)心的了。

其實無論什么系統(tǒng),在對性能有要求的環(huán)境下,完全當(dāng)黑盒用都是不行的。

游戲更是如此。上篇我就談過,我們絕對不可能把游戲里數(shù)據(jù)的變化全部扔到數(shù)據(jù)庫中去做。傳統(tǒng)數(shù)據(jù)庫并非為游戲設(shè)計的。

比如,你把一群玩家的坐標(biāo)同步到數(shù)據(jù)庫,能夠把具體某個玩家附近玩家列表查詢出來么?mongoDB 倒是提供了 geo 類型,可以用 near 或 within 指令查詢得到附近用戶。可他能滿足 10Hz 的更新頻率么?

我們可以把玩家的 buf 公式一一送入數(shù)據(jù)庫,然后修改一些屬性值,就可以查詢到通過 buf 運(yùn)算得到的結(jié)果么?

這類問題有很多,即使你能找到方法讓數(shù)據(jù)庫為你工作,那么性能也是堪憂的。當(dāng)我們能在特定的數(shù)據(jù)庫服務(wù)內(nèi)一一去解決她們,最終數(shù)據(jù)庫就是一個游戲服務(wù)器了。

狂刃這個項目在我們公司是負(fù)責(zé)平臺建設(shè)的蝸牛同學(xué)跟的。我從他那里聽來了許多錯誤使用 mongoDB 的趣聞。

一開始,整個數(shù)據(jù)庫完全沒有為查詢建索引。在沒什么數(shù)據(jù)的情況下,即使所有的查詢都是 O(N) 的,遍歷整個數(shù)據(jù)庫,也不會有問題。可想而知,用戶量一上來,性能會下降的多快。

然后,數(shù)據(jù)庫又被建立了大量的無用的索引,和一些錯誤的復(fù)合索引,同樣惡化了系統(tǒng)。感覺就是哪里似乎有點性能問題,那就是少了個索引的緣故。這種病 急亂投醫(yī)的現(xiàn)象,在項目開發(fā)后期很容易出現(xiàn)。其實解決方法很簡單:主導(dǎo)設(shè)計的人只要靜下心來好好想一想,數(shù)據(jù)庫系統(tǒng)其實也就是一個管理數(shù)據(jù)的封閉模塊。如 果你來管理這些數(shù)據(jù),怎樣的數(shù)據(jù)結(jié)構(gòu)更利于滿足特定的檢索,需要哪些索引數(shù)據(jù)輔助。

最終的問題依舊是算法和數(shù)據(jù)結(jié)構(gòu),不同的是,不需要你實現(xiàn)它,而需要你理解它。

另外,數(shù)據(jù)庫是被設(shè)計成可以并發(fā)訪問的,而并發(fā)永遠(yuǎn)是復(fù)雜的東西。mongoDB 缺乏事務(wù)操作,需要用文檔操作的原子性來模擬。這很容易被沒經(jīng)驗的人用錯(這是個怪圈,越是沒數(shù)據(jù)庫經(jīng)驗的人越喜歡 mongoDB ,因為限制少,看起來更自然。)。

狂刃出過這樣一個 bug :想讓用戶注冊的時候用戶名唯一,所以在用戶注冊的時候先查一下數(shù)據(jù)庫看用戶名是否存在,如果不存在就允許創(chuàng)建一個這個名字的用戶。可想而之,上線運(yùn)營不出一天,同名用戶就會出現(xiàn)了。

因為公司項目需要,我給 skynet 增加了 mongo driver 。老實說,實現(xiàn)這個 driver 的時候,我對 mongo 就興趣寥寥。最后只實現(xiàn)了最底層的通訊協(xié)議,光這個部分,它的協(xié)議設(shè)計就已經(jīng)是很難看的了。但是即使這樣,我也耐著性子把這部分做完,而不想使用現(xiàn)成的 driver 。

mongo 的官方 driver 都是內(nèi)置 socket 通訊模塊的。這種做法很難單獨(dú)把協(xié)議解析部分提取出來,附加到自己項目的 IO 模型中去。(btw, redis 這方面就好的多,因為它的協(xié)議足夠簡單,你可以用幾十行代碼就實現(xiàn)它的通訊協(xié)議,而不需要依賴 driver 模塊。)

狂刃服務(wù)器的 IO 采用的 boost.asio ,我很好奇他是怎樣把 mongoDB 官方 C++ driver 整合進(jìn)去的。不出所料,他們開了一個獨(dú)立線程處理 mongo 的數(shù)據(jù),然后把數(shù)據(jù)對象跨線程發(fā)出來。細(xì)究這個實現(xiàn)就能看出問題來。程序員很容易誤解 mongoDB client api 的內(nèi)在含義。

一開始,狂刃的開發(fā)同學(xué)以為從 mongo 中取到一組查詢結(jié)果后,調(diào)用 cursor 的 findnext 只在對象內(nèi)存中迭代,所有結(jié)果都是一開始一次性返回的。以為把一開始的 bson 對象從 mongo 線程轉(zhuǎn)移到主線程中就好了。可事實并不是這樣,mongo 一次只會返回一組查詢結(jié)果,當(dāng)結(jié)果迭代完時,findnext 還會自動提交新的查詢請求。這時,對象已經(jīng)不在原有的 mongo 線程中了。

學(xué)過 C++ 的同學(xué)可以想像一下,讓你去 code review 不是你參于的 C++ 項目去找到 bug 需要多少功夫?對了,你還要在想像中要加上被各種 boost.asio 回調(diào)函數(shù)拆得支離破碎的業(yè)務(wù)流程。所以去年有那么一段日子,我們需要完全停下手頭其他的工作,認(rèn)真的從頭閱讀那數(shù)以萬行計的 C++ 代碼。

老八卦別人似乎不太厚道,下面來談?wù)勎覀冏约悍傅腻e誤。

陌陌爭霸出的第一起服務(wù)器事故是在 2014 年一月中旬的一個周末。準(zhǔn)確說,這次算不上重大運(yùn)營事故,因為沒有玩家數(shù)據(jù)受損,也沒有意外停服。但卻是我們第一次發(fā)現(xiàn)早先設(shè)計中有考慮不足的地方。

1 月 12 日周日。下午 17 點左右,我們的 SA Aply 發(fā)現(xiàn)我們運(yùn)營用的 log 延遲了 3 個小時才到運(yùn)營平臺。但數(shù)據(jù)還是源源不斷的進(jìn)入,系統(tǒng)也很穩(wěn)定,就沒有特別深究。

到了晚上 20 點半,平臺組的劉陽報告說運(yùn)營數(shù)據(jù)已經(jīng)延遲了 5 個小時了,這才引起了大家的警覺。由于是周末,開發(fā)人員都回家休息了,曉靖 21 點上線檢查,這時發(fā)現(xiàn)游戲服務(wù)器內(nèi)存占用比平常同期高了 10G 之多,并在持續(xù)上升。

我大約是在 21 點接到電話的,在電話中討論分析了一下,覺得是 log 數(shù)據(jù)從 skynet 的 log 服務(wù)發(fā)走,可能被積壓在 socket server 的一個鏈表上。這段代碼并不復(fù)雜,插入新的寫入數(shù)據(jù)是 O(1) 操作,所以沒有阻塞玩家游戲的風(fēng)險。而輸出 log 的頻率還不至于短期把所有內(nèi)存吃光。游戲服務(wù)器暫時是安全的。

晚21點40分,雖然沒能分析出事故的源頭,但我們立刻采取了應(yīng)急方案。重新啟動了一套游戲服務(wù)器,在線將舊服務(wù)器上的 80% 玩家導(dǎo)到新的備用服務(wù)器上。并同時啟動了新的 log 數(shù)據(jù)庫集群。打算挺到周一再在固定維護(hù)時間處理。

晚 23 點,新啟動的游戲服務(wù)器也出現(xiàn)了 log 輸出延遲。因為運(yùn)營 log 是輸出到一個 mongos 管理的集群中的,我們嘗試在舊的集群(已無新數(shù)據(jù)寫入,但依舊沒有消化完滯留的舊數(shù)據(jù))做了刪除部分索引的嘗試,沒有什么效果。

凌晨 0:45 ,開啟了新的備機(jī)群,取消了 mongos ,讓每臺機(jī)器獨(dú)立連接一個單獨(dú)的 mongoDB ,情況終于好轉(zhuǎn)了。

以上,是當(dāng)時事故記錄的節(jié)選。

徹底搞明白事故起源是周二的事情了。

表面上看起來是在 mongos 服務(wù)上堆積了大量的數(shù)據(jù)庫插入操作。讓這個單點過載了。我們起初的運(yùn)營 log 輸出是有點偏多,比如每個士兵的訓(xùn)練都有一條單獨(dú)的 log ,而陌陌爭霸游戲中這種 log 是巨量的。我們裁減并精簡了一部分 log 但似乎并不能從根本上解釋這起事故。

問題出在 mongos 的 shard key 的選擇上。mongo 可以指定 document 的若干字段為 shard key ,mongos 把這個 key 當(dāng)成一個整數(shù),按整數(shù)區(qū)間把 document 分成若干個桶。再把桶均勻分配到背后的從機(jī)上。

如果你的 key 是有規(guī)律的數(shù)字,而你又需要這種規(guī)律不至于破壞桶分配的公平性,你還可以將一個 hash 算法應(yīng)用于原始選擇的 key 上,讓 key 足夠散列開。我們一開始就是按自增 id 的散列結(jié)果做 key 的。

錯誤的 shard key 選擇就是這起事故的罪魁禍?zhǔn)住?/p>

因為我們是大量的順序?qū)懖僮鳎瑧?yīng)該優(yōu)先保證寫入的流暢。如果用隨機(jī)散列的方式去看待這些 document 的話,新舊 log 就很大幾率被分配到一起。而 mongo 并不是一條一個單位將數(shù)據(jù)落地的,而是一塊塊的進(jìn)行。這種冷熱數(shù)據(jù)的交織會導(dǎo)致寫盤 IO 量遠(yuǎn)遠(yuǎn)大于 log 實際的輸出量。

最后我們調(diào)整了 shard key ,按 log 時間和自增 id 分開,就把 mongo 數(shù)據(jù)落地的 IO 量下降了幾個數(shù)量級。

看吧,理解系統(tǒng)如何工作的很重要。

ps, 這起事故后,我給 skynet 加了更多的監(jiān)控,方便預(yù)警單個模塊的過載。這幫助我們更快的定位后面出現(xiàn)的問題。那些關(guān)于 redis 的故事,且聽下回分解。

3 月 5 日補(bǔ)充:

根據(jù)下面的留言討論,總結(jié)一下:

關(guān)于 shard key 的選擇在 mongoDB 文檔中被討論過 。但和我們遇到的情況有所不同。

有同學(xué)提到,這篇文章里描述在批量寫入的時候,數(shù)字做 key 要比 hash 過的有更高的效率

我們沒有使用批量插入,而我們是單條逐條插入的。所以性能低下并不在于逐條調(diào)用 getLastError ,我們?yōu)榱吮WC寫入性能,都是單向推送,不獲取 getLastError 的(最低 Write concern 級別)。我認(rèn)為在我們的業(yè)務(wù)情況下,按時間片讓一臺機(jī)器接受一組數(shù)據(jù)是更好的利用方式。

原文地址。51CTO獲作者授權(quán)轉(zhuǎn)載。

責(zé)任編輯:徐川 來源: blog
相關(guān)推薦

2014-03-05 09:31:54

陌陌爭霸數(shù)據(jù)庫

2014-03-09 23:29:12

2014-03-05 13:27:09

陌陌爭霸數(shù)據(jù)庫

2015-03-31 18:26:43

陌陌社交

2012-08-31 14:36:19

陌陌林志霖社交應(yīng)用

2014-07-25 15:41:12

陌陌WOT2014GoRedis

2012-08-27 09:39:23

陌陌社交APP

2021-12-06 16:35:33

QQ微博社交軟件

2014-08-15 17:51:39

聽云

2015-05-12 14:34:09

陌陌

2015-12-11 16:07:03

光合資本

2015-11-11 15:17:16

雙十一單身陌陌

2012-08-21 15:52:48

2015-05-27 11:05:46

阿里云陌陌CDN

2014-05-13 14:11:36

GoRedis

2015-07-23 11:53:39

我是歌手

2024-04-01 08:05:27

Go開發(fā)Java

2015-07-24 16:49:40

陌陌禮物

2012-08-23 16:41:10

陌陌投資

2012-11-14 09:45:57

陌陌
點贊
收藏

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

欧美成人片在线观看| 亚洲一区在线直播| 91国产丝袜播放在线| 日韩在线麻豆| 欧美三级在线看| 在线观看免费91| 亚洲精品18p| 久久国产免费| 久久久精品久久久| 国产又粗又猛又色| 91在线成人| 亚洲制服欧美中文字幕中文字幕| 九九99玖玖| 在线观看国产区| 欧美午夜不卡影院在线观看完整版免费| 日韩手机在线导航| 欧美在线观看视频网站| 18+激情视频在线| 99久免费精品视频在线观看| 国产色综合天天综合网 | 国产wwwxx| 欧美aaaaaaa| 日本一区二区视频在线观看| 超碰在线97av| 亚洲视频一区二区三区四区| 最新日韩在线| 久久资源免费视频| 美国黄色特级片| 美女午夜精品| 日韩欧美国产综合在线一区二区三区| 韩国一区二区av| 变态调教一区二区三区| 中文字幕在线不卡一区二区三区| 欧美成人在线免费观看| 亚洲欧美激情国产综合久久久| 另类中文字幕网| 琪琪亚洲精品午夜在线| 一区二区三区免费高清视频| 视频在线不卡免费观看| 亚洲欧美日韩中文视频| 黄色性生活一级片| 老司机在线精品视频| 日韩免费高清视频| 日韩成人av免费| 成人免费视频观看| 91国偷自产一区二区三区观看| www精品久久| 色呦呦网站在线观看| 亚洲天堂av一区| 中文字幕中文字幕在线中心一区| 阿v免费在线观看| 久久美女艺术照精彩视频福利播放| 国产美女精品久久久| 中文字幕av网站| 日韩精品久久理论片| 日本成人黄色片| 亚洲天堂视频网站| 免费看的黄色欧美网站| 欧美亚洲另类制服自拍| 国产尤物在线视频| 亚洲欧美视频| 国产www精品| 亚洲AV无码成人精品区东京热| 亚洲尤物精选| 国产成人在线亚洲欧美| 东京热一区二区三区四区| 国产婷婷精品| 国产成人av在线播放| 国产真人无遮挡作爱免费视频| 丝袜美腿成人在线| 国产精品美女av| 国产一区二区三区在线观看| 国产一区二区三区观看| 国产福利久久精品| 日本在线视频1区| 国产日韩影视精品| 中文字幕av导航| 永久免费网站在线| 亚洲成人午夜影院| 欧美成人黑人猛交| 91麻豆精品| 精品国产在天天线2019| 亚洲男人在线天堂| 欧美色就是色| 正在播放欧美视频| 久草视频免费在线| 亚洲在线黄色| 国产精品自拍小视频| 亚洲va欧美va| 久久久影院官网| 在线视频不卡一区二区三区| 欧美亚洲天堂| 一本久道久久综合中文字幕 | 亚洲欧美在线网| 久热国产在线| 午夜久久久久久久久久一区二区| 88av.com| 国产伦精品一区二区三区免费优势 | 蜜臀久久99精品久久久无需会员 | 国产一区红桃视频| 亚洲欧美高清视频| 日本一区二区成人在线| 国产成a人亚洲精v品在线观看| 成人动漫一区| 日韩欧美一二区| 亚洲精品乱码久久久久久久久久久久 | 免费久久一级欧美特大黄| 日本www在线| 精品国产成人在线| 香蕉视频xxxx| 精品久久久久久久久久久aⅴ| 欧美成人sm免费视频| 中文在线第一页| 成人美女视频在线看| 亚洲欧洲日本国产| 在线观看爽视频| 欧美变态口味重另类| 精品手机在线视频| 亚洲一区黄色| 国产精品免费一区二区| 成人免费黄色网页| 欧美视频在线免费看| 苍井空张开腿实干12次| 色喇叭免费久久综合| 奇米影视亚洲狠狠色| 国 产 黄 色 大 片| 中文字幕亚洲电影| 精品少妇无遮挡毛片| 久草在线综合| 久久久久久久影院| 国产精选久久久| 国产精品国产三级国产aⅴ无密码| 亚洲 高清 成人 动漫| 51vv免费精品视频一区二区| 日韩中文字幕视频在线| 波多野结衣午夜| 91美女片黄在线观看91美女| 欧美日韩福利在线| 久久久精品区| 美女av一区二区三区| 羞羞色院91蜜桃| 国产亚洲一区二区三区四区| 国产乱子夫妻xx黑人xyx真爽| 国内精品免费| 久久久久久久影院| 少妇喷水在线观看| 亚洲高清三级视频| 国产51自产区| 亚洲电影成人| 国产精品一区二区免费| 国产蜜臀在线| 精品久久久久久久久久久久久久久| 免费在线观看a级片| 国内一区二区在线| 中国 免费 av| 日韩中文字幕在线一区| 欧美日本国产在线| 天堂在线视频网站| 黄色一区二区三区| 国产熟妇久久777777| 狂野欧美一区| 亚洲一区二区三区免费观看| 久久av影院| 不卡av在线网站| 性猛交富婆╳xxx乱大交天津| 亚洲精品国产第一综合99久久| 人妻体体内射精一区二区| 欧美网站在线| 久久riav| 国产一区影院| 欧美成人免费一级人片100| www.久久伊人| 欧美视频国产精品| 国产wwwwxxxx| 成人免费看黄yyy456| 18岁网站在线观看| 日韩夫妻性生活xx| 亚洲自拍偷拍第一页| 国产丝袜视频在线播放| 亚洲欧美一区二区激情| 91tv国产成人福利| 亚洲成人综合视频| 丁香激情五月少妇| 国产精品白丝av| 欧美日韩在线视频一区二区三区| 久久成人综合| 成人国产1314www色视频| 欧美男女交配| 久久国产精品影片| 欧美日韩在线中文字幕| 911国产精品| 久久99精品波多结衣一区| 国产嫩草影院久久久久| 亚洲综合中文网| 日韩制服丝袜先锋影音| 久久99国产精品一区| 亚洲精品动态| 亚洲iv一区二区三区| 超碰国产一区| 欧美激情亚洲视频| 成年人视频网站在线| 精品国产自在久精品国产| 男人的天堂av网站| 亚洲国产精品影院| av在线免费播放网址| www.亚洲国产| 精品国产鲁一鲁一区二区三区| 亚洲全部视频| 国产盗摄视频在线观看| 男男gay无套免费视频欧美| 亚洲精品欧美极品| 亚洲不卡系列| 97在线视频免费| 中文字幕免费高清电视剧网站在线观看| 国产视频精品xxxx| av中文字幕第一页| 欧美视频完全免费看| 日韩免费观看一区二区| 亚洲图片欧美激情| 欧美黄色高清视频| 91一区二区三区在线观看| 日韩a一级欧美一级| 日产欧产美韩系列久久99| 久操网在线观看| 午夜国产精品视频免费体验区| 日韩一本精品| 美女亚洲一区| 精品一区二区国产| 国产一级成人av| 懂色中文一区二区三区在线视频| 欧美亚洲综合视频| 国产精品精品久久久久久| 国产夫妻在线播放| 国内精品视频久久| 美洲精品一卡2卡三卡4卡四卡| 久久精品视频中文字幕| 8888四色奇米在线观看| 国产亚洲精品美女久久久| 五月婷婷在线观看视频| 精品国产三级a在线观看| 精品人妻av一区二区三区| 欧美精品xxxxbbbb| 中文字幕欧美色图| 欧美视频一区在线观看| 销魂美女一区二区| 色哟哟日韩精品| 特级毛片www| 色综合中文综合网| av网站中文字幕| 一本大道av伊人久久综合| 国产成人免费看| 欧美日韩国产精品一区二区三区四区 | 日批视频在线免费看| 久久国产精品毛片| 亚洲欧美另类动漫| 秋霞电影网一区二区| 亚洲黄色av网址| 蜜桃视频一区二区| 亚洲天堂av一区二区| 国产一区二区三区免费| 久久久久国产免费| 99精品久久99久久久久| 精品无码一区二区三区| 国产日韩欧美精品在线| 天堂资源在线视频| 亚洲人成7777| 精品无码一区二区三区电影桃花| 性久久久久久久久久久久 | 欧洲亚洲国产日韩| 亚洲无码精品在线播放| 日韩一级成人av| 欧美一区二区三区黄片| 日韩av综合网站| 成人不用播放器| 欧美xxxx综合视频| 密臀av在线播放| 国产精品高清免费在线观看| 色综合一区二区日本韩国亚洲| 亚洲最大成人网色| 欧美一级色片| 亚洲在线观看一区| 黄色精品网站| 国产无套粉嫩白浆内谢的出处| 黑人巨大精品欧美一区| 亚洲熟女一区二区| 亚洲国产成人在线| 国产一级在线播放| 色狠狠色狠狠综合| 成人激情四射网| 国产一区二区三区欧美| 在线观看小视频| 日本成人免费在线| 国产一区 二区| 久久伊人资源站| 香港欧美日韩三级黄色一级电影网站| 欧美视频在线观看网站| 青青草国产成人av片免费| av在线天堂网| 日本一区二区免费在线观看视频| 青青青在线免费观看| 色视频一区二区| 国产激情视频在线播放| 亚洲天堂av在线免费观看| 在线h片观看| 国产精品久久久久久av福利| caoporn成人| 在线精品日韩| 亚洲综合国产| 人妻av一区二区三区| 国产精品美女久久久久aⅴ国产馆| 日本三级网站在线观看| 91精品久久久久久久99蜜桃| 九色视频成人自拍| 欧美激情精品久久久久久久变态| 久久久久黄色| 欧美激情国产日韩| 精品91在线| 人人爽人人爽av| 中文字幕国产一区二区| 欧美日韩乱国产| 欧美精品一区二区不卡| 黄色一级大片在线免费看产| 国产91露脸中文字幕在线| 国产精品18hdxxxⅹ在线| 国产大尺度在线观看| 美女www一区二区| 欧美狂猛xxxxx乱大交3| 亚洲v精品v日韩v欧美v专区| 精品乱子伦一区二区| 久久人人爽人人爽人人片亚洲| 日本精品在线中文字幕| 日本精品二区| 天使萌一区二区三区免费观看| 国产伦精品一区二区三区妓女| 亚洲成人在线观看视频| 黄色片网站免费在线观看| 欧美精品在线观看| 日韩在线激情| 伊人av成人| 精品综合久久久久久8888| 国产又粗又猛又爽又黄的视频小说| 色婷婷综合久久久久中文| 黄色软件在线观看| 国产成人福利视频| 国产区精品区| 男女啪啪网站视频| 国产精品青草久久| 在线观看免费观看在线| 色婷婷av一区二区三区久久| 成人亚洲综合| 国产精品jizz在线观看老狼| 久久99精品久久久久久久久久久久 | 色偷偷88888欧美精品久久久| 国产成人亚洲一区二区三区| 色999五月色| 美女一区二区久久| 91香蕉视频在线播放| 欧美一区二区黄色| 欧美黑人猛交| 国外成人免费视频| 国产深夜精品| 欧美人妻一区二区三区| 欧美日本一区二区在线观看| 国产在线观看免费麻豆| 444亚洲人体| 黄色精品一区| 双性尿奴穿贞c带憋尿| 在线精品视频免费观看| 香蕉视频在线看| 91中文字幕在线观看| 影音先锋久久| 日韩中文字幕电影| 欧美日韩一区二区三区视频| 巨大荫蒂视频欧美另类大| 99国产视频| 性高湖久久久久久久久| 在线免费观看视频| 超碰在线国产| 5566中文字幕一区二区| 136国产福利精品导航网址| 精品无码人妻一区| 欧美三级一区二区| 欧美巨大xxxx做受沙滩| 免费试看一区| 久久电影网站中文字幕| 久久影院一区二区| 亚洲欧美激情视频| 日韩一级淫片| 久久国产色av免费观看| 亚洲精品国久久99热| 久草在现在线| 国产成人精品一区二区三区福利| 久久久xxx| 久久久国产精华液| 亚洲色图15p| 99热这里只有精品首页 | 日韩国产精品视频| 国产一区一区| 成人羞羞国产免费网站| 亚洲精品中文在线影院|