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

百億級日訪問量的應用如何做緩存架構設計?

開發 架構
微博日活躍用戶 1.6 億+,每日訪問量達百億級,面對龐大用戶群的海量訪問,良好的架構且不斷改進的緩存體系具有非常重要的支撐作用。

 微博日活躍用戶 1.6 億+,每日訪問量達百億級,面對龐大用戶群的海量訪問,良好的架構且不斷改進的緩存體系具有非常重要的支撐作用。

[[232164]]

本文由新浪微博技術專家陳波老師,分為如下四個部分跟大家詳細講解那些龐大的數據都是如何呈現的:

  • 微博在運行過程中的數據挑戰
  • Feed 平臺系統架構
  • Cache 架構及演進
  • 總結與展望

微博在運行過程中的數據挑戰

Feed 平臺系統架構

Feed 平臺系統架構總共分為五層:

  • 最上面是端層,比如 Web 端、客戶端、大家用的 iOS 或安卓的一些客戶端,還有一些開放平臺、第三方接入的一些接口。
  • 下一層是平臺接入層,不同的池子,主要是為了把好的資源集中調配給重要的核心接口,這樣遇到突發流量的時候,就有更好的彈性來服務,提高服務穩定性。
  • 再下面是平臺服務層,主要是 Feed 算法、關系等等。
  • 接下來是中間層,通過各種中間介質提供一些服務。
  • 最下面一層就是存儲層。

Feed Timeline

大家日常刷微博的時候,比如在主站或客戶端點一下刷新,***獲得了十到十五條微博,這是怎么構建出來的呢?

刷新之后,首先會獲得用戶的關注關系。比如他有一千個關注,會把這一千個 ID 拿到,再根據這一千個 UID,拿到每個用戶發表的一些微博。

同時會獲取這個用戶的 Inbox,就是他收到的特殊的一些消息,比如分組的一些微博、群的微博、下面的關注關系、關注人的微博列表。

拿到這一系列微博列表之后進行集合、排序,拿到所需要的那些 ID,再對這些 ID 去取每一條微博 ID 對應的微博內容。

如果這些微博是轉發過來的,它還有一個原微博,會進一步取原微博內容。通過原微博取用戶信息,進一步根據用戶的過濾詞對這些微博進行過濾,過濾掉用戶不想看到的微博。

根據以上步驟留下的微博,會再進一步來看,用戶對這些微博有沒有收藏、點贊,做一些 Flag 設置,還會對這些微博各種計數,轉發、評論、贊數進行組裝,***才把這十幾條微博返回給用戶的各種端。

這樣看來,用戶一次請求得到的十幾條記錄,后端服務器大概要對幾百甚至幾千條數據進行實時組裝,再返回給用戶。

整個過程對 Cache 體系強度依賴,所以 Cache 架構設計優劣會直接影響到微博體系表現的好壞。

Feed Cache 架構

接下來我們看一下 Cache 架構,它主要分為六層:

  • ***層是 Inbox,主要是分組的一些微博,然后直接對群主的一些微博。Inbox 比較少,主要是推的方式。
  • 第二層是 Outbox,每個用戶都會發常規的微博,都會到它的 Outbox 里面去。根據存的 ID 數量,實際上分成多個 Cache,普通的大概是 200 多條,如果長的大概是 2000 條。
  • 第三層是一些關系,它的關注、粉絲、用戶。
  • 第四層是內容,每一條微博一些內容存在這里。
  • 第五層就是一些存在性判斷,比如某條微博我有沒有贊過。之前有一些明星就說我沒有點贊這條微博怎么顯示我點贊了,引發了一些新聞。而這種就是記錄,實際上她有在某個時候點贊過但可能忘記了。
  • 最下面還有比較大的一層——計數,每條微博的評論、轉發等計數,還有用戶的關注數、粉絲數這些數據。

Cache 架構及演進

簡單 KV 數據類型

[[232165]]

[[232166]]

接下來我們著重講一下微博的 Cache 架構演進過程。最開始微博上線時,我們是把它作為一個簡單的 KV 數據類型來存儲。

