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

字節跳動 Flink 狀態查詢實踐與優化

原創 精選
數據庫
本篇文章介紹了字節跳動在 Flink 狀態查詢方面所進行的優化,解決了查詢 Flink 任務狀態時開發成本高及無法查詢狀態元信息等問題。

本篇文章介紹了字節跳動在 Flink 狀態查詢方面所進行的優化,解決了查詢 Flink 任務狀態時開發成本高及無法查詢狀態元信息等問題,提出了 State Query on Flink SQL 的解決方案,讓用戶使用 Flink Batch SQL 就可以快速查詢 Flink 任務狀態。

背景

眾所周知,Flink 中的 State 保存了算子計算過程的中間結果。當任務出現異常時,可以通過查詢任務快照中的 State 獲取有效線索。

但目前對于 Flink SQL 任務來說,當我們想要查詢作業 State 時,通常會因為無法獲知 State 的定義方式和具體類型等信息,而導致查詢 State 的成本過高。

為了解決這個問題,字節跳動流式計算團隊在內部提出了 State Query on Flink SQL 的解決方案——用戶通過寫 SQL 的方式就可以簡單地查詢 State。本文將主要介紹字節跳動在 Flink 狀態查詢這方面所進行的相關工作。

State Processor API 介紹

圖片

提到狀態查詢,我們自然會聯想到 Flink 在 1.9 版本提出的特性 -- State Processor API。使用 State Processor API,我們可以將作業產生的 Savepoint 轉換成 DataSet,然后使用 DataSet API 完成對 State 的查詢、修改和初始化等操作。

圖片

下面簡單介紹一下如何使用 State Processor API 來完成 State 的查詢:

  • 首先創建 ExistingSavepoint 用來表示一個 Savepoint。初始化 ExistingSavepoint 時需要提供 Savepoint 路徑和 StateBackend 等信息;
  • 然后實現 ReaderFunction 用于重新注冊所需要查詢的 State 以及定義處理 State 的方式。查詢狀態的過程中會遍歷所有的 Key 并按照我們定義的方式去操作 State;
  • 最后,調用 Savepoint.readKeyedState 并傳入算子的 uid 和 ReaderFunction,就可以完成 State 的查詢。

圖片

接下來為大家簡述一下 State 查詢背后的原理。

在 Savepoint 目錄中包含兩種文件,一種是狀態數據文件,比如上圖中的 opA-1-state ,這個文件里面保存著算子 A 在第一個 SubTask 狀態的明細數據;還有一種元數據文件,對應上圖中的 _metadata,元數據文件中保存了每個算子和狀態文件的映射關系。

當我們在進行狀態查詢的時候。首先在 Client 端會根據 Savepoint 路徑去解析 metadata 文件。通過算子 ID,可以獲取需要查詢的狀態所對應的文件的句柄。當狀態查詢真正執行時,負責讀取狀態的 Task 會創建一個新的 StateBackend ,然后將狀態文件中的數據恢復到 Statebackend 中。等到狀態恢復完成之后就會遍歷全部的 Key 并把對應的狀態交給 ReaderFunction 處理。

圖片

有些同學可能會問,既然社區已經提供了查詢 State 的功能,我們為什么還要去做同樣的工作呢?主要是因為我們在使用 State Processor API 的過程中發現一些問題:

  • 每次查詢 State 我們都需要獨立開發一個 Flink Batch 任務,對用戶來說具有一定的開發成本;
  • 實現 ReaderFunction 的時候需要比較清晰地了解任務狀態的定義方式,包括 State 的名稱、類型以及 State Descriptor 等信息,對用戶來說使用門檻高較高;
  • 使用 State Processor API 時,只能查詢單個算子狀態,無法同時查詢多個算子的狀態;
  • 無法直接查詢任務狀態的元信息,比如查詢任務使用了哪些狀態,或者查詢某個狀態的類型。

圖片

總體來說,我們的目標有兩個,一是降低用戶的使用成本;二是增強狀態查詢的功能。我們希望用戶在查詢 State 時能用最簡單的方式;同時也不需要知道任何信息。

此外,我們還希望用戶能同時查詢多個算子的 State ,也可以直接查詢作業使用了哪些 State,每個 State 的類型是什么。

因此,我們提出了 State Query on Flink SQL 的解決方案。簡單來說是把 State 當成數據庫一樣,讓用戶通過寫 SQL 的方式就可以很簡單地查詢 State。

