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

Kafka 如何基于 KRaft 實現(xiàn)集群最終一致性協(xié)調(diào)

開發(fā) 架構
我們可以看出 KRaft 替換 ZK,并不是元數(shù)據(jù)存儲重新造輪子,而核心是集群協(xié)調(diào)機制的演進。整個通信協(xié)調(diào)機制本質(zhì)上是事件驅(qū)動模型,也就是 Metadata as an Event Log,Leader 通過 KRaft 生產(chǎn)權威的事件,F(xiàn)ollower 和 Broker 通過監(jiān)聽 KRaft 來獲得這些事件,并且順序處理事件,達到集群狀態(tài)和期望的最終一致。

一、架構概覽   

Zookeeper 提供了配置服務、分布式同步、命名服務、Leader 選舉和集群管理等功能,在大數(shù)據(jù)時代的開始很多開源產(chǎn)品都依賴 Zookeeper 來構建,Apache Kafka 也不例外。但是隨著 Kafka 功能的演進和應用的場景越來越多:

  • 基于 Zookeeper 的協(xié)作模式,使得 Kafka 的集群一致性維護越來越復雜;
  • 受到 Zookeeper 性能的限制,使得 Kafka 無法支撐更大的集群規(guī)模;
  • 并且 Zookeeper 自身帶來的運維復雜性和產(chǎn)品穩(wěn)定性,也同樣將復雜度和風險負擔傳遞到 Kafka 運維人員;

因此作為 Zookeeper 的替代,Kafka 3.3.1 提供了 KRaft 元數(shù)據(jù)管理組件。

下圖來自于 KIP-500 [1]提案,左右分別是 Zookeeper 模式和 KRaft 模式的部署架構圖。

圖片圖片

在 Zookeeper (后面簡稱為 ZK)模式下:

  • 運維部署:3 個 ZK 節(jié)點;2..N 個 Broker 節(jié)點,其中一個 Broker 承擔 Controller 的角色。除了拉起一套最小生產(chǎn)的 Kafka 集群需要至少 3 + N 的資源外,Kafka 的運維人員要同時掌握 ZK 和 Kafka Broker 兩套完全不同的系統(tǒng)的運維方式。
  • 通信協(xié)調(diào):ZK 節(jié)點之間通過 ZAB 協(xié)議進行一致性協(xié)調(diào);Broker 會通過 ZK 來選出一個 Controller 負責全局的協(xié)調(diào),同時也會直接修改 ZK 里的數(shù)據(jù);Controller 也會監(jiān)聽和修改 ZK 里的數(shù)據(jù),并調(diào)用 Broker 來完成集群的協(xié)調(diào)。雖然 ZK 之間的一致性由 ZAB 來保障了,但是 ZK 與 Controller 之間和 Controller 與 Broker 之間的一致性是相對比較脆弱的。

在 KRaft 模式下:

  • 運維部署:3 個 Controller 節(jié)點;0..N 個 Broker 節(jié)點。Kafka 節(jié)點可以同時承擔 Controller 和 Broker 兩個角色,因此一套最小生產(chǎn)集群只需要 3 個節(jié)點。在測試環(huán)境更可以只以 1 節(jié)點模式就可以輕量地拉起一個 Kafka 集群。
  • 通信協(xié)調(diào):Controller 節(jié)點底層通過 Raft 協(xié)議達成一致,Controller 的內(nèi)存狀態(tài)通過 #replay Raft Log 來構建,因此 Controller 之間的內(nèi)存狀態(tài)都是一致的;Broker 訂閱 KRaft Log 維護和 Controller 一致的內(nèi)存狀態(tài),并且通過事件驅(qū)動的方式執(zhí)行 Partition Reassignment 之類的操作來實現(xiàn)集群最終一致性協(xié)調(diào)。整個集群的狀態(tài)維護和一致性協(xié)調(diào)都是基于 KRaft 中的事件。

Raft 的原理和實現(xiàn)已經(jīng)有很多優(yōu)秀的文章介紹過了,就不在此贅述了。下面著重介紹一下 Kafka 如何基于 KRaft 實現(xiàn)集群的最終一致性協(xié)調(diào)。

二、最終一致性協(xié)調(diào)

最終一致性協(xié)調(diào)分為兩部分:Controller 內(nèi)存數(shù)據(jù)與 KRaft 的一致性;Broker (分區(qū) / 配置 / ...)狀態(tài)與期望的一致性。

2.1 Controller