我們主要采取哈希分片存儲在 MC 池子里,上線幾個月之后發現一些問題:有一些節點機器宕機或是其他原因,大量的請求會穿透 Cache 層達到 DB 上去,導致整個請求變慢,甚至 DB 僵死。

于是我們很快進行了改造,增加了一個 HA 層,這樣即便 Main 層出現某些節點宕機情況或者掛掉之后,這些請求會進一步穿透到 HA 層,不會穿透到 DB 層。

這樣可以保證在任何情況下,整個系統***率不會降低,系統服務穩定性有了比較大的提升。

對于這種做法,現在業界用得比較多,然后很多人說我直接用哈希,但這里面也有一些坑。

比如我有一個節點,節點 3 宕機了,Main 把它給摘掉,節點 3 的一些 QA 分給其他幾個節點,這個業務量還不是很大,穿透 DB,DB 還可以抗住。

但如果這個節點 3 恢復了,它又加進來之后,節點 3 的訪問就會回來,稍后節點 3 因為網絡原因或者機器本身的原因,它又宕機了,一些節點 3 的請求又會分給其他節點。

這個時候就會出現問題,之前分散給其他節點寫回來的數據已經沒有人更新了,如果它沒有被剔除掉就會出現混插數據。

實際上微博是一個廣場型的業務,比如突發事件,某明星找個女朋友,瞬間流量就 30% 了。

突發事件后,大量的請求會出現在某一些節點,會導致這些節點非常熱,即便是 MC 也沒辦法滿足這么大的請求量。這時 MC 就會變成瓶頸,導致整個系統變慢。

基于這個原因,我們引入了 L1 層,還是一個 Main 關系池,每一個 L1 大概是 Main 層的 N 分之一,六分之一、八分之一、十分之一這樣一個內存量,根據請求量我會增加 4 到 8 個 L1,這樣所有請求來了之后首先會訪問 L1。

L1 ***的話就會直接訪問,如果沒有***再來訪問 Main-HA 層,這樣在一些突發流量的時候,可以由 L1 來抗住大部分熱的請求。

對微博本身來說,新的數據就會越熱,只要增加很少一部分內存就會抗住更大的量。

簡單總結一下:通過簡單 KV 數據類型的存儲,我們實際上是以 MC 為主的,層內 Hash 節點不漂移,Miss 穿透到下一層去讀取。

通過多組 L1 讀取性能提升,能夠抗住峰值、突發流量,而且成本會大大降低。

對讀寫策略,采取多寫,讀的話采用逐層穿透,如果 Miss 的話就進行回寫。對存在里面的數據,我們最初采用 Json/xml,2012 年之后就直接采用 Protocol Buffer 格式,對一些比較大的用 QuickL 進行壓縮。

集合類數據

剛才講到簡單的 QA 數據,那對于復雜的集合類數據怎么來處理?

比如我關注了 2000 人,新增 1 個人,就涉及到部分修改。有一種方式是把 2000 個 ID 全部拿下來進行修改,但這種對帶寬、機器壓力會很大。

還有一些分頁獲取,我存了 2000 個,只需要取其中的第幾頁,比如第二頁,也就是第十到第二十個,能不能不要全量把所有數據取回去。

還有一些資源的聯動計算,會計算到我關注的某些人里面 ABC 也關注了用戶 D。這種涉及到部分數據的修改、獲取,包括計算,對 MC 來說實際上是不太擅長的。

各種關注關系都存在 Redis 里面取,通過 Hash 分布、儲存,一組多存的方式來進行讀寫分離?,F在 Redis 的內存大概有 30 個 T,每天都有 2-3 萬億的請求。

在使用 Redis 的過程中,實際上還是遇到其他一些問題。比如從關注關系,我關注了 2000 個 UID,有一種方式是全量存儲。

但微博有大量的用戶,有些用戶登錄得比較少,有些用戶特別活躍,這樣全部放在內存里成本開銷是比較大的。

所以我們就把 Redis 使用改成 Cache,比如只存活躍的用戶,如果你最近一段時間沒有活躍,會把你從 Redis 里踢掉,再次有訪問的時候再把你加進來。

這時存在一個問題,因為 Redis 工作機制是單線程模式,如果它加某一個 UV,關注 2000 個用戶,可能擴展到兩萬個 UID,兩萬個 UID 塞回去基本上 Redis 就卡住了,沒辦法提供其他服務。

