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

緩存穿透問題導致Facebook史上嚴重事故之一

存儲 存儲軟件
ache stampede是指很多線程嘗試并行訪問緩存,如果緩存中不存在要訪問的數據,那么這時候,線程一般會請求數據庫獲取它們需要的數據(所以cache stampede可以翻譯成緩存踩踏。和緩存穿透有點不一樣,Cache Stampede的重點是很多的線程穿透緩存)。

[[392414]]

2010年9月23,這個世界上最大的社交平臺項目facebook,遭遇了最嚴重宕機故障之一,以至于facebook網站4個小時后才恢復運行。而且這次事故非常極端,工程師不得不先讓facebook下線,才能恢復。雖然10年前的facebook遠沒有現在這么大,不過仍然有超過10億用戶,人們去twitter上抱怨或者取笑這次故障。

那么,導致是什么原因導致這次facebook宕機呢?

Today we made a change to the persistent copy of a configuration value that was interpreted as invalid. This meant that every single client saw the invalid value and attempted to fix it. Because the fix involves making a query to a cluster of databases, that cluster was quickly overwhelmed by hundreds of thousands of queries a second.

一個錯誤的配置變更,導致大量的請求擊穿緩存,直達數據庫。我們把這種現象稱之為cache stampede,wiki地址:https://en.wikipedia.org/wiki/Cache_stampede。這在技術行業是一個非常普遍的問題,很多公司都出現過類似的事故,無數工程師為了不讓自己的項目遭遇這樣的問題做了大量的工作。

1、什么是緩存踩踏

cache stampede是指很多線程嘗試并行訪問緩存,如果緩存中不存在要訪問的數據,那么這時候,線程一般會請求數據庫獲取它們需要的數據(所以cache stampede可以翻譯成緩存踩踏。和緩存穿透有點不一樣,Cache Stampede的重點是很多的線程穿透緩存)。

緩存踩踏破壞性這么大的主要原因是,它可能會導致故障雪崩,也就是說一個故障接著一個故障:

  1. 大量線程并發請求沒有從緩存中獲取到數據,導致這些請求都會落到數據庫上。
  2. 數據庫由于恐怖的CPU毛刺而宕機,從而導致大量的超時錯誤。
  3. 請求線程接收到超時后,又不斷重試請求,從而又導致新一輪的災難。
  4. 反反復復,無窮無盡。

需要說明的是,即使你沒有 Facebook 那樣的規模,也會遇到這個問題,因為它與規模無關。這個問題一直困擾著初創公司和科技巨頭。

2、如何阻止緩存踩踏

這是個很好的問題,在這篇文章中,我們將探索不同的策略來緩解甚至阻止緩存踩踏的出現。畢竟,你也不想等到你自己的服務出現問題后,才想到要學習如何預防。

2.1 增加更多的緩存

一個很簡單的方法就是增加更多的緩存,它的原理有點類似操作系統的多級緩存。操作系統使用了一個緩存層次結構(L1、L2、L3),為了更快速的訪問。參考操作系統,你也能在你的應用中引入多級緩存。比如本地內存緩存叫做L1緩存(例如Guava Cache,Caffeine),遠程緩存叫做L2緩存(例如Redis,memcached):

這個策略對那些頻繁訪問的數據來說是非常有用的。即使L2緩存中的Key失效了,L1緩存中仍然有值,能夠擋住大量請求不會打到數據庫上。

然后,這種方法需要做一些取舍,在應用服務器本地緩存中緩存數據可能會導致OOM。在使用本地緩存的時候要非常小心,尤其當你會緩存一些大量數據的時候。

另外,這個策略在接下來我要說的這種情況下仍然沒有作用。例如,當一個有很多粉絲的大V上傳了一個新的照片或者視頻到他們的社交賬號上,這時候大量粉絲被提醒大V有新的內容發布,這時候粉絲會集中在相同的時間點上登陸社交平臺查看新的內容。但是可能大V發送的新內容數據還沒有加載到緩存中,這就會導致可怕的緩存踩踏。那么,我們還能做什么呢?

2.2 鎖和Promise

緩存踩踏的核心問題是競態條件(race condition),即很多的線程爭奪共享資源。只不過這里爭奪的共享資源是緩存。

