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

揭秘!Netflix百萬用戶的鍵值數據抽象層及其設計理念

網絡 網絡管理
Netflix 的鍵值服務是一種靈活、經濟高效的解決方案,支持從低流量到高流量場景的各種數據模式和用例,包括關鍵的 Netflix 流媒體用例。

在 Netflix,我們為數百萬用戶提供無縫、高質量的流媒體體驗的能力取決于強大的全球后端基礎設施。該基礎設施的核心是我們使用多個在線分布式數據庫,例如Apache Cassandra,這是一種以高可用性和可擴展性而聞名的 NoSQL 數據庫。Cassandra 是 Netflix 內各種用例的支柱,從用戶注冊和存儲觀看歷史記錄到支持實時分析和直播。

隨著新鍵值數據庫的引入和服務所有者推出新用例,我們遇到了許多數據存儲誤用方面的挑戰。首先,開發人員很難在這種跨多個商店的復雜全球部署中推斷一致性、耐用性和性能。其次,開發人員必須不斷重新學習新的數據建模實踐和常見但關鍵的數據訪問模式。這些挑戰包括尾部延遲和冪等性、管理具有多行的“寬”分區、處理單個大型“胖”列以及響應分頁緩慢。此外,與多個本機數據庫 API 的緊密耦合(這些 API 不斷發展,有時會引入向后不兼容的更改)導致整個組織都在進行工程工作以維護和優化我們的微服務的數據訪問。

為了克服這些挑戰,我們開發了一種基于數據網關平臺的整體方法。這種方法促成了幾種基礎抽象服務的創建,其中最成熟的是我們的鍵值 (KV) 數據抽象層 (DAL)。這種抽象簡化了數據訪問,增強了我們基礎設施的可靠性,并使我們能夠以最少的開發人員工作量支持 Netflix 要求的廣泛用例。

在這篇文章中,我們深入探討了 Netflix 的 KV 抽象的工作原理、指導其設計的架構原則、我們在擴展不同用例時面臨的挑戰,以及使我們能夠實現 Netflix 全球運營所需的性能和可靠性的技術創新。

鍵值服務

引入 KV 數據抽象服務是為了解決我們在分布式數據庫中面臨的數據訪問模式的持續挑戰。我們的目標是構建一個多功能且高效的數據存儲解決方案,可以處理各種各樣的用例,從最簡單的哈希圖到更復雜的數據結構,同時確保高可用性、可調一致性和低延遲。

數據模型

KV 抽象的核心是兩級映射 架構。第一級是散列字符串ID(主鍵),第二級是字節鍵值對的有序映射。此模型支持簡單和復雜的數據模型,在靈活性和效率之間取得平衡。

HashMap <String, SortedMap <Bytes, Bytes>>

Records對于結構化或按時間順序排列的復雜數據模型Events,這種兩級方法可以有效地處理分層結構,從而允許一起檢索相關數據。對于更簡單的用例,它還表示平面鍵值Maps(例如id → {"" → value})或命名Sets(例如id → {key → ""})。這種適應性使 KV 抽象可用于數百種不同的用例,使其成為在 Netflix 等大型基礎設施中管理簡單和復雜數據模型的多功能解決方案。

KV 數據可以在高層次上進行可視化,如下圖所示,其中顯示了三條記錄。

圖片圖片

message Item (   
  Bytes    key,
  Bytes    value,
  Metadata metadata,
  Integer  chunk
)

數據庫無關的抽象

KV 抽象旨在隱藏底層數據庫的實現細節,為應用程序開發人員提供一致的接口,而不管該用例的最佳存儲系統是什么。雖然 Cassandra 就是一個例子,但該抽象適用于多種數據存儲,如EVCache、DynamoDB、RocksDB等……

例如,當使用 Cassandra 實現時,抽象利用了 Cassandra 的分區和聚類功能。記錄ID充當分區鍵,項目鍵充當聚類列:

圖片圖片

Cassandra 中此結構對應的數據定義語言 (DDL) 是:

CREATE TABLE IF NOT EXISTS <ns>.<table> (
  id             text,
  key            blob,
  value          blob,
  value_metadata blob,

PRIMARY KEY (id, key))
WITH CLUSTERING ORDER BY (key <ASC|DESC>)

命名空間:邏輯和物理配置

命名空間定義了數據的存儲位置和存儲方式,在抽象底層存儲系統的同時提供邏輯和物理分離。它還充當訪問模式(例如一致性或延遲目標)的中央配置。每個命名空間可以使用不同的后端:Cassandra、EVCache 或多個后端的組合。這種靈活性使我們的數據平臺能夠根據性能、耐用性和一致性需求將不同的用例路由到最合適的存儲系統。開發人員只需提供他們的數據問題,而不是數據庫解決方案!

在此示例配置中,ngsegment命名空間由 Cassandra 集群和 EVCache 緩存層支持,從而實現高度耐用的持久存儲和低延遲點讀取。

"persistence_configuration":[                                                   
  {                                                                           
    "id":"PRIMARY_STORAGE",                                                 
    "physical_storage": {                                                    
      "type":"CASSANDRA",                                                 
      "cluster":"cassandra_kv_ngsegment",                                
      "dataset":"ngsegment",                                             
      "table":"ngsegment",                                               
      "regions": ["us-east-1"],
      "config": {
        "consistency_scope": "LOCAL",
        "consistency_target": "READ_YOUR_WRITES"
      }                                            
    }                                                                       
  },                                                                          
  {                                                                           
    "id":"CACHE",                                                           
    "physical_storage": {                                                    
      "type":"CACHE",                                                     
      "cluster":"evcache_kv_ngsegment"                                   
     },                                                                      
     "config": {                                                              
       "default_cache_ttl": 180s                                             
     }                                                                       
  }                                                                           
]

KV 抽象的關鍵 API

為了支持不同的用例,KV 抽象提供了四個基本的 CRUD API:

PutItems — 將一個或多個項目寫入記錄

該PutItemsAPI是一個upsert操作,它可以在兩級map結構中插入新數據或者更新現有數據。

message PutItemRequest (
  IdempotencyToken idempotency_token,
  string           namespace, 
  string           id, 
  List<Item>       items
)

如您所見,請求包括命名空間、記錄 ID、一個或多個項目以及冪等性令牌,以確保重試相同的寫入是安全的。可以通過暫存塊然后使用適當的元數據(例如塊數)提交它們來寫入分塊數據。

**GetItems **— 從記錄中讀取一個或多個項目

該GetItemsAPI 提供了一種結構化且自適應的方法,可使用 ID、謂詞和選擇機制來獲取數據。這種方法既能滿足檢索大量數據的需求,又能滿足嚴格的性能和可靠性服務級別目標 (SLO)。

message GetItemsRequest (
  String              namespace,
  String              id,
  Predicate           predicate,
  Selection           selection,
  Map<String, Struct> signals
)

其中GetItemsRequest包括幾個關鍵參數:

  • 命名空間:指定邏輯數據集或表
  • Id:標識頂級 HashMap 中的條目
  • 謂詞:過濾匹配的項目,可以檢索所有項目 ( match_all)、特定項目 ( match_keys) 或某個范圍 ( match_range)
  • 選擇:縮小返回的響應范圍,例如page_size_bytes分頁、item_limit限制頁面中的項目總數和include/exclude或從響應中包含或排除較大的值
  • **信號:**提供帶內信令來指示客戶端功能,例如支持客戶端壓縮或分塊。

該GetItemResponse消息包含匹配的數據:

message GetItemResponse (
  List<Item>       items,
  Optional<String> next_page_token
)
  • 項目:根據請求中定義Predicate檢索到的項目列表。Selection
  • 下一頁標記:可選標記,用于指示后續讀取的位置(如果需要),這對于處理跨多個請求的大型數據集至關重要。分頁是有效管理數據檢索的關鍵組件,尤其是在處理可能超出典型響應大小限制的大型數據集時。

DeleteItems — 從記錄中刪除一個或多個項目

該DeleteItemsAPI 提供了靈活的數據刪除選項,包括記錄級、項目級和范圍刪除——同時支持冪等性。