所以我們擴展一種新的數據結構,兩萬個 UID 直接開了端,寫的時候直接依次把它寫到 Redis 里面去,讀寫的整個效率就會非常高。

它的實現是一個 long 型的開放數組,通過 Double Hash 進行尋址。

我們對 Redis 進行了一些其他的擴展,大家可能也在網上看到過我們之前的一些分享,把數據放到公共變量里面。

整個升級過程,我們測試 1G 的話加載要 10 分鐘,10G 大概要 10 分鐘以上,現在是毫秒級升級。

對于 AOF,我們采用滾動的 AOF,每個 AOF 是帶一個 ID 的,達到一定的量再滾動到下一個 AOF 里去。

對 RDB 落地的時候,我們會記錄構建這個 RDB 時,AOF 文件以及它所在的位置,通過新的 RDB、AOF 擴展模式,實現全增量復制。

其他數據類型:計數

接下來還有一些其他的數據類型,比如一個計數,實際上計數在每個互聯網公司都可能會遇到,對一些中小型的業務來說,實際上 MC 和 Redis 足夠用的。

但在微博里計數出現了一些特點:單條 Key 有多條計數,比如一條微博,有轉發數、評論數,還有點贊;一個用戶有粉絲數、關注數等各種各樣的數字。

因為是計數,它的 Value size 是比較小的,根據它的各種業務場景,大概就是 2-8 個字節,一般 4 個字節為多。

然后每日新增的微博大概十億條記錄,總記錄就更可觀了,然后一次請求,可能幾百條計數要返回去。

計數器 Counter Service

最初是可以采取 Memcached,但它有個問題,如果計數超過它內容容量時,會導致一些計數的剔除,宕機或重啟后計數就沒有了。

另外可能有很多計數它為零,那這個時候怎么存,要不要存,存的話就占很多內存。

微博每天上十億的計數,光存 0 都要占大量的內存,如果不存又會導致穿透到 DB 里去,對服務的可溶性會存在影響。

2010 年之后我們又采用 Redis 訪問,隨著數據量越來越大之后,發現 Redis 內存有效負荷還是比較低的,它一條 KV 大概需要至少 65 個字節。

但實際上我們一個計數需要 8 個字節,然后 Value 大概 4 個字節,所以有效只有 12 個字節,還有四十多個字節都是被浪費掉的。

這還只是單個 KV,如果在一條 Key 有多個計數的情況下,它就浪費得更多了。

比如說四個計數,一個 Key 8 個字節,四個計數每個計數是 4 個字節,16 個字節大概需要 26 個字節就行了,但是用 Redis 存大概需要 200 多個字節。

后來我們通過自己研發的 Counter Service,內存降至 Redis 的五分之一到十五分之一以下,而且進行冷熱分離,熱數據存在內存里,冷數據如果重新變熱,就把它放到 LRU 里去。

落地 RDB、AOF,實現全增量復制,通過這種方式,熱數據單機可以存百億級,冷數據可以存千億級。

整個存儲架構大概是上圖這樣,上面是內存,下面是 SSD,在內存里是預先把它分成 N 個 Table,每個 Table 根據 ID 的指針序列,劃出一定范圍。

任何一個 ID 過來先找到它所在的 Table,如果有直接對它增增減減,有新的計數過來,發現內存不夠的時候,就會把一個小的 Table Dump 到 SSD 里去,留著新的位置放在最上面供新的 ID 來使用。

有些人疑問說,如果在某個范圍內,我的 ID 本來設的計數是 4 個字節,但是微博特別熱,超過了 4 個字節,變成很大的一個計數怎么處理?

對于超過限制的,我們把它放在 Aux dict 進行存放,對于落在 SSD 里的 Table,我們有專門的 IndAux 進行訪問,通過 RDB 方式進行復制。

其他數據類型:存在性判斷

除了計數,微博還有一些業務,一些存在性判斷。比如一條微博展現的,有沒有點贊、閱讀、推薦,如果這個用戶已經讀過這個微博了,就不要再顯示給他。