通常在高并發的系統中,一種阻止共享資源競態的方法是加鎖。一般來講,鎖是用在相同機器上的不同線程,不過也可以使用分布式鎖來應對不同機器對共享資源的競爭(參考redis分布式鎖:http://redis.cn/topics/distlock.html)。

通過給緩存KEY加鎖,就會在同一時間只有一個調用者能訪問爭奪的緩存。如果KEY不存在或者已經過期,調用者就會拿到鎖。這時候其他爭奪的處理線程必須等待直到這個鎖被釋放。

用鎖來解決這個問題,它也會引入另一個問題:系統如何處理所有正在等待鎖釋放的那些線程?

你想嘗試自旋鎖(spinlock),讓這些線程持續不斷的輪詢去獲取鎖?這就會導致出現非常busy的場景,消耗大量的CPU。或者讓線程在檢查鎖是否可用之前隨機等待一段時間?這樣的話,你又會碰到驚群效應問題(thundering herd problem)。

引入退避和抖動機制來防止驚群效應?這可能行得通,但還有另外一個問題。持有鎖的線程必須重新計算值,并在釋放鎖之前更新緩存鍵。這個過程可能需要耗費一點時間,特別是當計算成本很高或存在網絡問題時,如果因為計算緩存而耗盡了可用的連接池,仍然可能導致宕機。

  1. backoff-and-jitter 

幸運的是,一些大公司也碰到過這樣的問題,他們使用promises來解決這樣的問題。

2.3 Promises如何防止自旋

引用instagram工程師博客(Thundering Herds & Promises)中的內容:

在instagram, 當我們啟用一個新的集群,并且因為集群中的緩存是空的,我們就會碰到緩存stampede問題。這時候,我們就會用promises來解決這個問題。它的核心思想是:不緩存實際的值,而是緩存一個promise,這個promise最終會提供我們需要的值。當我們使用緩存時,如果碰到一個不存在的KEY,我們不立即去數據庫中查詢,而是創建一個promise然后放到緩存中,這個緩存中的promise會去查詢數據庫,其他的并發請求發現這個promise就不會把請求打到數據庫上,它們都會等待第一個線程放進去的promise去數據庫中查詢結果。

通過緩存promise而不是實際的值,就不會自旋鎖了。第一個線程發現緩存中沒有數據,就會用原子性的操作創建并緩存一個異步的promise,所有后續的請求都能立即返回這個promise:

你仍然需要使用鎖來防止多個線程訪問緩存KEY,假設創建 Promise 是一個近乎即時的操作,那么線程停留在自旋鎖中的時間長度就可以忽略不計了。但是,如果重新計算緩存數據需要相當長的時間,那該怎么辦?即使線程能夠立即獲取到緩存的 Promise,它們仍然需要等待異步進程完成后才能將數據返回。雖然這種場景不一定會導致宕機,但仍然會導致尾部延遲和影響整體用戶體驗。如果保持較低的尾部延遲對于應用程序來說很重要,那么就需要考慮另外一種策略。

2.4 預先重新計算

預先重新計算(也被稱為提前過期)原理很簡單:在緩存KEY失效發生前,重新計算緩存的值然后延長失效時間,這就能確保緩存總是最新的,緩存缺失的問題也永遠不會發生。

最簡單的實現方式就是開啟一個后臺處理線程,或者一個定時任務。例如。假設緩存KEY過期時間時一個小時,它需要花兩分鐘來計算值。那么,定時任務可以在過期時間到來之前的5分鐘運行,更新緩存的值并延長失效時間一個小時。

雖然原理非常簡單,但是有一個明顯的缺點,除非你很清楚哪個緩存KEY會被使用,否則你需要重新計算緩存中每個KEY的值,這將是一個非常耗時的過程。而且如果考慮到高可用,某個節點上計算任務失敗了,還需要轉移到另一個可用的節點上繼續計算。

基于這個原因,生產環境上很少有這么做的。當然,也有一個例外。

2.5 概率性重新計算

在2015年,一組研究員發布了一份白皮書 Optimal Probabilistic Cache Stampede Prevention,即最優概率性預防緩存踩踏。在這份白皮書中,他們描述了一個算法來預測在緩存失效之前,什么時候需要重新計算緩存的值。這里涉及到很多數學理論,但是可以做一個簡單的總結:

currentTime - ( timeToCompute * beta * log(rand()) ) > expiry

這個公式中各變量的含義如下所示:

  • currentTime 表示當前時間;
  • timeToCompute 表示重新計算緩存值需要的時間;
  • beta是一個大于0的非負數,默認為1,可配置;
  • rand() 一個返回0~1之間隨機數的方法;
  • expiry 下一次需要設置的失效時間戳;

它的思想是,每次線程從緩存中獲取數據時,它都需要運行這個算法,如果返回true,那么這個線程將主動去重新計算緩存值。而且離失效時間越近,這個算法返回true的概率就越大。

這個策略不是很好理解,但是實現非常簡單,不需要考慮失敗轉移,也不需要到重新計算緩存中每一個KEY的值。當然,預先重計算假設有一個值需要重新計算,它本身并不能防止其他線程引起緩存踩踏問題。為此,你需要將其與鎖和 Promise 結合起來使用。

3、如何停止正在發生的緩存踩踏

facebook緩存踩踏之所以如此嚴重的原因之一是,即使當工程師找到了解決方案,他們并不能通過部署來解決。因為踩踏仍在繼續。事后診斷報告提到:

更糟糕的是,每次客戶端接收到數據庫查詢錯誤時,都會把它當作一個無效的值,然后就會刪除緩存中相關的KEY,這就意味著即使原來的問題被修復了,但是查詢還在繼續。一旦數據庫無法正確響應某一部分請求,那么就會導致緩存KEY被刪除,從而引起更多的請求打到數據庫上。

所幸的是,有一種已知的模型能處理這個問題。

熔斷器

這個想法不是很新的事情,2007年Michael Nygard發布了 Release It!后就慢慢流行了。熔斷器(Circuit breaking)的原理非常簡單,我們會在熔斷器中封裝一個方法,當監測到失敗時進行計數,并且一旦失敗達到一定閾值時,調用就會收到熔斷器直接返回的錯誤碼,而不會調用到受到熔斷器保護的地方,例如數據庫等。如下圖所示,第一次supplier能正常服務,但是第二次、第三次訪問都是超時。達到熔斷器閾值后,第四次直接返回錯誤碼,而不會將請求直接打給supplier:

熔斷器是響應式的,所以它不能阻止宕機。不過它可以防止連鎖故障的發生。而且它提供了一個終止開關,當事態已經徹底失控時可以開啟。如果 Facebook 使用了熔斷機制,就可以避免讓整個網站癱瘓下線。2010年的時候熔斷器還不是很流行,不過今天已經有很多熔斷的開源組件,例如:Resilience4j, Istio和 Envoy。

4、學到了什么

這篇文章中談論了很多應對緩存踩踏問題的策略,以及其他的科技公司是如何使用這些策略的。那么facebook呢?他們從這次事故中學到了什么?以及他們采取了什么措施來防止事故再次發生?他們的工程師寫了一篇文章:Under the hood: Broadcasting live video to millions,討論了他們對架構所做的改進。和本文我們提到的一樣,比如二級緩存。當然,也提到了一些新的方法,比如 HTTP請求合并。總之,這篇文章非常值得一讀

5、寫在最后

我相信理解緩存踩踏對系統的破壞性是非常有必要的,當然,并不是說每個團隊必須馬上把這些策略用到他們的系統中。因為,選擇何種策略要應對緩存踩踏并不是一件容易的事情,它依賴你的實際用戶場景,架構,以及流量負載情況。但是了解緩存踩踏以及對可能的解決方案對您將來有所幫助,當你以后面對類型問題時,能從容應對。

原文地址:https://betterprogramming.pub/how-a-cache-stampede-caused-one-of-facebooks-biggest-outages-dbb964ffc8ed

本文轉載自微信公眾號「阿飛的博客」,可以通過以下二維碼關注。轉載本文請聯系阿飛的博客公眾號。  

 

 

責任編輯:武曉燕 來源: 阿飛的博客
相關推薦

2019-01-23 11:19:10

運維架構技術

2023-01-31 08:37:11

緩存穿透擊穿

2015-02-12 16:39:56

服務器宕機

2022-05-27 07:57:20

緩存穿透緩存雪崩緩存擊穿

2019-03-27 13:56:39

緩存雪崩穿透

2010-02-22 10:16:39

獨立服務器問題訪問故障

2021-04-21 21:09:36

緩存系統高可用

2019-10-12 14:19:05

Redis數據庫緩存

2023-03-10 13:33:00

緩存穿透緩存擊穿緩存雪崩

2019-01-09 08:00:30

數據中心配置物理服務器

2018-08-07 10:44:50

緩存技術瀏覽器

2023-04-14 07:34:19

2021-10-08 08:55:23

FacebookBGP工具

2019-11-05 14:24:31

緩存雪崩框架

2019-02-13 11:04:42

系統緩存軟件

2013-04-06 20:49:33

GoogleFacebookFacebook Ho

2017-12-27 12:01:39

2013-03-15 09:59:34

2021-06-05 09:01:01

Redis緩存雪崩緩存穿透

2022-06-06 11:31:31

MySQL數據查詢
點贊
收藏

51CTO技術棧公眾號

亚洲成人网av| caoporn国产精品| 久久综合伊人77777蜜臀| 亚洲欧洲国产视频| 黄色综合网址| 国产精品美女久久久久久 | www.成人影院| 亚洲三级电影网站| 久久影院理伦片| 91精品国产综合久| 蘑菇福利视频一区播放| 超薄丝袜一区二区| 全黄一级裸体片| 白白在线精品| 91麻豆精品国产91久久久| 日韩在线一级片| 超碰在线网址| 国产欧美一区二区在线| 成人自拍网站| 一区二区三区www污污污网站| 亚洲欧洲一级| 欧美成人手机在线| wwwww黄色| 青青草原在线亚洲| 日韩精品综合一本久道在线视频| 国产一级不卡毛片| 成人免费观看在线观看| 亚洲欧美日韩国产另类专区| 日韩少妇中文字幕| 日中文字幕在线| 国产成a人无v码亚洲福利| 国产欧美精品日韩精品| 韩国av中文字幕| 欧美日韩日本国产亚洲在线| 久久亚洲精品一区| 国产中文字幕久久| 精品大片一区二区| 亚洲伦理中文字幕| 少妇一级淫片免费放播放| 99国产精品免费网站| 91麻豆精品国产91久久久久久| 日韩一级免费片| 另类中文字幕国产精品| 91黄视频在线| 亚洲成熟丰满熟妇高潮xxxxx| zzzwww在线看片免费| 亚洲一区二区欧美| 91成人综合网| 里番在线播放| 亚洲一区二区三区中文字幕| 久久亚洲国产成人精品无码区| 顶级网黄在线播放| 亚洲精品欧美激情| 亚洲国产一二三精品无码| 国产写真视频在线观看| 亚洲欧美另类久久久精品| 国产又爽又黄ai换脸| 色大18成网站www在线观看| 欧美高清在线精品一区| 亚洲精品一区二区三区蜜桃久| av女优在线| 综合久久久久久久| 99中文字幕在线观看| 一二三四区在线观看| 亚洲午夜精品一区二区三区他趣| 免费看毛片的网址| 中文在线а√天堂| 色婷婷av一区二区三区软件 | 亚洲欧美日韩精品久久久| eeuss影院在线播放| 国产精品国产三级国产aⅴ无密码| 影音先锋在线亚洲| 羞羞的视频在线观看| 亚洲成人综合在线| 久久久噜噜噜www成人网| 浪潮色综合久久天堂| 欧美日本乱大交xxxxx| 亚洲综合在线一区二区| 麻豆精品少妇| 在线观看欧美成人| 欧美成人精品欧美一级| 中文在线不卡| 国产精品久久久久高潮| japanese国产| 99久久精品99国产精品 | 日本黄色动态图| 视频国产一区| 久久国产天堂福利天堂| 天天做天天爱夜夜爽| 琪琪一区二区三区| 国产精品9999久久久久仙踪林| 青青草观看免费视频在线 | 国产一区二区精品丝袜| 九九视频在线观看| 久久久久国内| 91嫩草免费看| 都市激情一区| 午夜精品久久久久久久蜜桃app| 激情综合网俺也去| 一区二区三区免费在线看| 亚洲欧美制服第一页| 神马午夜精品91| 99国产精品| 成人免费看吃奶视频网站| 污视频在线免费观看| 国产精品福利av| 免费成人午夜视频| 日韩成人精品| 在线免费观看羞羞视频一区二区| 亚洲一区二区91| 精品无码三级在线观看视频 | 国产人成在线视频| 亚洲一线二线三线视频| 黄色三级视频在线| 天堂成人娱乐在线视频免费播放网站 | 日本在线看片免费人成视1000| 香蕉成人伊视频在线观看| 亚洲免费av一区| 欧美激情在线免费| 久久久亚洲影院| 国产美女免费视频| 亚洲国产高清aⅴ视频| 日本韩国欧美在线观看| 亚洲精品在线播放| 欧美成人午夜激情在线| 怡红院男人的天堂| 国产日韩综合av| 黄色一级视频片| 日韩一级淫片| 久热99视频在线观看| 中文字幕理论片| 国产色一区二区| 免费观看精品视频| 狼人天天伊人久久| 久久久久久亚洲精品中文字幕| 97人妻人人澡人人爽人人精品| 日本一区二区三区dvd视频在线 | 特级毛片在线免费观看| 开心久久婷婷综合中文字幕| 在线视频欧美日韩精品| 国产一区免费看| 久久久精品日韩欧美| 丰满人妻中伦妇伦精品app| 欧美重口另类| 91av视频在线免费观看| 天堂在线资源库| 天天av天天翘天天综合网色鬼国产| 免费观看污网站| 亚洲大胆视频| 裸模一区二区三区免费| 欧美亚洲韩国| 中文字幕日本精品| 97精品久久人人爽人人爽| 中文字幕一区二区三| 亚洲av无日韩毛片久久| 中文精品久久| 国产激情美女久久久久久吹潮| 9999热视频在线观看| 日韩第一页在线| 亚洲国产精品无码久久久| 久久精品在线免费观看| 五月婷婷之婷婷| 欧美成人首页| 精品91免费| 玛雅亚洲电影| www.日韩av.com| 亚洲第一视频在线播放| 欧美日韩在线影院| 亚洲а∨天堂久久精品2021| 精品一区二区三区视频在线观看| 中文字幕第50页| 给我免费播放日韩视频| 日韩暖暖在线视频| 色三级在线观看| 精品精品国产高清a毛片牛牛| 国产小视频在线免费观看| 国产无一区二区| 久久6免费视频| 中文日韩欧美| 一本—道久久a久久精品蜜桃| 国产图片一区| 国产精品久久二区| 怡红院在线观看| 亚洲欧美综合v| 国产情侣在线播放| 五月天一区二区三区| 日韩高清a**址| 精品国产精品国产精品| www.欧美色图| 国产精品拍拍拍| 欧美视频二区| 色综合影院在线观看| 日韩在线成人| 国产精品三级久久久久久电影| 羞羞的视频在线观看| 亚洲色图综合网| 国产又粗又大又爽| 色综合天天综合色综合av| 国产高潮流白浆| 国产日产欧产精品推荐色 | 久久wwww| 国产精品高清在线| 9lporm自拍视频区在线| 久久精品最新地址| 毛片免费在线观看| 精品日韩av一区二区| 伊人网综合在线| 欧美午夜www高清视频| 九九视频免费看| 国产精品毛片无遮挡高清| 538国产视频| 国产电影一区二区三区| 午夜激情av在线| 久久亚洲不卡| 日韩av片在线看| 黄色日韩在线| 老司机午夜免费福利视频| 日本a级不卡| 欧美日韩另类综合| 国产精品对白久久久久粗| 成人免费福利在线| 成人在线免费av| 国产91亚洲精品| 一区二区电影免费观看| 日韩a一区二区| 国产一区二区香蕉| 香蕉久久免费电影| 91极品视频在线| 岛国片av在线| 欧美极品在线视频| 综合久久2o19| 久久不射电影网| 二区三区四区高清视频在线观看| 中文字幕欧美精品在线| av每日在线更新| 中文字幕久久精品| 亚洲1卡2卡3卡4卡乱码精品| 在线视频中文亚洲| 免费看国产黄色片| 国产综合自拍| 800av在线免费观看| 欧美日韩调教| 日韩av中文字幕第一页| 亚洲手机视频| 亚洲精品久久久久久久蜜桃臀| 欧美91视频| 狠狠干视频网站| 亚洲无线一线二线三线区别av| 亚洲乱码日产精品bd在线观看| 午夜日韩av| 欧美中日韩在线| 亚洲毛片一区| 91传媒久久久| 青椒成人免费视频| 日韩av自拍偷拍| 国产一区二区不卡老阿姨| 成人在线短视频| 成熟亚洲日本毛茸茸凸凹| av在线播放网址| 久久久亚洲午夜电影| 永久免费av无码网站性色av| 中文字幕一区二区不卡| 精国产品一区二区三区a片| 亚洲成a人片在线不卡一二三区 | av在线看片| 欧美激情一级精品国产| 麻豆理论在线观看| 国产成人一区二| 91精品福利观看| 国产精品免费看一区二区三区| 婷婷亚洲成人| 亚洲在线视频一区二区| 欧美精品网站| 国产a级一级片| 久久99国产精品久久99果冻传媒| 国模大尺度视频| 91色九色蝌蚪| 99精品中文字幕| 亚洲国产精品久久不卡毛片| 福利网址在线观看| 欧美精品黑人性xxxx| 丰满岳乱妇国产精品一区| 亚洲人成网站999久久久综合| 哥也色在线视频| 97av在线播放| 久久亚洲资源中文字| 国内视频一区二区| 欧美电影三区| 久艹视频在线免费观看| 老汉av免费一区二区三区| 美女扒开腿免费视频| 亚洲国产高清不卡| 伊人国产在线观看| 欧美日韩国产一级二级| 五月天婷婷在线观看| 久久久999精品| 自拍在线观看| 99久久99久久| 日韩高清欧美| 国产精品一区二区免费在线观看| 激情文学综合丁香| 瑟瑟视频在线观看| 亚洲影院在线观看| 亚洲一区中文字幕永久在线| 亚洲激情视频在线观看| www视频在线免费观看| 日韩美女中文字幕| 久久精品色综合| 少妇高潮大叫好爽喷水| 日韩电影在线观看网站| 欧美xxxxx精品| 一区二区三区日韩精品视频| 国产精品传媒在线观看| 亚洲精品www久久久久久广东| 成人福利片网站| 国产精品一区二区在线| 红桃成人av在线播放| 女人扒开屁股爽桶30分钟| 成人深夜在线观看| 欧美日韩一级在线观看| 欧美日韩亚洲综合一区二区三区 | 成人激情自拍| avove在线观看| 久久成人18免费观看| 亚洲一级片在线播放| 欧美日韩另类字幕中文| 人人妻人人澡人人爽人人欧美一区| 久久国产天堂福利天堂| 韩国三级成人在线| 曰韩不卡视频| 久久国产成人午夜av影院| 久久久久久久久福利| 91国偷自产一区二区开放时间 | 成人春色在线观看免费网站| 青少年xxxxx性开放hg| 久久国产精品露脸对白| 欧美视频一区二区在线| 欧美日韩一区二区欧美激情 | 久久久久五月天| 在线观看视频一区二区三区| 国产在线拍揄自揄拍无码| 国产在线视频一区二区| 日韩女优一区二区| 日韩西西人体444www| 最爽无遮挡行房视频在线| 亚洲综合自拍一区| 一区二区三区四区在线观看国产日韩 | 国产精品一区二区在线观看网站 | 欧美日韩亚洲系列| 天天躁日日躁狠狠躁喷水| 欧洲成人免费视频| 亚洲免费专区| 国产一级特黄a大片免费| 中文字幕av一区二区三区免费看| 中文字幕永久在线观看| 久久久久在线视频| 26uuu色噜噜精品一区| 国产一级性生活| 亚洲成人中文字幕| 国内激情视频在线观看| 久久伦理网站| 日本午夜精品一区二区三区电影 | 91久久精品无码一区二区| 久久精品成人欧美大片古装| 亚洲不卡在线| 欧美黑人经典片免费观看| 久久久久久亚洲综合影院红桃| 伊人免费在线观看高清版| 久久成人国产精品| 久久动漫网址| 婷婷六月天在线| 亚洲美女少妇撒尿| 四虎在线视频免费观看| 国产精品精品视频| 欧美精品91| 波多野结衣a v在线| 欧美久久一二三四区| 黄色大片在线| 日韩三级在线播放| 国产丶欧美丶日本不卡视频| 九九热在线免费观看| 久久九九全国免费精品观看| 成人在线视频你懂的| 国产精品一区二区羞羞答答| 亚洲一区二区三区小说| 国产高清在线看| 成人综合av网| 免费成人av在线| 日韩黄色精品视频| 色婷婷综合久久久久中文字幕1| 成人h动漫免费观看网站| 午夜激情av在线| 天天综合日日夜夜精品| 日本在线免费网| 蜜桃免费一区二区三区| 国产精品一二三四区| 国产主播第一页| 九九热在线精品视频| 欧美亚洲激情| 朝桐光av一区二区三区|