message DeleteItemsRequest (
  IdempotencyToken idempotency_token,
  String           namespace,
  String           id,
  Predicate        predicate
)

就像在 API 中一樣GetItems,Predicate允許一次處理一個或多個項目:

  • 記錄級刪除(match_all):無論記錄中的項目數有多少,都會以恒定的延遲刪除整個記錄。
  • 項目范圍刪除(match_range):這將刪除記錄中的一系列項目。對于保留“n 個最新”或前綴路徑刪除很有用。
  • 項目級刪除(match_keys):刪除一個或多個單獨的項目。

某些存儲引擎(任何推遲真正刪除的存儲)如 Cassandra 因墓碑和壓縮開銷而難以處理大量刪除。鍵值優化記錄和范圍刪除,以便為操作生成單個墓碑 — 您可以在關于刪除和墓碑中了解有關墓碑的更多信息。

項目級刪除會創建許多墓碑,但 KV 通過基于TTL 的抖動刪除隱藏了存儲引擎的復雜性。項目元數據不會立即刪除,而是更新為已過期,并使用隨機抖動的 TTL 來錯開刪除。此技術可維護讀取分頁保護。雖然這不能完全解決問題,但它可以減少負載峰值并有助于在壓縮趕上時保持一致的性能。這些策略有助于保持系統性能、減少讀取開銷并通過最大限度地減少刪除的影響來滿足 SLO。

復雜的 Mutate 和 Scan API

除了對單個記錄進行簡單的 CRUD 之外,KV 還支持通過MutateItems和ScanItemsAPI 進行復雜的多項目和多記錄變更和掃描。PutItems還支持通過分塊協議在單個記錄中對大型 blob 數據進行原子寫入Item。這些復雜的 API 需要仔細考慮以確保可預測的線性低延遲,我們將在以后的文章中分享有關其實現的詳細信息。

可靠且可預測的性能設計理念

冪等性可以解決尾部延遲問題

為了確保數據完整性PutItems,DeleteItemsAPI 使用冪等性令牌,它可以唯一地標識每個可變操作,并保證操作按邏輯順序執行,即使由于延遲原因而進行對沖或重試也是如此。這在 Cassandra 等最后寫入獲勝的數據庫中尤其重要,因為確保請求的正確順序和重復數據刪除至關重要。

在 Key-Value 抽象中,冪等性 token 包含生成時間戳和隨機 nonce token。后端存儲引擎可能需要其中一個或兩個來刪除重復的突變。

message IdempotencyToken (
  Timestamp generation_time,
  String    token
)

在 Netflix,客戶端生成的單調令牌因其可靠性而受到青睞,尤其是在網絡延遲可能影響服務器端令牌生成的環境中。這將客戶端提供的單調generation_time時間戳與 128 位隨機 UUID相結合token。雖然基于時鐘的令牌生成可能會受到時鐘偏差的影響,但我們在 EC2 Nitro 實例上的測試表明偏差很小(不到 1 毫秒)。在某些需要更強排序的情況下,可以使用 Zookeeper 等工具生成區域唯一令牌,或者可以使用交易 ID 等全局唯一令牌。

下圖展示了我們在 Cassandra 集群上觀察到的時鐘偏差,表明該技術在可直接訪問高質量時鐘的現代云虛擬機上是安全的。為了進一步保持安全性,KV 服務器拒絕帶有較大偏移的令牌的寫入,這既可以防止易受這些攻擊的存儲引擎出現靜默寫入丟棄(寫入的時間戳遠在過去)和不可變的末日石(寫入的時間戳遠在未來)。

圖片圖片

通過分塊處理大數據

鍵值對還旨在高效處理大型數據塊,這是傳統鍵值對存儲的常見挑戰。數據庫通常面臨每個鍵或分區可存儲的數據量限制。為了解決這些限制,KV 使用透明分塊來高效管理大數據。