圖片

在這個方案中,我們需要解決兩個問題:

  • 如何對用戶屏蔽 State 的信息:參考 State Processor API 我們可以知道,查詢 State 需要提供非常多的信息,比如 Savepoint 路徑、 StateBacked 類型、算子 id 、State Descriptor 等等。通過 SQL 語句顯然難以完整地表述這些復雜的信息,那么查詢狀態到底需要哪些內容,我們又如何對用戶屏蔽 State 里復雜的細節呢?這是我們面對的第一個難點。
  • 如何用 SQL 表達 State:State 在 Flink 中的存儲方式并不像 Database 一樣,我們如何去用 SQL 來表達狀態的查詢過程呢?這是我們要解決的另一個難點。

StateMeta Snapshot 機制

圖片

首先我們來回答第一個問題,查詢一個 State 需要哪些信息呢?

可以參考上文中 State Processor API 的示例,當我們創建 ExistingSavepoint 和 ReaderFunction 的時候,我們需要提供的信息有 Savepoint 路徑、Backend 類型、OperatorID、算子 key 的類型、State 名稱以及 Serializer 等等,我們可以將這些統一稱為狀態的元信息。

對于 Flink SQL 任務來說,要清楚地了解這些信息,對用戶來說門檻是非常高的。我們的想法是讓用戶只需要提供最簡單的信息,即 Savepoint ID ,然后由 Flink 框架把其他的元信息都存在 Savepoint 中,這樣就可以對用戶屏蔽 State 那些復雜的細節,完成狀態的查詢。因此,我們引入了 StateMeta Snapshot 機制。

圖片

StateMeta Snapshot 簡單來說就是把狀態的元信息添加到 Savepoint Metadata 的過程,具體步驟如下:

  • 首先在 State 注冊的時候,Task 會把 operatorName\ID\KeySerializer\StateDescriptors 等元信息都保存在 Task 的內存中;
  • 觸發 Savepoint 時,Task 會在制作快照的同時,對狀態的元信息也同樣進行快照。快照完成之后將狀態的元信息 (StateMeta) 和狀態文件的句柄 (StateHandle) 一起上報給 JobManager;
  • JobManager 在收到所有 Task 上報的 StateMeta 信息之后 ,將這些狀態元信息進行合并,最后會把合并之后的狀態元信息保存到 Savepoint 目錄里名為 stateInfo 的文件中。

之后在狀態查詢時就只需解析 Savepoint 中的 stateInfo 文件,而不再需要用戶通過代碼去輸入這些 State 的元信息。通過這樣的方式可以很大程度地降低用戶查詢狀態的成本。

State as Database

接下來我們來回答第二個問題,我們如何用 SQL 來表達 State。其實社區在設計 State Processor API 的時候就提出了一些解決思路,也就是 State As Database。

圖片

在傳統的數據庫中,通常用 Catalog、Database、Table 這個三個元素來表示一個 Table,其實我們也可以將用樣的邏輯到映射到 Flink State 上。我們可以把 Flink 的 State 當作一種特殊的數據源,作業每次產生的 Savepoint 都當作一個獨立 DB 。在這個 DB 中,我們將 State 元信息、State 的明細數據,都抽象成不同的 Table 暴露給用戶,用戶直接查詢這些 Table 就可以獲取任務的狀態信息。

圖片

首先我們來看如何把 State 表示為 Table。我們都知道在 Flink 中,常用的 State 有兩種類型,分別是 KeyedState 和 OperatorState。

  • 對于 OperatorState 來說,它只有 Value 這一個屬性,用來表示這個 State 具體的值。因此我們可以把 OperatorState 表示為只包含一個 Value 字段的表結構。
  • 對于 KeyedState 來說,每個 State 在不同的 Key 和 Namespace 下的值可能都不一樣, 因此我們可以將 KeyedState 表示為一個包含 Key、Namespace、Value 這三個字段的表結構。

圖片

當我們抽象出了單個 State 之后,想要表示多個 State 就比較容易了。可以看到在上圖的例子中,這個算子包含 3 個 State,分別是兩個 KeyedState 和一個 OperatorState,我們只需要將這些 Table 簡單的 union 起來,再通過 state_name 字段去區分不同的 State,就可以表示這個算子中所有的 State。

圖片

