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

亚洲欧美日韩精品久久久| 国产精欧美一区二区三区| 久久黄色一级视频| 麻豆网站免费在线观看| 久久久久久久久久久电影| 国产脚交av在线一区二区| 欧美日韩午夜视频| 精品视频高潮| 精品视频在线视频| 超薄肉色丝袜足j调教99| 色呦呦中文字幕| 蜜臀久久99精品久久久画质超高清| 久久精品在线播放| 日本xxxx裸体xxxx| 日韩在线激情| 疯狂做受xxxx欧美肥白少妇| 中文字幕成人一区| 日本免费不卡| 国产麻豆视频精品| 国产不卡一区二区在线播放| 青娱乐免费在线视频| 欧美军人男男激情gay| 精品免费视频一区二区| 五月天亚洲视频| 丝袜国产在线| 国产精品美女一区二区| 国产亚洲欧美另类一区二区三区| 少妇又紧又色又爽又刺激视频 | 国产suv精品一区二区33| 亚洲色图插插| 最新国产精品拍自在线播放| 欧美丰满少妇人妻精品| 视频一区国产| 这里是久久伊人| 精品久久久噜噜噜噜久久图片| 丁香花在线高清完整版视频| 中文字幕一区二区三区av| 欧美日本亚洲| 性xxxx视频播放免费| 福利视频网站一区二区三区| 成人a免费视频| 亚洲视频中文字幕在线观看| 视频在线在亚洲| 欧美一二三视频| 日韩欧美高清在线观看| 女人色偷偷aa久久天堂| 久久久国产成人精品| 男女全黄做爰文章| 欧美午夜精彩| 中文字幕欧美日韩| 97在线观看免费视频| 国产不卡av一区二区| 亚洲欧美日韩精品久久亚洲区| 男人网站在线观看| 高潮按摩久久久久久av免费| 精品少妇一区二区三区日产乱码| 午夜免费视频网站| 亚洲性视频在线| 欧美成人三级电影在线| 乱码一区二区三区| 嫩草国产精品入口| 日韩电影免费观看在线观看| 欧美性xxxx图片| 国产伦一区二区三区| 亚洲无av在线中文字幕| 免费看的黄色录像| 99久久99视频只有精品| 欧美理论电影在线观看| 久久久久久久久久99| 最新国产拍偷乱拍精品| 欧美性资源免费| 天天干天天插天天射| 麻豆国产欧美日韩综合精品二区 | 国产精品久久婷婷| 国产在线观看免费一区| 国产福利久久精品| 黄色av中文字幕| av一区二区三区在线| 久久亚裔精品欧美| 丝袜美腿美女被狂躁在线观看| 亚洲视频在线一区观看| 国产xxxx振车| 成人教育av| 在线不卡a资源高清| 三上悠亚 电影| 欧美精品momsxxx| www.国产精品一二区| 国产在线欧美在线| 日精品一区二区| 亚洲精品欧美日韩| 十八禁一区二区三区| 中文在线资源观看网站视频免费不卡| 青春草在线视频免费观看| 成人免费高清观看| 欧美网站大全在线观看| 久久久久久久久久影视| 精品一区在线| 欧美精品在线视频观看| 国产www在线| 激情伊人五月天久久综合| 国产一区二区三区av在线| jizz在线观看中文| 亚洲自拍与偷拍| 国产成人综合一区| 亚洲精品一区国产| 一区二区三欧美| 国产在线视频二区| 美腿丝袜在线亚洲一区| 好吊妞www.84com只有这里才有精品 | 亚洲国产日韩欧美综合久久| 天天摸日日摸狠狠添| 亚洲激情视频| 91中文精品字幕在线视频| 日本在线丨区| 亚洲综合网站在线观看| 欧美大尺度做爰床戏| 福利欧美精品在线| 久久久精品久久| 久久精品五月天| 成人激情校园春色| 中文字幕中文字幕在线中心一区| 亚洲天堂手机| 日韩欧美一级二级三级久久久| 无码人妻aⅴ一区二区三区69岛| 今天的高清视频免费播放成人| 国产精品视频专区| 精品视频一二区| 午夜精品福利一区二区蜜股av| 久久久久久久久久一区二区| 国产99久久久国产精品成人免费 | 亚州欧美在线| 国产一区二区三区网站| 成人免费a视频| 懂色av一区二区三区免费观看| 中文网丁香综合网| 伦一区二区三区中文字幕v亚洲| 日韩精品亚洲元码| 日韩成人高清视频| 成人免费视频视频在线观看免费| 午夜久久久久久久久久久| 四虎在线精品| 日韩中文字幕网| 最近中文字幕av| 欧美国产日本视频| 欧美日韩怡红院| 天海翼精品一区二区三区| 久久全国免费视频| 欧美 日韩 中文字幕| 一级中文字幕一区二区| 蜜桃视频无码区在线观看| 黑丝一区二区| 国产区一区二区| av资源一区| 亚洲精品第一国产综合精品| 精品美女久久久久| 久久综合一区二区| 青青青在线播放| 国产亚洲第一伦理第一区| 国产精品久久久久久久久久新婚| 第一福利在线| 欧美精品一卡两卡| 1024手机在线视频| 成人听书哪个软件好| 黄色一级在线视频| 蜜桃精品噜噜噜成人av| 国产精品成人久久久久| 伊人在线视频| 欧美一级久久久| 国产稀缺真实呦乱在线| 91麻豆精东视频| 国产成人精品无码播放| 99久久.com| 国产精品有限公司| 欧美gay视频| 日韩中文字幕亚洲| 黄色av一区二区三区| 色欧美88888久久久久久影院| ass极品国模人体欣赏| 国产毛片精品一区| 免费无码毛片一区二三区| 国产亚洲一区| 91在线观看免费高清完整版在线观看| 岛国片av在线| 国产亚洲欧洲高清一区| 国产av一区二区三区精品| 婷婷综合另类小说色区| 极品尤物一区二区| 成人激情小说网站| 亚洲福利精品视频| 国产精品videossex久久发布| 欧美人与物videos另类| 国产亚洲字幕| 琪琪亚洲精品午夜在线| 精品麻豆一区二区三区| 日韩国产激情在线| 国产欧美综合视频| 日韩欧美在线观看| 国产又粗又硬又长又爽| 91丝袜高跟美女视频| 亚洲va在线va天堂va偷拍| 亚洲另类黄色| 亚洲综合欧美日韩| 欧美在线导航| 亚洲va国产va天堂va久久| 中文在线免费二区三区| 久久综合伊人77777尤物| 欧美伦理影视网| 精品久久一区二区| 91成年人视频| 色呦呦日韩精品| 国产在线成人精品午夜| 国产精品第四页| 国产成人精品无码免费看夜聊软件| 国产揄拍国内精品对白| 国内自拍视频网| 国产精品试看| 久久久久久久香蕉| 国产精品久久占久久| 欧美一区二区视频在线| 国语一区二区三区| 亚洲aⅴ男人的天堂在线观看| 亚洲一区二区三区四区| 7777精品久久久久久| 成人日韩欧美| 精品国产一区av| 不卡在线视频| 一区二区亚洲精品国产| 日本一区高清| 日韩大片免费观看视频播放| 免费看日韩av| 精品国产乱码久久| 亚洲av无码一区二区三区dv | 黄色aaa大片| 欧美大片在线观看一区二区| 91丨九色丨丰满| 欧美日韩国产综合视频在线观看| 无码无套少妇毛多18pxxxx| 天天综合网天天综合色| 国产一级淫片a| 夜夜嗨av一区二区三区| 青青草国产在线观看| 一区免费观看视频| 无码黑人精品一区二区| 中文字幕一区二区三区蜜月| 国产一二三av| 一区在线播放视频| 无码人妻精品一区二区三区夜夜嗨| 国产精品美女久久久久久久久| 亚洲精品一区二区三区影院忠贞| 国产三级三级三级精品8ⅰ区| 成都免费高清电影| 欧美激情自拍偷拍| 91麻豆精品久久毛片一级| 中文字幕一区二区在线观看| www欧美com| 亚洲最新视频在线播放| 日本学生初尝黑人巨免费视频| 亚洲国产欧美日韩另类综合| 日本中文字幕在线免费观看| 欧美日韩亚洲精品一区二区三区| 国产精品suv一区| 日本高清无吗v一区| 伊人免费在线观看高清版| 91精品国产综合久久久久久久 | 亚洲女人毛片| 91精品天堂福利在线观看| www.18av.com| 国产欧美亚洲一区| 国产精品无码av无码| 久久99国产精品免费网站| 中文字幕 欧美 日韩| eeuss影院一区二区三区| 免费黄色在线视频| 国产精品久久一卡二卡| 黄色一级视频免费观看| 狠狠躁天天躁日日躁欧美| 一区二区乱子伦在线播放| 欧美一级夜夜爽| 亚洲av成人无码久久精品老人| 国产一区二区免费| 性欧美ⅴideo另类hd| 欧美中文字幕视频| 欧美电影在线观看网站| 国产传媒一区二区三区| 欧洲激情视频| 日韩精品在线视频免费观看| 久久亚洲精品伦理| 激情成人在线观看| 99久久久无码国产精品| 欧美成人另类视频| 亚洲国产美国国产综合一区二区| 国产亚洲欧美日韩高清| 日韩精品中文字幕一区| 国产三级电影在线| 欧美日韩国产成人在线| 精品成人av| 国产精品三区四区| 日韩.com| 久色视频在线播放| 国产在线日韩欧美| 国产特级黄色录像| 亚洲国产一区二区三区青草影视 | 91豆花视频在线播放| 国产精品美女午夜av| 久久超级碰碰| 午夜啪啪福利视频| 视频一区视频二区中文| 亚洲无人区码一码二码三码| 国产精品热久久久久夜色精品三区| 国产精品.www| 91精品一区二区三区在线观看| 免费在线超碰| 性欧美xxxx交| 日本一区精品视频| 先锋影音一区二区三区| 国产精品综合| 性色av蜜臀av浪潮av老女人| 亚洲视频你懂的| 欧美视频xxxx| 亚洲女人天堂色在线7777| 国产在线拍揄自揄拍视频| 91精品久久久久久久久久久久久久| 台湾色综合娱乐中文网| 久久精品xxx| 国产精品99久久久久久久女警 | 超碰人人cao| 中文字幕在线播放不卡一区| 国产精品欧美综合| 亚洲精品视频网上网址在线观看| 国产美女一区视频| 亚洲一区二区三区sesese| 成人嫩草影院| 亚洲狼人综合干| 久久久久国产一区二区三区四区| 日韩欧美激情视频| 亚洲成成品网站| 黄污视频在线观看| 超碰在线97av| 亚洲手机在线| 国产一级免费片| 午夜精品一区二区三区免费视频 | 亚洲性日韩精品一区二区| 一区二区乱码| 欧美另类网站| 首页国产欧美久久| 精品熟妇无码av免费久久| 欧美在线你懂的| 香蕉视频在线播放| 国产在线视频91| 五月开心六月丁香综合色啪| 九九久久久久久| 亚洲美女屁股眼交| 999久久久久| 色综合91久久精品中文字幕| gogo久久日韩裸体艺术| 日本手机在线视频| 91免费看`日韩一区二区| 91精品国产综合久久久蜜臀九色| 国产网站欧美日韩免费精品在线观看| 综合毛片免费视频| 天堂av一区二区| 国产在线精品一区二区| 久久黄色小视频| 日韩av最新在线观看| 亚洲欧洲高清| 伊人情人网综合| 国产高清久久久久| 国产成人精品a视频一区| 国产丝袜一区二区| 色999韩欧美国产综合俺来也| 青春草在线视频免费观看| 成人av在线观| 中文字幕在线播| 精品国内亚洲在观看18黄| 亚洲开心激情| 丝袜老师办公室里做好紧好爽| 国产亚洲欧美色| 精品久久久久成人码免费动漫| 欧美精品xxx| 韩日一区二区三区| 天天色天天综合网| 婷婷久久综合九色综合伊人色| 老熟妻内射精品一区| 国产精品1区2区3区在线观看| 久青草视频在线播放| 久久婷婷国产综合精品青草| 在线免费看av片| 欧美精品videofree1080p| 国产成人一区| 日本精品一区在线| 婷婷一区二区三区| 午夜毛片在线| 精品一区二区三区日本| 蜜臀av在线播放一区二区三区| 免费在线看黄网址| 一区二区在线视频播放| 2020最新国产精品| 色哟哟精品视频| 精品久久久久久久久中文字幕 | 久久女同性恋中文字幕|