對于小于 1 MiB 的項目,數據直接存儲在主后備存儲(例如 Cassandra)中,以確保快速高效的訪問。但是,對于較大的項目,只有 id 、 key和元數據存儲在主存儲中,而實際數據被分成較小的塊并單獨存儲在塊存儲中。此塊存儲也可以是 Cassandra,但具有針對處理大值優化的不同分區方案。冪等性令牌將所有這些寫入綁定到一個原子操作中。

通過將大型項目拆分成塊,我們確保延遲與數據大小成線性比例,從而使系統既可預測又高效。未來的博客文章將更詳細地描述分塊架構,包括其復雜性和優化策略。

客戶端壓縮

KV 抽象利用客戶端有效負載壓縮來優化性能,尤其是對于大數據傳輸。雖然許多數據庫都提供服務器端壓縮,但在客戶端處理壓縮可以減少昂貴的服務器 CPU 使用率、網絡帶寬和磁盤 I/O。在我們的一個部署中,這有助于支持 Netflix 的搜索,啟用客戶端壓縮可將有效負載大小減少 75%,從而顯著提高成本效率。

更智能的分頁

我們選擇以字節為單位的有效負載大小作為每個響應頁面的限制,而不是項目數量,因為這使我們能夠提供可預測的操作 SLO。例如,我們可以在 2 MiB 頁面讀取上提供個位數毫秒的 SLO。相反,使用每頁項目數作為限制會導致不可預測的延遲,因為項目大小存在很大差異。如果每頁 10 個項目的請求是 1 KiB 而不是 1 MiB,則延遲可能會有很大差異。

使用字節作為限制會帶來挑戰,因為很少有后備存儲支持基于字節的分頁;大多數數據存儲使用結果數(例如 DynamoDB 和 Cassandra 按項目數或行數進行限制)。為了解決這個問題,我們對后備存儲的初始查詢使用靜態限制,使用此限制進行查詢,然后處理結果。如果需要更多數據來滿足字節限制,則將執行其他查詢,直到滿足限制,丟棄多余的結果并生成頁面令牌。

這種靜態限制可能會導致效率低下,結果中的一個大項可能會導致我們丟棄許多結果,而小項可能需要多次迭代才能填滿一頁,從而導致讀取放大。為了緩解這些問題,我們實現了自適應分頁,可根據觀察到的數據動態調整限制。

自適應分頁

當發出初始請求時,將在存儲引擎中執行查詢并檢索結果。當消費者處理這些結果時,系統會跟蹤消費的項目數量和使用的總大小。這些數據有助于計算近似的項目大小,該大小存儲在頁面令牌中。對于后續的頁面請求,這些存儲的信息允許服務器對底層存儲應用適當的限制,從而減少不必要的工作并最大限度地減少讀取放大。

雖然此方法對于后續頁面請求有效,但對于初始請求會發生什么情況?除了將項目大小信息存儲在頁面令牌中之外,服務器還會估算給定命名空間的平均項目大小并將其緩存在本地。此緩存估算值可幫助服務器為初始請求在后備存儲上設置更優化的限制,從而提高效率。服務器會根據最近的查詢模式或其他因素不斷調整此限制以保持其準確性。對于后續頁面,服務器會同時使用緩存數據和頁面令牌中的信息來微調限制。

圖片圖片

除了自適應分頁之外,如果服務器檢測到處理請求有可能超出請求的延遲 SLO,則還有一種機制可以提前發送響應。

例如,假設客戶端提交的GetItems請求每頁限制為 2 MiB,最大端到端延遲限制為 500 毫秒。在處理此請求時,服務器會從后備存儲中檢索數據。此特定記錄包含數千個小項目,因此收集整頁數據通常需要的時間超過 500 毫秒的 SLO。如果發生這種情況,客戶端將收到 SLO 違規錯誤,導致請求失敗,即使沒有任何異常。為了防止這種情況,服務器會在獲取數據時跟蹤已用時間。如果它確定繼續檢索更多數據可能會違反 SLO,則服務器將停止處理進一步的結果并返回帶有分頁令牌的響應。

圖片圖片