最后還有一個問題,我們如何知道一個任務到底用了哪些 State 或者這些 State 的具體類型呢?

為了解決這個問題,我們定義了一種特殊表 -- StateMeta ,用來表示一個 Flink 任務中所有 State 的元信息。StateMeta 中包含一個任務中每個 State 的名稱、State 所在的算子 ID 、算子名稱 、Key 的類型和 Value 的類型等等,這樣用戶直接查詢 StateMeta 這個表就能獲取任務中所有狀態的元信息。

使用 Flink Batch SQL 查詢任務狀態

圖片

以上就是狀態查詢方案的整體介紹。那我們到底如何去查詢一個 State 呢,我們以一個 Word Count 任務為例來說明。

首先,我們需要創建一個 Flink SQL 任務并啟動。通過 web-ui 可以看到這個任務中包含三個算子,分別是 Source,Aggregate 還有 Sink。然后,我們可以觸發 Savepoint,當 Savepoint 制作成功之后獲取對應的 SavepointID。我們可以通過 SavepointID 去完成作業狀態的查詢。

圖片

假如我們現在對 Flink SQL 任務中狀態的使用一無所知,那么首先我們需要查詢的就是這個 Flink 任務中包含哪些 State 以及這些 State 的類型。我們可以從 StateMeta 表獲取這些信息。如上圖中場景一所示,通過查詢 StateMeta 表,可以看到這個任務包含一個 ListState 和一個 ValueState,分別存在于 Source 算子和 Aggregate 算子中。

此外,有些對 Flink 比較了解的同學知道,KafkaSource 中的 State 是用于記錄當前消費的 Offset 信息。如場景二所示,我們可以通過查詢 Source 算子的狀態,獲取到任務中消費 Kafka Topic 的 Partition 和 Offset 信息。

還有一種比較常見的場景,比如下游的業務同學發現某個 key(比如 key_662)的結果異常。我們在定位問題的時候可以直接去查詢作業中 aggregate 算子中的狀態,同時去指定 key 等于 key_662 作為查詢條件。如上圖場景三所示,通過查詢的結果可以看到,當 key 為 662 時對應的聚合結果是 11290。用戶使用這樣的方式就可以比較方便地驗證狀態是否正確。

未來展望

圖片

未來,我們計劃進一步豐富 State 的功能,目前我們支持了使用 SQL 查詢 State 的功能 ,其實社區還提供了 State 修改和初始化的能力。在一些場景下,這些能力也比較重要。比如,我們已知狀態中的部分 key 計算錯誤,希望將狀態中這部分的數據進行修正;或者任務邏輯發生變更以后和之前的狀態不能完全兼容, 這個時候我們希望可以通過狀態修改和初始化的能力去生成一個新的 Savepoint。同樣,在使用方式上我們也希望用戶能直接使用 SQL 中 insert 和 update 語法來完成狀態的修改和初始化操作。

其次,我們會進一步加強 State 的可用性。我們使用 DAG 編輯的方案解決了作業拓撲發生變化時產生的狀態不兼容問題,但是當 Flink SQL 任務修改字段時 State Serializer 可能會變化,同樣導致狀態無法兼容。針對這種情況我們設計了完整的 Flink SQL State Schema Evolution 方案,可以極大的增強 Flink SQL 任務發生變化之后狀態的恢復能力,目前正在落地中。我們還提供了完善的狀態恢復事前檢查能力,能夠做到在任務上線之前就檢查出狀態是否兼容并告知用戶,避免狀態不兼容引起作業啟動失敗對線上造成影響。

責任編輯:未麗燕 來源: 字節跳動技術團隊
相關推薦

2022-08-21 21:28:32

數據庫實踐

2024-01-03 16:29:01

Agent性能優化

2022-04-07 16:35:59

PGO 優化profile 數據編譯優化

2024-09-25 15:57:56

2022-10-14 14:47:11

Spark字節跳動優化

2023-06-09 14:14:45

大數據容器化

2022-06-24 15:18:48

字節跳動數據庫ClickHouse

2024-04-23 10:16:29

云原生

2023-01-10 09:08:53

埋點數據數據處理

2022-06-06 11:55:12

Flink字節跳動State

2022-09-05 17:26:27

技術

2022-12-23 08:58:35

字節跳動YARN架構

2022-05-23 13:30:48

數據胡實踐

2022-06-22 06:49:39

Hertz開源HTTP 框架