這種有一個很大的特點,它檢查是否存在,每條記錄非常小,比如 Value 1 個 bit 就可以了,但總數據量巨大。

比如微博每天新發表微博 1 億左右,讀的可能有上百億、上千億這種總的數據需要判斷。

怎么來存儲是個很大的問題,而且這里面很多存在性就是 0。還是前面說的,0 要不要存?

如果存了,每天就存上千億的記錄;如果不存,那大量的請求最終會穿透 Cache 層到 DB 層,任何 DB 都沒辦法抗住那么大的流量。

我們也進行了一些選型:首先直接考慮能不能用 Redis。單條 KV 65 個字節,一個 KV 可以 8 個字節的話,Value 只有 1 個 bit,這樣算下來每日新增內存有效率是非常低的。

第二種我們新開發的 Counter Service,單條 KV Value 1 個 bit,我就存 1 個 byt,總共 9 個 byt 就可以了。

這樣每日新增內存 900G,存的話可能就只能存***若干天的,存個三天差不多快 3 個 T 了,壓力也挺大,但比 Redis 已經好很多。

我們最終方案是自己開發 Phantom,先采用把共享內存分段分配,最終使用的內存只用 120G 就可以。

算法很簡單,對每個 Key 可以進行 N 次哈希,如果哈希的某一個位它是 1,那么進行 3 次哈希,三個數字把它設為 1。

把 X2 也進行三次哈希,后面來判斷 X1 是否存在的時候,從進行三次哈希來看,如果都為 1 就認為它是存在的;如果某一個哈希 X3,它的位算出來是 0,那就***肯定是不存在的。

它的實現架構比較簡單,把共享內存預先拆分到不同 Table 里,在里面進行開方式計算,然后讀寫,落地的話采用 AOF+RDB 的方式進行處理。

整個過程因為放在共享內存里面,進程要升級重啟數據也不會丟失。對外訪問的時候,建 Redis 協議,它直接擴展新的協議就可以訪問我們這個服務了。

[[232167]]

小結一下:到目前為止,我們關注了 Cache 集群內的高可用、擴展性、組件高性能,還有一個特別重要就是存儲成本,還有一些我們沒有關注到的,比如運維性如何,微博現在已經有幾千差不多上萬臺服務器等。

進一步優化

服務化

采取的方案首先就是對整個 Cache 進行服務化管理,對配置進行服務化管理,避免頻繁重啟,另外如果配置發生變更,直接用一個腳本修改一下。

服務化還引入 Cluster Manager,實現對外部的管理,通過一個界面來進行管理,可以進行服務校驗。

服務治理方面,可以做到擴容、縮容,SLA 也可以得到很好的保障。另外,對于開發來說,現在就可以屏蔽 Cache 資源。

總結與展望

***簡單總結一下,對于微博 Cache 架構來說,我們從它的數據架構、性能、儲存成本、服務化等不同方面進行了優化增強。歡迎對此有研究或有疑問的同行們留言,跟我們一起探討。

責任編輯:武曉燕 來源: 中生代技術
相關推薦

2018-06-05 09:31:01

微博緩存架構設計

2019-10-31 09:32:58

Redis微博緩存

2018-01-30 14:26:49

監控應用性能管理運維管理

2018-05-21 09:15:06

Redis美團點評數據庫運維

2019-10-28 11:00:37

RedisMySQL數據庫

2019-07-24 08:55:09

APP重設計界面

2018-05-17 10:10:17

架構設計優化

2017-04-01 09:04:54

docker自動化

2018-05-28 08:20:12

服務器Redis優化

2022-07-17 06:54:51

Eureka架構

2023-08-20 12:21:18

軟件開發架構設計

2022-04-11 09:15:00

前端開發技術

2009-07-30 15:50:49

ASP.NET中網站訪

2021-01-11 10:19:51

安全架構

2019-12-04 09:05:15

千萬級流量高并發

2020-01-17 11:00:23

流量系統架構

2020-01-14 10:41:45

網絡安全網絡安全技術周刊

2011-06-19 12:12:12

網站瀏覽量訪問量

2023-06-05 08:17:03

2018-12-17 09:02:25

百億大表維度查詢
點贊
收藏

51CTO技術棧公眾號