Controller 在生產(chǎn)環(huán)境中通常由 3 個節(jié)點組成 Quorum,底層使用 KRaft 來進行一致性協(xié)調(diào),KRaft 的 Leader 即是 Controller Leader。

只有 Leader 會進行請求處理,F(xiàn)ollower 只會跟隨 Replay KRaft 中的數(shù)據(jù),請求處理流程簡要如下:

  1. 當 Leader 網(wǎng)絡層接收到 Broker 發(fā)來的請求后,會將請求首先放入到事件隊列中,由后臺的單線程來處理事件隊列中的請求。通過單線程處理機制簡化了并發(fā)編程的復雜度,并且確保所有請求可以順序處理;
  2. 單線程處理器運行請求對應的 Manager 邏輯。Manager 根據(jù)當前內(nèi)存中維護的狀態(tài),生成響應和變更的 Records;
  3. 最后再把變更的 Records 提交到 KRaft 中,等多數(shù)派確認后就可以將響應返回,并 #replay(Records) 修改 Manager 維護的內(nèi)存狀態(tài);
  4. 同時 Follower 也會將 KRaft 中的 Records #replay到內(nèi)存中,內(nèi)存數(shù)據(jù)持續(xù)的保持同步;

以 CAS(expectValue, newValue) 舉例說明上述的流程,假設內(nèi)存中的初始狀態(tài)為 1,Broker Client 提交了請求 CAS(1, 2) 到 Controller:

  1. 首先 Leader 會將請求放到事件隊列中;
  2. 然后 Manager 以單線程模式處理請求,判斷內(nèi)存中的值是 1,等于請求的 expectValue,因此生成成功響應和 Record{value = 2};
  3. 最后再把變更的 Records 提交到 KRaft 中,KRaft 確認后返回給請求方響應,并將 Record{value = 2} replay 到 Manager,Manager 內(nèi)存狀態(tài)更新為 2;

簡而言之,Controller 簡版的處理時序如下:

開始處理請求 A -> Manager 生成響應和 Records -> Records 在 KRaft 多數(shù)派確認 -> Manager#replay(Records) -> 返回響應 -> 處理下一條請求...

通過上述的處理時序,Controller 就可以做到“內(nèi)存狀態(tài)與 KRaft ”和“多節(jié)點之間的內(nèi)存狀態(tài)”的一致性:

  • 內(nèi)存狀態(tài)與 KRaft :Controller 的內(nèi)存狀態(tài)都是基于 KRaft 確認的 Records 變更 #replay出來的,因此內(nèi)存狀態(tài)和 KRaft 保持一致;
  • 多節(jié)點之間的內(nèi)存狀態(tài):KRaft 底層保證了多節(jié)點的 KRaft Log 是一致的,然后基于 “內(nèi)存狀態(tài)與 KRaft” 的一致性,通過傳遞性原則,因此多節(jié)點之間的內(nèi)存狀態(tài)也是一致的;

Controller 簡版的處理時序在正確性上沒什么問題,但在性能上有所瓶頸。假設每次 KRaft 多數(shù)派確認需要 2ms,意味著 Controller 處理請求的最大吞吐為 500 req/s。因此 Kafka 的實際處理模型中將最耗時的 KRaft 確認這步從處理時序中移除了。具體流程如下圖所示:

圖片圖片

相比簡版的處理時序:

  • Leader 的 Manager 產(chǎn)生出 Records 后立刻 #replay 更新內(nèi)存狀態(tài),并異步提交 Records 到 KRaft,這時候就可以繼續(xù)處理下一個請求了;
  • 響應仍舊是 KRaft 多數(shù)派確認后再返回;
  • Follower 的內(nèi)存狀態(tài)仍舊是從 KRaft Log 的 Records #replay 更新;

Controller 處理請求的最大吞吐為:Min(1s / Manager 代碼執(zhí)行 CPU 耗時, KRaft 寫入吞吐)。

然而先 #replay 到內(nèi)存再讓 KRaft 確認可能會造成內(nèi)存里面有臟數(shù)據(jù),仍舊以 CAS(1, 2) 舉例,考慮如下場景:

  1. Controller Leader 的 Manager 通過 #replay 將內(nèi)存值從 1 更新成 2;
  2. Leader 提交 Record{value=2}到 KRaft;
  3. 假設這時候由于心跳超時抖動等原因,導致該節(jié)點不再是 KRaft Leader 了,這時候會提交失敗,返回客戶端失敗;
  4. 這時 Controllers 節(jié)點內(nèi)存中的狀態(tài)分別為 2、1、1,KRaft 中的狀態(tài)為 1,集群狀態(tài)不一致;