2024-11-01 17:00:03

2022-07-18 16:02:10

數據庫實踐

2021-09-06 11:15:05

數據治理字節跳動埋點

2025-01-22 14:00:12

2024-08-22 14:53:24

PromptAI大模型

2022-07-08 09:26:45

Flink快手計算
點贊
收藏

51CTO技術棧公眾號

国产精品久久久久久久久久精爆| 亚洲区 欧美区| 欧美日韩在线看片| 国产高清久久久| 55夜色66夜色国产精品视频| 国产黄色片在线| 亚洲高清999| 日韩欧美国产网站| 男女h黄动漫啪啪无遮挡软件| 免费a视频在线观看| 日本怡春院一区二区| 欧美成人免费在线视频| 中文字字幕码一二三区| 中文字幕日本一区| 色综合视频在线观看| 好吊色视频988gao在线观看| 天堂av在线免费观看| 久久99热国产| 日本精品久久久| 午夜精品福利在线视频| 欧美男男gaytwinkfreevideos| 8x8x8国产精品| 国产精品少妇在线视频| 在线黄色网页| 欧美国产激情一区二区三区蜜月| 国产精品久久久久久久久久久久午夜片| 一级黄色av片| 一区二区三区国产在线| 欧美日韩国产999| 三级黄色免费观看| 欧美日韩激情| 亚洲欧美国产另类| 亚洲一区二区在线免费| 日韩成人久久| 欧美肥胖老妇做爰| 毛片毛片毛片毛片毛片毛片毛片毛片毛片| av人人综合网| 夜夜精品浪潮av一区二区三区| 中文字幕精品—区二区日日骚| 国产玉足榨精视频在线观看| 北岛玲一区二区三区四区| 亚洲综合中文字幕在线观看| 一区二区三区免费在线| 奇米影视在线99精品| 国产成人精品av在线| 国产高清中文字幕| 国产日韩欧美三级| 992tv成人免费影院| www.天天色| 欧美视频导航| 久操成人在线视频| 国产综合精品在线| 亚洲成在人线免费观看| 精品精品国产高清a毛片牛牛| 欧洲在线免费视频| 久久人体av| 在线观看欧美日本| 欧美网站免费观看| 蜜桃av.网站在线观看| 一区二区三区四区亚洲| 最新国产精品久久| 黄页视频在线播放| 亚洲三级电影网站| 干日本少妇视频| 中文在线观看免费| 最好看的中文字幕久久| 自拍偷拍亚洲色图欧美| 免费黄网站在线播放| 国产精品久久久久9999吃药| 亚洲激情一区二区三区| 国产在线视频你懂得| 国产精品私房写真福利视频| 免费在线成人av电影| 欧美zozo| 91色乱码一区二区三区| 日韩偷拍一区二区| 日本视频不卡| 亚洲卡通动漫在线| 成人免费在线视频播放| 国产精品186在线观看在线播放| 亚洲一区二区视频| 免费毛片小视频| 成人做爰视频www| 欧美日韩成人在线| 奇米777在线| 天堂av一区| 亚洲国产精品人久久电影| 亚洲做受高潮无遮挡| av在线不卡免费观看| x99av成人免费| 看片网站在线观看| 一区二区三区四区五区在线| 国产精品永久在线| 亚洲精品久久久久久无码色欲四季 | 视频一区在线视频| 国产精品视频资源| www.五月婷婷| 久久在线免费观看| 在线播放 亚洲| 国产伦理精品| 欧美日韩精品一区二区三区| 亚洲av无一区二区三区久久| 国产精品欧美大片| 一区二区三区在线播放欧美| 日韩一区二区不卡视频| 国内久久精品| 国产精品99久久久久久www| 国产成人免费看一级大黄| 91丨porny丨中文| 日韩欧美视频一区二区| 国产探花视频在线观看| 欧美伊人久久久久久午夜久久久久| 天天综合天天添夜夜添狠狠添| 国产成人tv| 少妇激情综合网| 中日韩精品视频在线观看| 美女看a上一区| 国产综合18久久久久久| 麻豆影视在线观看_| 精品日本高清在线播放| 污污视频在线免费| 欧美日韩国产免费观看视频| 欧美成人黄色小视频| 欧美在线视频精品| a级精品国产片在线观看| 一区二区三区四区欧美日韩| 欧美私密网站| 欧美一区二区三区免费大片 | 麻豆久久久久久久久久| 国产精品一区二区三区乱码| 日韩精品电影网站| 超碰在线cao| 日韩一级免费观看| 毛片视频免费播放| 久久精品二区三区| 国产综合av一区二区三区| av大全在线| 欧美日韩一区二区欧美激情 | 国产精品色哟哟| 日本www在线播放| 女一区二区三区| 欧美大片在线看| 国产情侣激情自拍| 国产精品乱人伦一区二区| 国产日韩一区二区在线观看| 美女av一区| 久久久久久尹人网香蕉| 成人av手机在线| 国产精品美日韩| 黄色国产精品视频| 九九综合在线| 国产成人在线一区| 国产日产精品久久久久久婷婷| 欧美性猛交xxxx免费看| 亚洲精品乱码久久| 在线成人h网| 国产精品免费区二区三区观看| 在线观看av免费| 欧美一级专区免费大片| 亚洲成人生活片| 国产成a人亚洲精品| 国产青草视频在线观看| 4438全国亚洲精品观看视频| 欧美丰满老妇厨房牲生活| av免费观看网址| 亚洲激情五月婷婷| 麻豆精品国产传媒| 一区久久精品| 精品国产一区二区三区麻豆小说| av中文字幕在线观看第一页| 日韩精品中文字幕久久臀| 台湾佬中文在线| 欧美国产欧美亚州国产日韩mv天天看完整 | 中文字幕免费高清在线| 婷婷精品进入| 动漫精品视频| 中文字幕在线官网| 国产一级揄自揄精品视频| 中文字幕a级片| 成人欧美一区二区三区视频网页| 久久精品久久99| 亚洲国产国产亚洲一二三| 久久亚洲综合网| 国产91亚洲精品久久久| 欧美老女人性视频| 亚洲精品一区二区三区不卡| 姬川优奈aav一区二区| 亚洲第一页av| 激情都市一区二区| 99在线免费视频观看| 亚洲+变态+欧美+另类+精品| 国产精品欧美一区二区| 4438x成人网全国最大| 日韩h在线观看| 一区二区三区黄色片| 亚洲成人av电影在线| a天堂中文字幕| 国产乱人伦精品一区二区在线观看| 免费国产黄色网址| 成人在线免费观看网站| 99re热精品| 精品无人乱码一区二区三区| 欧美老妇交乱视频| 国产日韩精品在线看| 精品美女在线播放| 福利网址在线观看| 香蕉乱码成人久久天堂爱免费| 人与嘼交av免费| 国产白丝精品91爽爽久久| 亚洲成色www.777999| 亚洲图片在线| 亚洲砖区区免费| 日韩伦理一区二区三区| 91精品在线观看视频| 国产直播在线| 美女视频黄免费的亚洲男人天堂| 青青草免费在线视频| 精品国产免费久久| 91 中文字幕| 日韩欧美中文字幕在线观看| 美女福利视频在线观看| 欧美国产日韩a欧美在线观看| 中文字幕一区二区人妻电影丶| 麻豆精品视频在线观看免费| 国产二区视频在线播放| 欧美另类专区| 在线观看成人一级片| 欧美午夜寂寞| 国产伦精品一区二区三区照片91 | 欧美日本高清| 国产亚洲美女久久| 亚洲 欧美 激情 小说 另类| 日韩免费看网站| 国产精品久久久国产盗摄| 欧美视频二区36p| 欧美日韩一级大片| 亚洲综合av网| 夫妻性生活毛片| 国产精品久久久久久久久果冻传媒 | 三妻四妾完整版在线观看电视剧 | 国模精品娜娜一二三区| 日韩一区网站| 91最新国产视频| 欧美高清xxx| 国产欧美精品一区二区三区-老狼 国产欧美精品一区二区三区介绍 国产欧美精品一区二区 | 99精品全国免费观看视频软件| 日本一区二区三区精品视频| 天堂99x99es久久精品免费| 成人免费在线一区二区三区| 精品视频成人| 亚洲资源在线看| 国产精品久久久久久久久久久久久久久 | 男生草女生视频| 久久久久久久免费视频了| 在线免费观看a级片| 99视频一区二区三区| 特级特黄刘亦菲aaa级| 国产成人精品一区二 | 国产91露脸合集magnet| 久久久久久久久久久影视| 国产精品羞羞答答xxdd| 性生活一级大片| 国产成+人+日韩+欧美+亚洲| 女性生殖扒开酷刑vk| 成人久久视频在线观看| 无码人妻一区二区三区免费n鬼沢 久久久无码人妻精品无码 | 隔壁人妻偷人bd中字| 亚洲成色精品| 久久久久久久久久久视频| 国产精品亚洲欧美| 妺妺窝人体色www在线小说| 国产一区二区精品| 成人免费xxxxx在线视频| 日本不卡一二三区黄网| 亚洲欧美日韩精品一区| 国产精品自拍在线| 国产a级黄色片| 国产情人综合久久777777| www.97视频| 亚洲曰韩产成在线| 精品无码人妻一区二区三区| 91高清在线观看| 国产视频一区二区三区四区五区| 日韩欧美国产一二三区| 亚欧洲精品视频| 最新日韩中文字幕| 亚洲图区一区| 欧洲亚洲免费视频| 久久女人天堂| 国产区欧美区日韩区| 一区二区三区视频免费观看| 小说区视频区图片区| 在线不卡亚洲| 视色视频在线观看| 高清av一区二区| 亚洲第一视频区| 亚洲一区免费观看| 久久久国产免费| 欧美成人精精品一区二区频| 男女网站在线观看| 最近2019免费中文字幕视频三| 18加网站在线| 国产精品美女免费看| 亚洲精品在线国产| 日韩欧美亚洲精品| 激情综合视频| wwwwwxxxx日本| 久久久久久综合| 麻豆changesxxx国产| 欧美亚洲一区二区三区四区| 性一交一乱一乱一视频| 一本色道久久88综合日韩精品| 少女频道在线观看高清| 国产精品人成电影| 国产精品国产| 在线播放 亚洲| 亚洲人成人一区二区三区| 爱情岛论坛亚洲首页入口章节| 高清av一区二区| 日韩一级片大全| 欧美影院精品一区| 亚洲色偷精品一区二区三区| 久久久久九九九九| 国产一区二区三区黄网站| 日本欧美精品久久久| 亚洲精品韩国| 特级黄色片视频| 国产精品伦一区二区三级视频| 亚洲 欧美 成人| 亚洲精品一线二线三线| 国产乱色在线观看| 国产综合福利在线| 欧美日韩国产在线观看网站| 凹凸国产熟女精品视频| av影院午夜一区| 欧美精品乱码视频一二专区| 欧美日韩高清在线| 国际av在线| 日韩免费不卡av| 久久国产精品色av免费看| 日本香蕉视频在线观看| 国产成人午夜片在线观看高清观看| 欧美性生交大片| 欧美伊人久久久久久久久影院| 日本成人一区| 欧美一级视频一区二区| 狼人精品一区二区三区在线| 国产美女在线一区| 国产一区二区在线看| 艳妇荡乳欲伦69影片| 欧美日本国产一区| 麻豆影院在线| 亚洲一区制服诱惑| 欧美三级特黄| 97精品人人妻人人| 欧美日韩国产色| 你懂的在线视频| 国产成人精品电影久久久| 一本久久青青| 亚洲国产精品久久久久爰色欲| 久久久不卡影院| 国产又粗又猛又黄视频| 国产一区二区三区网站| 福利视频一区| 中文字幕色一区二区| 国产精品一卡二卡在线观看| 超碰手机在线观看| 日韩网站在线看片你懂的| 波多野结衣在线播放| 国产精品自拍首页| 欧美亚洲三级| 国产调教在线观看| 91精品国产色综合久久| 色婷婷视频在线观看| 国产亚洲自拍偷拍| 亚洲综合国产| 日本成人精品视频| 精品国一区二区三区| 伊人网在线播放| 日韩一本精品| 国产老女人精品毛片久久| 国产精品23p| 日韩高清免费观看| 宅男噜噜噜66国产精品免费| 国产成人在线小视频| 久久久另类综合| 一级黄色片免费| 国内精品久久久久久影视8| 免费成人网www| 亚洲综合av在线播放| 国产精品理伦片| 蜜臀av午夜精品| 国产精品久久久久不卡| 欧美深夜福利| 亚洲无人区码一码二码三码的含义| 欧美一区午夜精品| 亚洲永久av| 少妇高潮大叫好爽喷水| 99精品视频免费在线观看| 中文字幕人妻丝袜乱一区三区|