這種方法可確保請求在 SLO 內得到處理,即使未滿足整個頁面大小,也能為客戶端提供可預測的進度。此外,如果客戶端是具有適當截止期限的 gRPC 服務器,則客戶端足夠智能,不會發出進一步的請求,從而減少無用的工作。

如果您想了解更多信息,Netflix 如何確保高可靠性的在線狀態系統一文將更詳細地討論這些技術以及許多其他技術。

信號

KV 使用帶內消息傳遞(我們稱之為信令),允許動態配置客戶端,并使其能夠將其功能傳達給服務器。這確保了配置設置和調整參數可以在客戶端和服務器之間無縫交換。如果沒有信令,客戶端將需要靜態配置(每次更改都需要重新部署),或者,如果使用動態配置,則需要與客戶端團隊進行協調。

對于服務器端信號,當客戶端初始化時,它會向服務器發送握手。服務器會以信號(例如目標或最大延遲 SLO)進行響應,從而允許客戶端動態調整超時和對沖策略。然后會在后臺定期進行握手以保持配置最新。對于客戶端通信信號,客戶端會隨每個請求一起傳達其功能,例如它是否可以處理壓縮、分塊和其他功能。

圖片圖片

Netflix 的 KV 使用情況

KV 抽象支持 Netflix 的幾個關鍵用例,包括:

  • 流元數據:高吞吐量、低延遲訪問流元數據,確保實時個性化內容交付。
  • 用戶資料:高效存儲和檢索用戶偏好和歷史記錄,實現跨設備的無縫、個性化體驗。
  • 消息傳遞:存儲和檢索消息傳遞需求的推送注冊表,使數百萬個請求能夠流經。
  • 實時分析:這可以持久產生大規模印象并提供對用戶行為和系統性能的洞察,將數據從離線移動到在線,反之亦然。

未來的增強功能

展望未來,我們計劃通過以下方式增強 KV 抽象:

  • 生命周期管理:對數據保留和刪除的細粒度控制。
  • 匯總:通過將包含多項的記錄匯總為較少的后備行來提高檢索效率的技術。
  • 新的存儲引擎:與更多存儲系統集成以支持新的用例。
  • 字典壓縮:在保持性能的同時進一步減少數據大小。

結論

Netflix 的鍵值服務是一種靈活、經濟高效的解決方案,支持從低流量到高流量場景的各種數據模式和用例,包括關鍵的 Netflix 流媒體用例。簡單而強大的設計使其能夠處理各種數據模型,如 HashMap、集合、事件存儲、列表和圖形。它從我們的開發人員那里抽象了底層數據庫的復雜性,使我們的應用程序工程師能夠專注于解決業務問題,而不是成為每個存儲引擎及其分布式一致性模型的專家。隨著 Netflix 不斷在在線數據存儲方面進行創新,KV 抽象仍然是高效、可靠地大規模管理數據的核心組件,為未來的增長奠定了堅實的基礎。

責任編輯:武曉燕 來源: 路條編程
相關推薦

2014-07-10 10:19:47

Adobe

2022-08-19 06:42:11

數據庫高并系統

2013-09-17 10:35:55

2014-12-12 09:43:13

阿里巴巴安全漏洞信息泄露

2013-10-04 11:39:46

2013-10-03 16:55:31

2012-04-21 19:00:07

2019-04-16 09:40:12

服務器系統數據庫

2019-04-04 09:59:06

服務器系統Web

2023-12-29 16:00:22

2024-06-17 16:46:41

2025-06-12 02:22:00

Netflix前端系統

2021-04-15 07:53:15

ParkMobile數據泄露網絡犯罪

2013-06-24 11:40:00

Facebook用戶信息泄露

2021-07-22 06:27:31

打印機漏洞網絡攻擊

2018-09-12 11:54:46

2023-06-30 13:58:28

互聯網數據

2023-12-06 07:22:36

2025-06-05 09:50:50

2022-02-10 19:14:21

網絡攻擊服務癱瘓數據服務
點贊
收藏

51CTO技術棧公眾號