為了解決這個問題,Kafka 設計了一系列支持 MVCC 的 Timeline 數(shù)據(jù)結構:TimelineHashMap、TimelineHashSet、TimelineInteger、TimelineLong 和底層的 SnapshotRegistry。Controller 的內(nèi)存狀態(tài)都通過 Timeline 數(shù)據(jù)結構來維護,當出現(xiàn) Leader 切換時,舊的 Leader 會將 Timeline 數(shù)據(jù)結構的數(shù)據(jù)回滾到上一個已經(jīng)被 KRaft 多數(shù)派確認的狀態(tài),來保證舊 Leader 內(nèi)存中不會有臟數(shù)據(jù)。

可能細心的小伙伴會發(fā)現(xiàn),解決了寫入的臟數(shù)據(jù)問題,那是不是可能讀到還未被 KRaft 確認的數(shù)據(jù)呢?Timeline 數(shù)據(jù)結構也考慮到了這點,例如 TimelineLong 提供了 #get(epoch) 接口,其中 epoch 通常傳入的是 KRaft CommitedOffset,以此來保障讀到的數(shù)據(jù)都是 KRaft 確認過的數(shù)據(jù)。

對 Timeline 數(shù)據(jù)結構有興趣的小伙伴,可以自行研究一下 server-common 模塊下 org.apache.kafka.timeline 這個包的實現(xiàn)。

2.2 Broker

在上一章節(jié)我們提到,Controller Follower 會 #replay KRaft 中的數(shù)據(jù)來構建自己的內(nèi)存狀態(tài)。Broker 同理也一樣會訂閱 KRaft 中的 Records 來構建自己的內(nèi)存元數(shù)據(jù),并且根據(jù)這些 Records 來執(zhí)行特定的變更。

以分區(qū)管理為例,假設集群有 B1 和 B2 兩個節(jié)點,用戶將分區(qū) P1 從 B1 移動到 B2(簡化 ISR 變更的過程):

  1. Controller 處理分區(qū)移動請求,并生成 PartitionChangeRecord{P1=B2}提交到 KRaft;
  2. B1 #replay到對應的變更記錄,更新內(nèi)存元數(shù)據(jù)記錄 P1 在 B2 上,并開始關閉 P1;
  3. B2#replay到對應的變更記錄,更新內(nèi)存元數(shù)據(jù)記錄 P1 在 B2 上,并開始打開 P1;

這時候 B1 和 B2 都可以通過內(nèi)存元數(shù)據(jù)提供一致的的 Topic Metadata 查詢服務,并且完成了分區(qū) P1 的移動。

通過這種方式,很多變更 Controller 無需再主動調(diào)用 Broker 的 RPC 來嘗試將集群推進到某個狀態(tài),也無需處理 RPC 調(diào)用中的順序和冪等重試等問題。轉(zhuǎn)換思路,Controller 通過 KRaft 來下發(fā)期望的狀態(tài),然后 Broker 去達成狀態(tài),這和 K8s 推薦的聲明式管理有異曲同工之妙。

三、總結   

我們可以看出 KRaft 替換 ZK,并不是元數(shù)據(jù)存儲重新造輪子,而核心是集群協(xié)調(diào)機制的演進。整個通信協(xié)調(diào)機制本質(zhì)上是事件驅(qū)動模型,也就是 Metadata as an Event Log,Leader 通過 KRaft 生產(chǎn)權威的事件,F(xiàn)ollower 和 Broker 通過監(jiān)聽 KRaft 來獲得這些事件,并且順序處理事件,達到集群狀態(tài)和期望的最終一致。

參考資料

[1] KIP-500 Replace Zookeeper with a Self-Managed Metadata Quorum:https://cwiki.apache.org/confluence/display/KAFKA/KIP-500%3A+Replace+ZooKeeper+with+a+Self-Managed+Metadata+Quorum

[2] Timeline:https://github.com/apache/kafka/tree/trunk/server-common/src/main/java/org/apache/kafka/timeline

責任編輯:武曉燕 來源: AutoMQ
相關推薦

2021-07-26 06:33:42

CRDT數(shù)據(jù)CAP

2022-07-21 06:54:28

微服務系統(tǒng)RocketMQ

2019-10-12 09:04:59

微服務架構CAP

2025-02-10 03:00:00

2017-07-25 14:38:56

數(shù)據(jù)庫一致性非鎖定讀一致性鎖定讀