日韩视频免费在线观看| 欧美在线高清视频| 精品福利影视| 亚洲精品国产无码| 国产精品7m凸凹视频分类| 日韩午夜小视频| 人人妻人人添人人爽欧美一区| 精品美女视频在线观看免费软件 | 国产精品资源在线| 久久男人的天堂| 在线观看免费小视频| 九九99久久精品在免费线bt| 亚洲国产美女搞黄色| 手机在线观看国产精品| 亚洲精品国产精品国| 亚洲欧美日韩专区| 欧美成人免费大片| 人妻av无码一区二区三区| 国模大尺度视频一区二区| 性做久久久久久久久| 亚洲蜜桃av| 污视频网站在线播放| 精品在线播放免费| 欧美在线播放视频| 黄色一级视频免费观看| 欧美日韩一二| 亚洲国产精品视频在线观看| 久久人人爽av| 欧美freesex| 天天操天天干天天综合网| 小说区视频区图片区| 免费在线黄色影片| 成人av电影在线观看| 91中文在线观看| 波多野结衣午夜| 国产精品久久久久久久久久妞妞 | 在线观看亚洲网站| 综合干狼人综合首页| 欧美精品一区二区三区很污很色的 | 特级特黄刘亦菲aaa级| 久久久加勒比| 色播五月激情综合网| 日本a在线免费观看| 污污网站在线看| 亚洲视频一二区| 亚洲开发第一视频在线播放| 久久伊伊香蕉| 久久人人97超碰com| 国产一区二区久久久| 精品区在线观看| 狠狠色丁香久久婷婷综| 国产精品一区二区久久久久| 日韩国产亚洲欧美| 视频一区中文字幕国产| 4p变态网欧美系列| 特黄视频免费看| 亚洲在线观看| 热久久美女精品天天吊色| 亚洲精品国产精品乱码| 亚洲精品极品| 97国产在线观看| 亚洲欧美在线观看视频| 亚洲毛片av| 欧美性资源免费| 精品国产午夜福利| 三级亚洲高清视频| 国产精品日韩欧美综合| 在线免费看av的网站| 麻豆国产精品视频| 成人中心免费视频| 精品国产伦一区二区三| 国产91精品一区二区麻豆网站| 97免费资源站| 五月婷婷六月丁香| 久久精品人人爽人人爽| 日韩免费三级| 蜜芽在线免费观看| 亚洲美女视频一区| 97视频久久久| 三上悠亚激情av一区二区三区| 在线中文字幕不卡| 粉色视频免费看| av男人一区| 精品亚洲永久免费精品| 免费网站在线高清观看| 欧美va久久久噜噜噜久久| 美女av一区二区| 国产在线精品观看| 免费av成人在线| 91九色极品视频| 色视频在线观看免费| 国产日本亚洲高清| 成人在线免费观看网址| 国产在线观看www| 欧美在线小视频| 中文字幕人妻熟女在线| 国产成人精品999在线观看| 中文字幕日韩欧美| 精品视频一区二区在线观看| 久久亚洲色图| 91久久爱成人| 国产黄在线观看| 亚洲一区二区欧美激情| 红桃av在线播放| 美女国产精品久久久| 日韩精品中文字| 免费在线观看h片| 国产人成精品一区二区三| 国产精品丝袜久久久久久不卡| 性猛交xxxx乱大交孕妇印度| 国产日韩欧美高清在线| 国产激情片在线观看| 韩漫成人漫画| 欧美精品一区二区三区在线| a一级免费视频| 国产精品亚洲欧美| 亚洲自拍中文字幕| 国产福利小视频在线观看| 亚洲成人手机在线| www.色就是色.com| 精品影片在线观看的网站| 欧美黄色www| 亚洲影院一区二区三区| 91理论电影在线观看| 无码人妻精品一区二区三区99v| 超级碰碰久久| 亚洲精品成a人在线观看| 亚洲一级生活片| 蜜桃av噜噜一区| 欧美日韩免费观看一区| 1区2区3区在线| 日韩欧美国产小视频| 亚洲色图100p| 青青草91视频| 欧美日韩成人一区二区三区 | 一区二区三区四区亚洲| av网站在线不卡| 国产欧美日韩精品一区二区三区 | 不卡av播放| 亚洲成色www8888| 妺妺窝人体色www婷婷| 国产真实乱子伦精品视频| 亚洲一区二区高清视频| 日韩久久一区二区三区| 亚洲天堂av图片| 男人日女人网站| 久久综合久久鬼色| 大肉大捧一进一出好爽视频| 久久久久观看| 91高潮在线观看| 天堂在线一二区| 五月天激情综合| a级一a一级在线观看| 亚洲第一区色| 韩国精品一区二区三区六区色诱| 免费看电影在线| 精品伦理精品一区| 亚洲视频免费播放| 久久看人人爽人人| 亚洲视频在线观看一区二区三区| 九九综合久久| 国产精品久久久久久久久久尿| 日本1级在线| 色94色欧美sute亚洲线路一ni| 人人妻人人藻人人爽欧美一区| 日韩精品免费视频人成| 少妇精品久久久久久久久久| 免费成人黄色网| 久久中文字幕一区| 丰满大乳国产精品| 日韩欧美国产高清91| 在线观看日本中文字幕| 精品一区二区三区的国产在线播放| 这里只有精品66| 国产美女亚洲精品7777| 久久久免费精品| 美州a亚洲一视本频v色道| 欧美午夜精品一区二区三区| 午夜成人亚洲理伦片在线观看| 国产一区二区网址| 国产女主播自拍| 久久91精品| 亚洲最大的成人网| 毛片在线网站| 日韩一区二区三区国产| 亚洲欧美黄色片| 91高清在线观看| 国产精品丝袜一区二区| a级高清视频欧美日韩| 欧美少妇性生活视频| 亚欧美无遮挡hd高清在线视频| 97影院在线午夜| 日韩成人动漫| 欧美另类69精品久久久久9999| 亚洲av成人无码久久精品老人| 欧美性生活久久| 欧美日韩中文字幕在线观看 | 欧美精品在线视频| 91看片在线播放| 国产精品国产三级国产aⅴ入口| 日本精品一二三区| 久久超碰97中文字幕| 日韩国产欧美亚洲| 香蕉视频国产精品| 蜜桃视频在线观看91| 99视频这里有精品| 人妖精品videosex性欧美| 麻豆av在线免费看| 亚洲美女在线看| 草草视频在线播放| 精品视频在线免费观看| 日本少妇吞精囗交| 亚洲人成7777| 欧美人与性囗牲恔配| 成人晚上爱看视频| 亚洲免费黄色网| 爽爽淫人综合网网站| 成人免费网站入口| 国产精品7m凸凹视频分类| 热舞福利精品大尺度视频| 高潮按摩久久久久久av免费| 国产精品海角社区在线观看| 黄视频免费在线看| 欧美黑人巨大精品一区二区| 日本在线免费| 国产亚洲精品久久久久久| 日韩在线视频免费| 日韩欧美一区在线| 一炮成瘾1v1高h| 欧美日免费三级在线| 亚洲熟女综合色一区二区三区| 一区二区三区在线影院| 神马午夜精品91| 中文字幕一区二区在线播放| 精品无人区无码乱码毛片国产 | 精品人妻无码一区| 久久亚洲影视婷婷| 日b视频在线观看| 成人高清视频在线| 亚洲图片欧美另类| 国产ts人妖一区二区| 久久精品一二三四| 国产一区二区三区观看| 国产一级片自拍| 久久精品久久精品| 亚洲18在线看污www麻豆| 免费高清在线视频一区·| 九热视频在线观看| 蜜桃av噜噜一区| 午夜一级免费视频| 国产精品综合二区| 亚洲欧美日韩网站| 国产精品一区二区免费不卡| 美女被艹视频网站| 国产精品18久久久久| 亚洲熟女乱综合一区二区| 国产精一品亚洲二区在线视频| 亚洲午夜精品一区| 国产精品888| 在线观看免费视频黄| 成人高清伦理免费影院在线观看| 久久久久无码国产精品一区李宗瑞 | 亚洲人成伊人成综合网小说| 三级av在线免费观看| 亚洲欧美一区二区三区极速播放| 黄色一级片在线| 精品福利在线视频| 精品久久久久久久久久久久久久久久| 色美美综合视频| 在线观看国产一区二区三区| 欧美日韩一卡二卡| 精品人妻伦一二三区久久 | 久久国产精品亚洲人一区二区三区| 午夜老司机精品| 国产精品久久久久久久免费观看| 伊人再见免费在线观看高清版| 亚洲午夜在线| 丰满爆乳一区二区三区| 久久一区国产| www.久久91| 从欧美一区二区三区| 538国产视频| 日本一区二区综合亚洲| 东方av正在进入| 午夜视频一区在线观看| 亚洲欧美偷拍一区| 555夜色666亚洲国产免| 日本黄色一区二区三区| 亚洲天堂免费视频| 99在线播放| 欧美一级成年大片在线观看| 国产国产一区| 国产精选在线观看91| 精品视频97| 丝袜人妻一区二区三区| 日本不卡在线视频| 精品熟女一区二区三区| 欧美激情在线一区二区| 久久久精品人妻一区二区三区四| 色综合天天做天天爱| 91精品视频免费在线观看| 精品va天堂亚洲国产| 日韩美女网站| 庆余年2免费日韩剧观看大牛| 玖玖玖电影综合影院| 日本精品一区二区三区不卡无字幕| 国产精品国产一区| 国产一区视频免费观看| 国产91对白在线观看九色| 手机毛片在线观看| 精品久久中文字幕久久av| 国产毛片毛片毛片毛片毛片| 亚洲欧美中文日韩在线| a√中文在线观看| 亚洲一区二区三区xxx视频| 久久99国内| 国产中文字幕在线免费观看| 国产在线精品不卡| 激情五月深爱五月| 日韩欧美亚洲一二三区| 俄罗斯嫩小性bbwbbw| 久久影视免费观看| 国产精品天堂蜜av在线播放| 久久精品国产一区二区三区不卡| 欧美人成在线| 91蝌蚪视频在线| 最新日韩av在线| 探花国产精品一区二区| 日韩高清欧美高清| 国产传媒av在线| 99久久精品免费看国产一区二区三区| 天天精品视频| 波多结衣在线观看| 国产视频911| 人妻 日韩精品 中文字幕| 亚洲电影在线观看| 二区在线播放| 成人黄色av播放免费| 色综合久久一区二区三区| 五月婷婷丁香综合网| 日本一区二区三区在线观看| 黄色在线免费观看| 亚洲午夜精品视频| 香蕉成人影院| 欧美一级二级三级| 日本午夜精品一区二区三区电影 | 精品久久久av| 亚洲综合资源| 天天干天天色天天爽| 欧美bbbbb| 天堂av免费在线| 欧美日韩国产高清一区| 欧美精品videos另类| 91久久国产精品| 国内精品亚洲| 一级欧美一级日韩片| 欧美日韩在线第一页| 久久久久久久久亚洲精品| 国产精品电影网站| 日韩免费av| 人妻少妇偷人精品久久久任期| 亚洲精品成人在线| 午夜视频在线免费播放| 欧洲精品毛片网站| 成人综合一区| 日本黄色一级网站| 亚洲电影中文字幕在线观看| 色婷婷av一区二区三| 日韩av手机在线| 久久精品国产68国产精品亚洲| 男人操女人下面视频| 亚洲午夜久久久久久久久电影院 | 亚洲福利影视| 999一区二区三区| 久久精品视频一区二区三区| 中文字幕在线观看高清| 久久99热这里只有精品国产| 精品亚洲精品| 午夜免费一区二区| 樱花草国产18久久久久| 性xxxx视频| 成人h视频在线观看播放| 欧美日本精品| 亚洲精品午夜视频| 日韩精品自拍偷拍| gay欧美网站| 中国一级大黄大黄大色毛片| jvid福利写真一区二区三区| 成人免费视频国产免费| 久久精品视频导航| 四虎影视精品| 日本网站在线看| 91福利国产成人精品照片| www.在线视频| 日韩欧美一区二区视频在线播放| 国产精品自拍在线| 99re这里只有精品在线| 超碰日本道色综合久久综合| 亚洲都市激情| 久久久九九九热|