日本高清久久一区二区三区| 色偷偷偷亚洲综合网另类| 欧美 亚洲 视频| aaa一区二区三区| 亚洲欧美在线专区| 精品欧美一区二区久久| 国产91xxx| 久久电影中文字幕| 蜜臀av性久久久久蜜臀aⅴ流畅 | 久久五月天婷婷| yjizz国产| 日本在线电影一区二区三区| 日韩一级在线观看| 高清在线观看免费| av电影在线播放高清免费观看| 韩国v欧美v日本v亚洲v| 欧美疯狂xxxx大交乱88av| 在线观看日韩精品视频| 国产成人精品一区二区三区视频| 亚洲久本草在线中文字幕| 激情小说综合区| 中国女人一级一次看片| 欧美女人交a| 亚洲人成五月天| 成人性生交视频免费观看| 麻豆蜜桃在线| 国产精品视频麻豆| 国产欧美一区二区在线播放| 国产三级理论片| 亚洲视频狠狠| 日韩中文有码在线视频| 国产免费一区二区三区最新6| 亚洲不卡系列| 亚洲国产精品久久久男人的天堂 | www.欧美精品| 久久久久成人精品无码中文字幕| 日韩免费在线电影| 精品国产1区2区| 浴室偷拍美女洗澡456在线| 亚洲日本香蕉视频| 亚洲免费一区| 欧美性jizz18性欧美| 五月天激情图片| 成年在线观看免费人视频| 波多野结衣一区二区三区| 成人午夜在线观看| 无码一区二区三区| aa国产精品| 欧美国产日本在线| 污污的视频在线免费观看| 蜜臀av免费一区二区三区| 亚洲成人精品久久| 69久久精品无码一区二区| 久久91视频| 在线一区二区三区四区| 国产日韩一区二区在线| 国产在线xxx| 亚洲精品五月天| 在线一区亚洲| 三区四区在线视频| 中文字幕乱码一区二区免费| 欧美激情www| 天堂av在线资源| 国产成人精品免费在线| 5g国产欧美日韩视频| 91影院在线播放| 蜜桃精品视频在线观看| 国产精品成人国产乱一区| 看片网址国产福利av中文字幕| 亚洲国内欧美| 国模私拍视频一区| 国产在线视频二区| 亚洲午夜91| 久久免费福利视频| 国产成人啪精品午夜在线观看| 狠狠干综合网| 97免费中文视频在线观看| 国产成人亚洲欧洲在线| 亚洲精一区二区三区| 性欧美在线看片a免费观看| 精品91久久久| 麻豆精品91| 国产精品91在线观看| 成人黄色激情视频| 九九**精品视频免费播放| 日韩中文字幕| 免费在线观看黄视频| 国产精品嫩草影院在线看| 亚洲欧洲日本专区| 91l九色lporny| 日韩国产在线| 久久精品影视伊人网| 999精品视频在线观看播放| 亚洲精品a级片| 久久99久国产精品黄毛片色诱| 欧美尤物巨大精品爽| 久久久久99精品成人片我成大片| 裸体一区二区| 国产欧美一区二区三区四区| 国产视频手机在线| 成人av资源网站| 乱色588欧美| 最新国产在线观看| 一区二区三区精品视频在线| 国产在线观看精品| 999精品国产| 成人av午夜影院| 日本视频一区在线观看| 麻豆tv免费在线观看| 亚洲一区二区偷拍精品| 97成人在线观看视频| 久久久久久久性潮| 精品国产免费一区二区三区四区| 中文字幕 欧美 日韩| 东京久久高清| 在线视频日韩精品| 久久久久久久久久91| 视频一区视频二区中文字幕| 91久久久国产精品| 日本国产在线| 亚洲欧美欧美一区二区三区| 黄色免费福利视频| 成人豆花视频| 亚洲女人天堂视频| 久操视频免费在线观看| 日本成人在线不卡视频| 亚洲图片另类小说| 亚洲av无码乱码在线观看性色| 国产成人aaaa| 91成人免费观看| 四虎在线免费看| 亚洲精品欧美激情| 成人免费无码av| 91精品国产自产在线丝袜啪| 中文精品久久| 国产最新精品视频| 一级aaaa毛片| 久久午夜羞羞影院免费观看| 国产黄色激情视频| 四虎影视成人精品国库在线观看 | 久久99久久久欧美国产| 蜜桃麻豆91| 草美女在线观看| 6080国产精品一区二区| 天天舔天天操天天干| 亚洲一区日韩| 国产精品日韩一区二区免费视频| 福利在线视频网站| 欧美最猛黑人xxxxx猛交| 亚洲精品中文字幕在线播放| 欧美福利视频| 成人欧美一区二区三区在线 | 国产91精品免费| 一级做a爰片久久| 经典三级一区二区| 亚洲欧美成人在线| 国产黄色免费观看| 91视频观看视频| 欧美日韩黄色一级片| 久久电影在线| 97精品欧美一区二区三区| 亚洲国产综合一区| 亚洲精品欧美二区三区中文字幕| xx欧美撒尿嘘撒尿xx| 日韩电影二区| 国产欧美一区二区三区视频| 麻豆91在线| 欧美一区二区三区在线视频| 免费在线观看h片| 国产一区二区三区久久久| 日韩第一页在线观看| 国产精品视频一区视频二区| 久久国产精品电影| a天堂中文在线观看| 亚洲精品视频自拍| 精品人妻一区二区免费| 亚洲国产导航| 久久国产手机看片| 欧美极品影院| 色婷婷av一区二区三区久久| 91黄色在线视频| 樱花草国产18久久久久| 黑森林av导航| 亚洲一区免费| 亚洲视频精品一区| 欧美激情三级| 97视频在线观看播放| 精品av中文字幕在线毛片| 欧美在线视频你懂得| 日本成人精品视频| 国产精品99久久久久久有的能看| 免费特级黄色片| 亚洲ab电影| 国产精品专区一| 性爱视频在线播放| 日韩国产一区三区| 中文字幕一区二区人妻| 亚洲精品视频一区| 国产精品久久久免费观看| 免费在线欧美视频| 国产乱子伦精品无码专区| 希岛爱理av免费一区二区| 国产精品亚洲精品| 免费在线看污片| 亚洲男女性事视频| 国产精品久久久久久免费| 精品高清一区二区三区| 日本裸体美女视频| 成人做爰69片免费看网站| 精品www久久久久奶水| 亚洲乱码免费伦视频| 精品在线不卡| 9999精品免费视频| 欧美在线免费观看| 亚洲按摩av| 夜夜嗨av色综合久久久综合网| 国产后入清纯学生妹| 色婷婷av久久久久久久| 欧美国产精品一二三| 国产欧美va欧美不卡在线| 国产人妻精品午夜福利免费| 青青草97国产精品免费观看 | 成人免费观看av| 亚洲欧美在线精品| 国产日产高清欧美一区二区三区| 国产又大又长又粗又黄| 自拍亚洲一区| 成人免费观看网站| 中文字幕日韩亚洲| 国产精品白嫩初高中害羞小美女| 国产白丝在线观看| 久久久精品欧美| 国产黄在线播放| 日韩激情第一页| 亚洲高清视频在线播放| 欧美人牲a欧美精品| 无码日韩精品一区二区| 五月天欧美精品| 亚洲色图综合区| 国产精品久久久久影院| 久久成人激情视频| jvid福利写真一区二区三区| 国产九九九视频| 久久精品国产一区二区三区免费看| 国产精品成人一区二区| 9999在线视频| 欧美成人激情视频| 婷婷在线视频| 国产一区二区三区中文| 日本私人网站在线观看| 亚洲国语精品自产拍在线观看| 不卡的日韩av| 欧美一级二级在线观看| 国产精品久久久午夜夜伦鲁鲁| 欧美色窝79yyyycom| 老熟妇一区二区三区| 色综合视频在线观看| 国产三级av片| 都市激情亚洲色图| 国产精品999在线观看| 亚洲国产美国国产综合一区二区| 妺妺窝人体色www聚色窝仙踪| 一区二区三区av电影| 麻豆疯狂做受xxxx高潮视频| 一区二区三区在线免费| 精品99在线观看| 亚洲综合色成人| 日本一区二区不卡在线| 婷婷成人激情在线网| 国产情侣在线视频| 黑人极品videos精品欧美裸| 在线能看的av| 91成人在线观看喷潮| 丰满熟女人妻一区二区三| 欧美日韩亚洲综合在线 | 欧美喷潮久久久xxxxx| 91资源在线视频| 制服.丝袜.亚洲.另类.中文| 精品国产av一区二区三区| 精品国产在天天线2019| 污视频网站免费观看| 亚洲性av网站| 香蕉视频免费在线播放| 蜜臀久久99精品久久久无需会员| 欧美aaaaaaa| 日本免费久久高清视频| 国产三级一区| 亚洲va久久久噜噜噜久久天堂| 一区二区三区自拍视频| 久中文字幕一区| 成人a'v在线播放| 免费观看国产视频在线| 国产欧美精品| 蜜桃免费在线视频| 国产一区二区电影| 色婷婷免费视频| 欧美激情一区二区三区在线| 九九精品在线观看视频| 色综合色综合色综合色综合色综合 | 国产精品影视在线| 国产精品无码专区| 国产精品久线观看视频| 精品无码黑人又粗又大又长| 色偷偷久久一区二区三区| 国产伦精品一区二区三区四区| 亚洲成人精品久久久| 加勒比一区二区| 国产综合久久久| 日本一区二区免费高清视频| 韩国一区二区三区在线观看| 日韩av资源在线| 国产中文字幕一区| 亚洲天堂资源在线| 中文字幕亚洲精品在线观看| 欧美xxx视频| 欧美大胆人体bbbb| 四虎国产精品永远| 天堂精品中文字幕在线| 免费毛片小视频| 美女免费视频一区二区| 亚洲视频在线一区观看| 亚洲ⅴ国产v天堂a无码二区| 亚洲精品伦理在线| 中文字幕永久在线| 精品福利一二区| 天堂中文а√在线| 欧美综合国产精品久久丁香| 麻豆国产精品| 日韩欧美国产二区| 最新成人av网站| 国产一区二区在线观看免费视频| 91视频在线看| 国产乱国产乱老熟300| 欧美影院精品一区| 天堂91在线| 国内精品视频在线| 欧美经典影片视频网站| 五月天亚洲综合小说网| 欧美一级播放| 国内精品免费视频| 亚洲免费成人av| 在线观看日批视频| 亚洲色图第一页| 黄色18在线观看| 国产高清自拍99| 一本到12不卡视频在线dvd| 亚洲无吗一区二区三区| 久久久久久9999| 午夜影院在线看| 精品国产免费人成电影在线观看四季| 毛片激情在线观看| 国产欧美日韩中文字幕在线| 国产一区日韩| 免费在线观看的毛片| 91在线porny国产在线看| 国产精品成人aaaa在线| 日韩欧美一区在线| 国产激情在线视频| 91视频88av| 综合色一区二区| 免费看的av网站| 亚洲男人天堂av网| 国产ts变态重口人妖hd| 久久伊人91精品综合网站| 久久女人天堂| 香蕉精品视频在线| 国产一区视频导航| www.超碰在线观看| 日韩一区二区三区在线观看| 宅男网站在线免费观看| 99在线观看| 亚洲特色特黄| 免费成人深夜夜行p站| 欧美性猛交xxxx免费看漫画| 你懂的在线网址| 国产精品对白刺激| 久久性感美女视频| 毛片毛片毛片毛片毛| 洋洋成人永久网站入口| y111111国产精品久久久| 91精品免费视频| 国产精品97| 成人免费播放视频| 亚洲一区二区影院| 亚洲三级中文字幕| 国产97在线亚洲| 超碰在线caoporn| 懂色av中文一区二区三区 | 第84页国产精品| 在线中文字幕不卡| 欧美日本高清| 不卡一区二区三区视频| 国产精品久久久久久久久久妞妞| 免费毛片视频网站| 88在线观看91蜜桃国自产| 黄色美女视频在线观看| 欧美在线激情| 国内精品第一页| 色网站在线播放| 日韩亚洲精品电影|