2020-11-24 09:03:41

一致性MySQLMVCC

2020-02-25 23:39:11

架構運維技術

2025-05-13 08:44:26

2022-10-19 12:22:53

并發(fā)扣款一致性

2022-12-14 08:23:30

2024-07-04 12:36:50

2016-12-21 14:06:55

日志實現(xiàn)數(shù)據(jù)實時抽取

2022-11-10 07:49:09

hash算法代碼

2016-12-19 18:41:09

哈希算法Java數(shù)據(jù)

2021-06-16 08:33:02

分布式事務ACID

2021-02-05 08:00:48

哈希算法?機器

2021-02-02 12:40:50

哈希算法數(shù)據(jù)

2021-05-19 21:50:46

Hash算法測試

2023-07-25 09:52:00

本地事務宕機

2019-09-20 21:50:47

數(shù)據(jù)庫緩存
點贊
收藏

51CTO技術棧公眾號

精品久久久噜噜噜噜久久图片| 91av在线播放| 亚洲高清在线不卡| 日本片在线看| 久久精品在这里| 成人精品福利视频| 亚洲一区欧美在线| 日韩一区三区| 亚洲精品不卡在线| 国产欧美精品一二三| 松下纱荣子在线观看| 国产精品初高中害羞小美女文| 日韩午夜激情视频| 日韩在线综合网| 麻豆视频在线免费观看| bt欧美亚洲午夜电影天堂| 国产精品一久久香蕉国产线看观看| 免费在线黄色片| 日韩精品dvd| 精品视频在线播放色网色视频| 91欧美视频在线| 午夜影院在线播放| 一级做a爱片久久| 一区二区三区欧美成人| 男人的天堂在线视频| 亚洲毛片视频| 久久久国产影院| 成人黄色a级片| 网红女主播少妇精品视频| 日韩美女天天操| 奇米视频888| 日韩成人亚洲| 色综合久久综合网欧美综合网| 日韩精品一区二区在线视频| 麻豆视频在线| 中文字幕在线观看不卡视频| 欧美日韩亚洲综合一区二区三区激情在线| 精品久久久久久亚洲综合网站| 日韩中文字幕区一区有砖一区 | 国产精品人人妻人人爽人人牛| 色黄网站在线观看| 中文字幕一区二区三区精华液 | 国产欧美日韩免费| 日韩三级一区二区| 午夜综合激情| 欧美在线不卡区| av大片免费在线观看| 亚洲无吗在线| 久久久久久久一区二区| 成人免费看片98| 国产一区二区三区四区老人| 美女av一区二区三区| 欧美日韩午夜视频| 欧美韩日高清| 中文字幕久热精品在线视频| 少妇人妻好深好紧精品无码| 国产真实有声精品录音| 欧美亚洲一区三区| 成年人网站大全| 日本另类视频| 欧美日产在线观看| 制服丝袜中文字幕第一页 | 亚洲另类视频| 欧美一级片在线播放| 手机看片久久久| 日韩主播视频在线| 成人美女av在线直播| av免费在线不卡| 成人一级黄色片| 欧美日韩亚洲免费| 午夜视频在线观看免费视频| 国产成人在线视频网站| 亚洲一区二区三区视频播放| 国产黄a三级三级看三级| 国产a久久麻豆| 国内精品视频免费| av在线免费观看网站| 国产不卡在线视频| 国产一区二区精品在线| 邻居大乳一区二区三区| 中文字幕欧美日本乱码一线二线| 一区二区三区久久网| 免费在线观看的电影网站| 亚洲成av人片一区二区梦乃| 欧美黄网站在线观看| 日韩有码欧美| 亚洲国产小视频在线观看| 国产jk精品白丝av在线观看| 外国成人激情视频| 在线日韩欧美视频| 丝袜 亚洲 另类 欧美 重口| 最新成人av网站| 国产精品丝袜白浆摸在线| 在线观看xxxx| 国产成人精品免费一区二区| 明星裸体视频一区二区| 黄色在线免费网站| 欧美日韩亚洲激情| 红桃视频一区二区三区免费| 日韩欧美国产大片| 久久久精品国产一区二区| 国产精品美女久久久久av爽| 蜜乳av一区二区三区| 国产精品成人aaaaa网站| 7777久久亚洲中文字幕| 91小视频免费看| 国产日韩久久| 免费在线观看av| 日韩欧美国产骚| 自慰无码一区二区三区| 91精品在线免费视频| 亚洲精品之草原avav久久| 亚洲一级生活片| 久久午夜精品一区二区| 成人av网站观看| 天堂а√在线资源在线| 欧美日韩免费观看中文| 亚洲妇女无套内射精| 福利一区三区| 亚洲免费伊人电影在线观看av| 深夜福利影院在线观看| 免费在线欧美视频| 久久99久久精品国产| 伊人影院蕉久影院在线播放| 欧美午夜影院一区| 爱爱免费小视频| 99伊人成综合| 国产视频一区二区不卡| 91中文在线| 欧美日本一区二区三区四区| 欧美人与性囗牲恔配| 裸体素人女欧美日韩| 精品久久久久久乱码天堂| 在线āv视频| 在线成人av影院| 呻吟揉丰满对白91乃国产区| 日韩国产欧美一区二区三区| 麻豆精品蜜桃一区二区三区| rebdb初裸写真在线观看| 日韩欧美综合在线| 黄色一级片中国| 国产精品自拍三区| 8x8x华人在线| 日韩精品视频一区二区三区| 欧美精品一区二区免费| www.com在线观看| 亚洲免费av在线| 97超碰免费在线观看| 欧美精品18| http;//www.99re视频| 18加网站在线| 欧美大片在线观看| 欧美成人aaaaⅴ片在线看| 成人午夜电影小说| 蜜桃传媒一区二区三区| 日韩av网址大全| 日韩暖暖在线视频| a√在线中文网新版址在线| 欧美亚州韩日在线看免费版国语版| a天堂中文字幕| 六月丁香婷婷久久| 国产免费xxx| 成人18夜夜网深夜福利网| 91国产视频在线播放| 天堂а√在线8种子蜜桃视频| 中文在线免费一区三区高中清不卡| 性欧美极品xxxx欧美一区二区| 精品国精品国产自在久国产应用| 国产精品久久久久久久久粉嫩av| 日本中文字幕在线播放| 欧美一区二区不卡视频| 久久精品女人毛片国产| 99国产精品久久久久| 北条麻妃av高潮尖叫在线观看| 日韩免费视频| 成人av免费在线看| 国模一区二区| 九九视频直播综合网| 亚州精品国产精品乱码不99按摩| 日韩欧美中文字幕在线播放| 亚洲综合第一区| 国产91对白在线观看九色| 久久久久久久久久久视频| 日韩88av| 操人视频欧美| 巨胸喷奶水www久久久免费动漫| 久久精品国产v日韩v亚洲| 男人天堂av网| 欧美日韩一区二区三区在线看 | 看黄色一级大片| ㊣最新国产の精品bt伙计久久| 26uuu国产| 久久一综合视频| 欧美一二三不卡| 国产成人手机高清在线观看网站| 91欧美日韩一区| 成人18在线| 日韩午夜在线观看视频| 伊人中文字幕在线观看| 亚洲精品免费视频| 国产综合精品久久久久成人av| 亚洲美女毛片| 一本色道久久99精品综合| 久久99国产精品久久99大师| 国产日韩在线免费| 亚洲天堂资源| 国产视频一区在线| 99精品国产99久久久久久97| 色噜噜狠狠色综合中国| 国产成人精品无码免费看夜聊软件| 精品在线一区二区三区| 懂色av一区二区三区四区五区| 国产精品一线| 亚洲一区制服诱惑| ww久久综合久中文字幕| 自拍视频国产精品| 香蕉国产在线视频| 精品久久久久香蕉网| 亚洲精品视频在线观看免费视频| 亚洲天堂av一区| 中文字幕免费在线看线人动作大片| 福利一区福利二区| 日韩av影视大全| 美女精品一区二区| 熟妇人妻va精品中文字幕| 国产欧美日韩一级| 99热久久这里只有精品| 一区二区三区午夜探花| 亚洲一区二区在| 国内精品久久久久久久久电影网 | 国产一区三区在线播放| 麻豆精品传媒视频| 图片婷婷一区| 久久综合中文色婷婷| 欧美自拍视频| 激情视频一区二区| 欧美a大片欧美片| 国产日韩欧美精品| 群体交乱之放荡娇妻一区二区| 97se在线视频| 9l亚洲国产成人精品一区二三| 亚洲综合中文字幕在线观看| 精品国产亚洲一区二区三区大结局| 成人国产在线视频| 亚洲精品69| 亚洲影院高清在线| 日韩成人18| 国产精品一区二区欧美黑人喷潮水| 66精品视频在线观看| 国产免费一区二区三区| 好吊妞国产欧美日韩免费观看网站| 成人综合av网| 欧美精品密入口播放| 蜜桃91精品入口| 久久99国内| 翔田千里亚洲一二三区| 99久久www免费| 热久久最新网址| 在线高清一区| 亚洲激情图片| 欧美激情另类| 一二三四中文字幕| 国产欧美激情| 久久午夜夜伦鲁鲁一区二区| 麻豆成人免费电影| 国产精品日日摸夜夜爽| 成人av网站在线观看免费| 五月婷婷综合在线观看| 中文字幕欧美激情| 免费在线观看h片| 亚洲成人动漫一区| 国产91在线播放九色| 日韩一区欧美一区| 国产精品999久久久| 色域天天综合网| 国产人妖一区二区| 欧美精品一区二区三区高清aⅴ | 久久一本综合频道| 九九九九九九九九| 99久久精品国产网站| 成人在线手机视频| 一区二区三区四区在线| 可以免费看的av毛片| 欧美日韩色一区| 老熟妇高潮一区二区高清视频| 亚洲精品有码在线| 超碰在线最新| 欧美中文在线字幕| 精品一区二区三区四区五区| 久久国产欧美精品| 色喇叭免费久久综合| 分分操这里只有精品| 青青青伊人色综合久久| 亚洲视频天天射| 国产精品热久久久久夜色精品三区 | 成人搞黄视频| 亚洲精品一区国产精品| 伊人天天综合| 日韩在线一区视频| 成人avav在线| 看黄色录像一级片| 色婷婷亚洲精品| 免费观看黄一级视频| 日韩综合视频在线观看| 小草在线视频免费播放| 91久久精品视频| 欧美日韩在线观看视频小说| 拔插拔插海外华人免费| 精品无人区卡一卡二卡三乱码免费卡 | av在线成人| 日韩高清国产一区在线观看| 国内视频精品| www.桃色.com| 欧美激情一区不卡| 男人日女人网站| 欧美精品一区二区三区很污很色的 | www.国产精品一二区| 三上悠亚国产精品一区二区三区| 成人综合av网| 欧美日韩少妇| 做a视频在线观看| 国产精品视频观看| 日韩黄色一级视频| 日韩黄色高清视频| 2020国产在线| 国产精品swag| 黄色精品网站| 手机精品视频在线| 亚洲日本在线天堂| 国产又粗又大又爽| 日韩在线观看你懂的| 欧美黄色网络| 亚洲欧美日韩在线综合 | 亚洲成人日韩| www.se五月| 国产精品久久久久国产精品日日| 精人妻无码一区二区三区| 亚洲欧美日韩区| 日韩久久一区二区三区| 欧美日韩综合网| 日本少妇一区二区| 国产白丝一区二区三区| 欧美日韩高清影院| 久做在线视频免费观看| 国产这里只有精品| 91久久电影| 亚洲欧美日韩网站| 亚洲综合自拍偷拍| 色wwwwww| 欧美在线日韩在线| 久久99性xxx老妇胖精品| 国产精品乱码久久久久| 久久精品男人天堂av| 中国老头性行为xxxx| www.亚洲一区| 欧美午夜网站| 久久综合九色综合88i| 91欧美一区二区| 尤物视频免费观看| 日韩最新在线视频| 亚洲电影一区| 黄色www网站| 国产婷婷一区二区| 91福利在线观看视频| 欧美人成在线视频| 男人的天堂久久| 777米奇影视第四色| 中文字幕欧美日本乱码一线二线| 国产精品区在线观看| 欧美激情视频在线免费观看 欧美视频免费一 | 日韩经典av| 久久久久久国产精品mv| 日韩精品福利网| 久热这里有精品| 日韩av在线免费看| 精品免费av一区二区三区| 麻豆中文字幕在线观看| 丁香婷婷综合五月| 91久久国产综合久久91| 久久视频在线看| 日韩理论电影中文字幕| 九九热99视频| 偷窥少妇高潮呻吟av久久免费| 国产女主播在线写真| 亚洲最大av在线| 久久国产精品亚洲77777| 国产精品精品软件男同| 亚洲激情成人网| 欧美黄页免费| 99999精品视频| 亚洲色图一区二区三区| 丝袜+亚洲+另类+欧美+变态| 成人激情视频在线播放| 欧美区一区二| 免费黄在线观看| 亚洲国产精品久久久久久| 韩日精品一区| 欧美一区二区三区爽大粗免费 | 日本学生初尝黑人巨免费视频| 一区二区在线视频|