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

Kafka多種跨IDC災備方案調研對比

開發
本文就目前已有的災備方案在元數據同步、數據復制、消費位移同步、災備模式等方面進行調研對比。

1.前言

為了盡量減少自然和人為災難(如停電、災難性軟件故障和網絡中斷)對業務的影響,以及隨著我行基于Kafka的實時業務不斷增長,Kafka的重要性日益增長,在我行逐步優化跨IDC的Kafka連續性建設已經成為我們目前亟待解決的問題。

本文就目前已有的災備方案在元數據同步、數據復制、消費位移同步、災備模式等方面進行調研對比。

2.現有災備方案

方案

描述

使用方

MirrorMaker1(簡稱MM1)

原理是啟動消費者從源集群進行消費,然后發送到目標集群,功能較簡單

MirrorMaker2(簡稱MM2)或

基于MM2的改進

基于Kafka Connect框架實現,由LinkedIn工程師貢獻,修復MM1的局限性,Topic和分區可自動感知,acl和配置可自動同步,支持雙活,提供offset轉換功能

360

Confluent Replicator

Confluent收費版,與MM2相比,雙活模式更優雅,可支持單條消息的修改

Confluent

基于Follower的同步機制

利用Kafka的副本同步機制創建Fetcher線程同步數據,需要在原生Kafka上進行二次開發

字節、滴滴

uReplicator

改進MM1,利用分布式的任務管理框架Apache Helix控制Partition的分配,不需要全部rebalance

Uber

brooklin

改進MM1,實現思路和MM2類似,與uReplicator一樣,為了減少rebalance,采用Sticky Assignment控制Partition的分配,除了支持Kafka集群間的復制,還能作為Azure Event Hubs,AWS Kinesis流式服務之間的通道,另外還能作為CDC連接器

LinkedIn

3.各方案的主要設計點對比分析

3.1 元數據同步

元數據同步主要是指Topic、Partition、Configuration、ACL的同步,我們需要評估各方案在新增Topic,分區擴容后、修改Configuration和ACL后能否自動感知,以及評估方案中選擇復制的Topic是否靈活(比如是否支持白名單、黑名單機制,是否支持正則),目標集群中Topic名稱是否發生改變(決定是否支持雙向復制,是否會發生循環復制)。

MM1方案中,選擇復制的Topic只支持白名單機制(--whitelist或者--include參數指定),且白名單支持正則寫法,但是當源集群新增Topic后,目標集群的auto.create.topics.enable設置為true時,才能自動在目標集群創建相同名稱的Topic(可以擴展messagehandler改名),否則必須重啟MirrorMaker才能發現新增的Topic,關于目標集群上的Topic的分區數,MM1是按默認值num.partitions進行配置(其他方案均無該問題),無法和源集群上保持一致,ACL也無法同步。

相比MM1,MM2彌補了上述不足,主要是依賴MirrorSourceConnector里的多個定時任務實現該功能,更新Topic/Partition、Configuration、ACL的間隔時長分別由三個參數指定,非常靈活。在MM2中,目前截至3.0.0的版本,支持兩種復制策略,默認的DefaultReplicationPolicy中目標集群中復制后Topic名稱發生變化,前面會加一個源集群的前綴,為了兼容MM1,3.0.0中新增的IdentityReplicationPolicy中目標集群中復制后Topic名稱不會發生變化。

Confluent Replicator,根據官網描述,也同樣具備上述功能,原理和MM2類似,只是檢測更新只由一個參數確定。Replicator可以定義復制后Topic的名稱,由參數topic.rename.format指定,默認值是保持Topic名稱不變。

基于Follower的同步機制的方案,由于網上資料不足,具體實現無法得知,但是原理估計和MM2類似,復制后在目標集群中Topic名稱保持不變。

uReplicator的實現略有不同,復制哪些Topic,由參數enableAutoWhitelist和patternToExcludeTopics一起決定,當enableAutoWhitelist設置為true時,若源集群和目標集群中存在相同Topic,那么不需要其他設置即可實現數據復制,若設置為false,需要將復制的Topic名稱等信息提交給uReplicator Controller,由該Controller來控制分區的分配,另外黑名單參數patternToExcludeTopics控制哪些Topic不用復制;分區擴容是否自動感知,是由參數enableAutoTopicExpansion控制的;關于Configuration和ACL無法實現同步。

brooklin選擇復制的Topic只支持白名單機制,可支持正則,新增Topic和分區擴容后可自動感知,檢測更新由參數partitionFetchIntervalMs確定,復制后Topic名稱前可加前綴,由參數DESTINATION_TOPIC_PFEFIX確定。

總結如下:

方案

MM1

MM2

Confluent Replicator

基于Follower的同步機制

uReplicator

brooklin

復制后Topic名稱變化

不變,也可自定義

可保持不變,也可以增加固定前綴

可保持不變,也可以自定義

不變

不變

可保持不變,也可定義前綴

自動檢測和復制新Topic

部分支持(取決于目標集群的自動創建topic是否開啟)

支持

支持

取決于二次開發的功能

不支持

支持

自動檢測和復制新分區

不支持

支持

支持

取決于二次開發的功能

支持

支持

源集群和目標集群總Topic配置一致

不支持

支持

支持

支持

支持

支持

配置和ACL更新是否同步

不支持

支持

支持

取決于二次開發的功能

不支持

不支持

選擇復制Topic的靈活度:是否具有白名單、黑名單和正則表達式的主題

部分支持

支持

支持

取決于二次開發的功能

部分支持

部分支持

3.2 數據復制

數據復制是災備方案的最核心點之一,我們需要評估各方案中復制后消息offset能否對齊,復制期間數據的一致性能否保證即是否會丟失數據或者會出現重復數據。首先說明一下,由于復制會有延遲,因此所有這些災備方案里RPO都不等于0。

基于Follower的同步機制的方案可以保持offset對齊,由于副本同步存在延遲,當主機房異常時,備機房上仍有丟失部分數據的可能性,offset可保持一致,不會出現重復數據的可能性。其他方案均不能保證offset對齊(除非是復制時源Topic的offset從0開始),關于每個方案中消費者從源集群消費,再寫入到目標集群的邏輯,我們一一詳細解釋下:

先從MM1開始,這是他的設計架構:

在KIP-3 MirrorMaker Enhancement里,設計了上述架構,從以下幾處保證不丟數:

1.關掉消費者的自動提交位移,提交位移之前會調用producer.flush()刷出緩存里數據

2.在producer端,通過設置這幾個參數max.in.flight.requests.per.connection=1(多個consumer共享一個producer,這個producer每次只給broker發一個request),retries=Int.MaxValue(返回是可重試異常,無限次重試直到緩沖區滿),ack=-1(發給所有副本)

3.設置abortOnSendFail,當producer端收到不可重試異常后(比如消息過大之類的異常),停止MirrorMaker進程,否則會丟失發送失敗的部分數據

另外為了避免在consumer發生rebalance的是時候出現重復數據(rebalance時候有些數據位移沒提交),定義了一個新的consumerRebalance監聽器,在發生partitionRevoke的時候,先刷出producer緩存里數據,再提交位移。

從上面設計來看,MM1是不丟數,但是還是存在數據重復的可能性,這是Kafka的非冪等Producer決定的,另外MM1的設計還有很多缺陷,比如只有一個Producer,發送效率低,另外這個Producer是輪詢發送,消息發送到目的Topic上的分區和源Topic的分區不一定一致,由于是輪詢,這個Producer和集群里每個broker會建立連接。對比uReplicator,同樣也是在flush之后再提交位移去避免丟數,在MM1的缺陷都得到了改進,每個WorkerInstance里有多個FetcherThread和多個ProducerThread,從源集群fetch數據后會放到一個隊列里,ProducerThread從隊列里取走數據并發到目標集群的Topic,每條消息發送到目的Topic上分區和源分區保持一致,可以保持語義上一致。

在brooklin中,每個Brooklin Instance中可以起多個Consumer和Producer,也可保持語義上一致,比uReplicator更有優勢的一處就是提供了flushless的生產者(也可提供flush的Producer),哪些消息發送成功,才會提交這些位移,因為調用Producer.flush()可以將緩沖區的數據強制發送,但是代價較高,在清空緩沖前會堵塞發送線程。

consumer.poll()->producer.send(records)->producer.flush()->consumer.commit()
優化為:
consumer.poll()->producer.send(records)->consumer.commit(offsets)

在MirrorMaker2中,采用Kafka Connect框架進行復制數據,從源端消費數據后,存到一個類型為IdentityHashMap的內存結構outstandingMessages中,Producer發送到目的端成功后,會從該內存結構中刪除該消息,另外會定時將從源端消費的進度保存到Kafka Topic中。這種實現機制不會丟失數據,但是Producer發送成功后,未將進度持久化前進程異常掛掉,那么會產生重復消息。目前在KIP-656: MirrorMaker2 Exactly-once Semantics提出了一種可實現Exactly Only Once的方案,思路是將提交消費位移和發送消息放在一個事務里,但是相關Patch KAFKA-10339仍然沒被合進主分支,最后更新停留在20年8月份。

根據Confluent Replicator官網描述,復制不會丟數,但是可能會重復,因此和上述MM2、uReplicator、brooklin一樣,提供的都是At least Once Delivery消息傳遞語義。

方案

MM1

MM2

Confluent Replicator

基于Follower的同步機制

uReplicator

brooklin

復制前后分區語義一致

不支持

支持

支持

支持

支持

支持

offset對齊

不能

不支持

不支持

支持

不支持

不支持

消息傳遞語義

不丟數,可能重復

At least Once

不丟數,可能重復

At least Once,

未來會提供EOS語義

不丟數,可能重復

At least Once

取決于二次開發的功能,

從Kafka副本同步的原理看,

在參數設置合理的情況下,在副本之間同步過程中數據可保持一致

不丟數,可能重復

At least Once

不丟數,可能重復

At least Once

3.3 消費位移同步

災備方案中除數據復制,消費位移的同步也非常關鍵,災備切換后消費者是否能在新的集群中恢復消費,取決于consumer offset是否能同步。

在MM1設計中,若要同步消費位移,只能將__consumer_offsets作為一個普通的Topic進行同步,但是由于源集群和目標集群的offset可能存在不對齊的情況,因此無法進行offset轉換。

在MM2設計中,解決了上述MM1問題,設計思路是會定期在目標集群的checkpoint Topic中記錄消費位移,包括源端和目標端的已提交位移,消息包括如下字段:

  • consumer group id (String) 消費組
  • topic (String) – includes source cluster prefix topic名稱
  • partition (int)  分區名稱
  • upstream offset (int): latest committed offset in source cluster  源集群的消費位移
  • downstream offset (int): latest committed offset translated to target cluster 目標集群的消費位移
  • metadata (String) partition元數據
  • timestamp

另外,還設計了一個offset sync Topic用于記錄源端和目的端offset的映射。

同時,MM2還提供了MirrorClient接口做位移轉換:

// Find the local offsets corresponding to the latest checkpoint from a specific upstream consumer group.
Map<TopicPartition, OffsetAndMetadata> remoteConsumerOffsets(String consumerGroupId,
``String remoteClusterAlias, Duration timeout) ...

在uReplicator中,另外設計了一個offset Sync的服務,跟MM2類似(可能是MM2參考了uReplicator的設計),這個服務可以實時收集不同集群offset 的映射關系,計算出從一個DC切換到另一個DC后需要從哪個 offset 進行讀取。

在brooklin中,沒有類似uReplicator里的offset Sync服務,需要自己實現。

在Confluent Replicator中,用另外一種思路解決該問題,不同DC的時間是一致的,在Kafka的消息里包含時間戳,5.0 版引入了一項新功能,該功能使用時間戳自動轉換偏移量,以便消費者可以故障轉移到不同的數據中心并開始在目標集群中消費他們在源集群中中斷的數據。要使用此功能,需要在Consumer中設置Consumer Timestamps Interceptor 的攔截器,該攔截器保留消費消息的元數據,包括:

? Consumer group ID

? Topic name

? Partition

? Committed offset

? Timestamp

此消費者時間戳信息保存在位于源集群中名為 __consumer_timestamps 的 Kafka  Topic中。然后Replicator通過以下步驟進行offset轉換:

  1. 從源集群中的 consumer_timestamps 主題中讀取消費者偏移量和時間戳信息,以獲取消費者組的進度
  2. 將源數據中心中的已提交偏移量轉換為目標數據中心中的相應偏移量
  3. 將轉換后的偏移量寫入目標集群中的 __consumer_offsets 主題

那么消費者切換到目標中心的集群后,可繼續進行消費。

基于Follower的同步機制方案,Topic完全一致,只要將__consumer_offsets也同步,那么消費者故障轉移后仍可繼續消費。

在消費位移同步方面,各方案總結如下:

方案

MM1

MM2

Confluent Replicator

基于Follower的同步機制

uReplicator

brooklin

復制消費位移

部分支持

支持

支持

支持

部分支持

部分支持

offset轉換

不支持

支持

支持

不需要

支持

不支持

客戶端切換

客戶端自定義

seek offset

通過接口獲取目標集群

的offset,再seek

不需要做額外轉換,

啟動即可

不需要做額外轉換,

啟動即可

通過sync topic服務

查看目標集群的offset,再seek

客戶端自定義

seek offset

3.4 是否支持雙活

為了提升資源利用率,災備模式的選取也是一個重要考量點。

MM1是不支持雙活模式的,兩個集群無法配置為相互復制(“Active/Active”),主要是因為如果在兩個集群中若存在相同名稱的Topic,無法解決Topic循環復制的問題。

MM1這個可能循環復制的問題在MM2中解決,解決思路是復制后的Topic與原Topic名稱不一致,會加上源集群的名稱作為前綴,例如如下示例中,A集群中的topic1在復制到B集群后,名稱變更為A.topic1。

但是MM2默認的DefaultReplicationPolicy是復制后Topic名稱改變,對客戶端來說會增加切換代價,可以考慮改成IdentityReplicationPolicy,這種復制策略只能支持單向復制,主集群提供業務服務,即Active/Standy模式。

在Confluent Replicator 5.0.1中,為了避免循環復制,利用了KIP-82 Add Record Headers的特性,在消息的header里加入了消息來源,如果目標集群的集群 ID 與header里的源集群 ID 匹配,并且目標Topic名稱與header的Topic名稱匹配,則 Replicator 不會將消息復制到目標集群。如下圖所示:

DC-1的m1復制后DC-2,消息的header里加入了標記,這條消息是從DC-1復制過來的,那么Replicator不會把DC-2的m1再復制到DC-1,同理,DC-1的m2也不會復制到DC-2。因此Confluent Replicator是可以支持Active/Active模式的。

在uReplicator中,通過數據的冗余提供Region級別的故障轉移,在這種設計中,每個區域除部署一套本地Kafka集群,還會部署一套聚合集群,這套聚合集群里存儲了所有區域的數據。

當區域集群A和B中存在相同Topic,那么匯聚后,在區域A和B中的消息offset可能不一致,uReplicator設計了一個offset管理服務,會記錄這個對應關系,示例如下:

這種設計中,可以支持消費者的Active/Active和Active/Standy模式,前者是每個區域起一個消費者消費聚合集群的的數據,只有一個區域是主區域,只有主區域的數據可以更新數據到后端數據庫中,當主區域故障后,指定新的主區域,新的主區域繼續消費計算,在Active/Standy模式中,所有區域中只有一個消費者,該區域故障后,在其他區域啟動一個消費者,根據offset管理服務里記錄的offset對應關系,從每個區域的區域集群中找到所有最新的checkpoints,然后根據該checkpoints在Standy區域的聚合集群查找最小offset,從Standy區域的該offset開始消費。

在brooklin中,也可以通過類似uReplicator的設計利用數據的冗余實現Active/Active災備模式。

在字節介紹的災備方案中,Producer只能往主集群寫(主備集群中的信息是存儲在配置中心里的,客戶端需要先從配置中心查詢),Producer可以在雙中心部署,但是通過配置中心路由到主集群,Consumer也可在雙中心部署,若采用Active/Standy模式,各自消費本地機房的數據,但是只有主集群里消費者的消費位移可以生效,在采用Active/Active模式下,消費者只能從主集群進行消費,這兩種模式下,都是將雙中心所有消費者的消費位移采用一個存儲統一存儲。

在災備模式方面,各方案總結如下:

方案

MM1

MM2

Confluent Replicator

基于Follower的同步機制

uReplicator

brooklin

雙集群是否可互相復制

不支持

支持

支持

不支持

支持,依靠聚合集群

支持,依靠聚合集群

Producer Active/Active

不支持

支持

支持

支持,但是其實只寫入主集群

支持

支持

Consumer Active/Standy

不支持

支持

支持

支持

支持

支持

Consumer Active/Active

不支持

支持

支持

支持

支持

支持

4.各方案的主要設計點總結

總結來說,這些方案里歸結為三類:

1.Kafka社區的設計路線方案,從源集群消費,再寫入到目標集群,包含MM1,MM2,uReplicator,brooklin這幾種方案,MM2是參考了uReplicator的設計,實現方案和brooklin類似,那么在這四種方案中,MM2可以作為優先考慮方案。

2.Confluent Replicator的商業收費方案,也是利用Kafka Connect框架進行消費寫入,在避免Topic循環復制和消費位移轉換方面做得非常出色,客戶端切換的代價很低。

3.以字節、滴滴為代表的基于Follower同步機制的方案,這種方案里復制后的Topic是源Topic的鏡像,客戶端不需要做offset轉換,需要改造Kafka代碼,考慮到后續和原生Kafka代碼的版本融合,技術要求較高。

目前來說,沒有一個完美的解決方案,各公司可根據自身實際需求制定。

責任編輯:張燕妮 來源: 民生運維人
相關推薦

2018-09-07 10:23:46

云備份混合云存儲

2018-01-22 10:05:14

災備

2015-10-08 11:43:10

華為云災備雙活數據

2011-01-04 15:30:26

博科解決方案

2023-06-21 18:59:01

2021-10-19 07:27:07

邊緣集群管理

2017-11-22 08:28:22

災備備份數據

2011-06-27 10:20:42

vmware災備

2010-11-30 10:01:44

VMware災備方案

2009-05-14 19:18:54

虛擬化災備服務器

2018-10-17 17:51:13

華為

2012-07-12 15:07:45

災備系統華為

2022-12-23 10:58:14

2014-01-08 11:54:52

華為多分支集中災備

2012-10-19 10:09:38

和力記易

2015-10-25 18:50:50

長城電腦

2015-06-02 10:18:53

2016-06-30 11:22:20

災備
點贊
收藏

51CTO技術棧公眾號

chinese麻豆新拍video| 国产视频一视频二| 精品国产av 无码一区二区三区| 午夜精品一区二区三区国产| 日韩精品一区二区三区在线 | 亚洲视频精选在线| 91青青草免费在线看| 日韩三级视频在线播放| 欧美手机在线| 亚洲第一页在线| 污污的网站18| 女人让男人操自己视频在线观看| 中文字幕免费观看一区| 国产精品国产亚洲精品看不卡15| 久草视频在线免费| 欧美午夜不卡影院在线观看完整版免费| 国产手机视频精品| 国产精品999.| 日韩欧美另类一区二区| 一区二区三区日韩精品视频| 日韩videos| 国产小视频免费观看| 蜜桃av一区二区| 午夜精品国产精品大乳美女| 国产又色又爽又高潮免费| 高清精品xnxxcom| 欧美日韩国产精品成人| 成人一级片网站| 欧美xxx黑人xxx水蜜桃| 中文字幕欧美国产| 欧美日韩在线播放一区二区| www三级免费| 麻豆成人久久精品二区三区红 | 国产综合色产在线精品| 欧美一级电影久久| 国产一级一级片| 91精品国产91久久久久久密臀| 亚洲无限av看| 久久国产精品无码一级毛片| 亚洲国产中文在线| 欧美精品第1页| 国产小视频精品| 浪潮色综合久久天堂| 欧美日韩国产一区二区三区| 成人av在线不卡| 最爽无遮挡行房视频在线| 日本一区二区三区在线观看| 久久久久久99| 香蕉久久国产av一区二区| 国产高清在线精品| 亚洲a级在线观看| 伊人久久亚洲综合| 日本最新不卡在线| 国产成人jvid在线播放| 日日骚av一区二区| 亚洲男人影院| 国产精品69av| 在线免费av网| 国产在线播放一区三区四| 国产欧美日韩免费看aⅴ视频| 伊人网免费视频| 久久精品国产网站| 91精品在线国产| 国产视频在线观看视频| 国产一级精品在线| 成人av免费电影| 四季av日韩精品一区| 99麻豆久久久国产精品免费| 国产伦精品一区二区三区四区免费 | 国产精品男女猛烈高潮激情| 制服丝袜在线一区| 人禽交欧美网站| 91免费精品国偷自产在线| 精品人妻伦一二三区久久| 国产高清精品久久久久| 国产欧美亚洲日本| 免费看男男www网站入口在线| 久久网站热最新地址| 日韩亚洲视频在线| 麻豆tv在线| 亚洲国产综合色| 免费无码国产v片在线观看| 激情都市亚洲| 67194成人在线观看| 亚洲精品鲁一鲁一区二区三区| 岛国成人av| 亚洲日本成人网| 色偷偷www8888| 欧美精品福利| 庆余年2免费日韩剧观看大牛| 自拍偷拍校园春色| 国产精品一区二区不卡| 免费不卡亚洲欧美| 日本在线观看网站| 午夜欧美大尺度福利影院在线看| 自拍日韩亚洲一区在线| 91成人抖音| 日韩久久精品一区| 国产又粗又猛又爽视频| 亚洲v在线看| 欧美在线一区二区三区四| 国产一区二区三区在线观看 | 魔女鞋交玉足榨精调教| 99久久婷婷这里只有精品| 久久久久久久色| 中文字幕自拍偷拍| 91色视频在线| 久久天天东北熟女毛茸茸| 亚洲黄色免费av| 欧美一级淫片007| 亚洲av无码一区二区三区人| 欧美日本国产| 国产精品免费看久久久香蕉| 姝姝窝人体www聚色窝| 国产精品国产三级国产aⅴ无密码| 农民人伦一区二区三区| 四虎影视精品永久在线观看| 日韩高清免费观看| 农村黄色一级片| 青青国产91久久久久久| 国产在线一区二| 免费在线看黄| 日本精品一级二级| 在线观看av中文字幕| 亚洲一级淫片| 国产成人亚洲综合| 天天干在线观看| 一区二区三区四区中文字幕| 国产视频1区2区3区| 免费观看久久av| 国产69精品久久久久9999| 国产精品久久久久久无人区 | 日韩电影在线观看电影| 国产伦精品一区二区三区视频免费 | www.午夜色| 粉嫩一区二区三区| 精品视频偷偷看在线观看| 国产性一乱一性一伧一色| 精品系列免费在线观看| 日韩av免费电影| 日韩免费福利视频| 亚洲美女av电影| www.毛片.com| 99国产精品久久久久久久久久| 在线观看18视频网站| 成人av在线播放| 久久久国产一区| 136福利视频导航| 国产精品狼人久久影院观看方式| 中文字幕欧美人妻精品一区| 影视先锋久久| 国产精品老女人精品视频| 黄色的视频在线免费观看| 色综合久久久久久久| 国产伦理片在线观看| 日韩高清不卡在线| 亚洲精品视频一二三| 成人午夜毛片| 久久精品国产亚洲一区二区| 国产片高清在线观看| 樱桃视频在线观看一区| wwwxxxx在线观看| 亚洲无吗在线| 激情视频在线观看一区二区三区| 黄频免费在线观看| 精品亚洲永久免费精品| 无码人妻丰满熟妇精品| 中文在线免费一区三区高中清不卡| 手机看片福利日韩| 国产精品福利在线观看播放| 亚洲自拍在线观看| 91白丝在线| 亚洲欧美在线一区二区| 在线观看毛片视频| 亚洲老妇xxxxxx| 免费日本黄色网址| 丝瓜av网站精品一区二区| 亚洲一区在线直播| 免费一级欧美在线大片| 97精品国产91久久久久久| 你懂的视频在线观看| 欧美日韩mp4| 国产亚洲精品av| 久久亚洲一级片| 国模私拍视频在线观看| 狠狠入ady亚洲精品经典电影| 久久精品日韩精品| 未满十八勿进黄网站一区不卡| 精品中文字幕在线| 黄色片视频在线观看| 欧美一级久久久| 久久不卡免费视频| 国产精品麻豆欧美日韩ww| 四虎成人免费视频| 久久久人人人| 人妻无码一区二区三区四区| 外国成人在线视频| 成人性生交大片免费看小说 | 中文字幕无码毛片免费看| 久久久xxx| 久久久99精品视频| 国产a久久精品一区二区三区| 91精品视频在线| 日本高清不卡一区二区三区视频| 欧美刺激性大交免费视频| 免费成人av电影| 日韩欧美综合一区| 国产精品第六页| 亚洲国产精品久久不卡毛片| 中文字幕第二区| 91碰在线视频| 精品久久久久久无码人妻| 久久99久久久久| 人妻有码中文字幕| 亚洲黄页一区| 欧美 国产 精品| 日韩欧美午夜| 欧美深深色噜噜狠狠yyy| 亚洲视频国产| 成人欧美一区二区三区在线湿哒哒 | 免费看国产黄色片| 亚洲男女自偷自拍| 中文字幕无码精品亚洲资源网久久| 五月天综合网站| 色综合久久久久久久久五月| 欧美亚视频在线中文字幕免费| 91成人免费视频| 欧美一区=区三区| 国产91色在线播放| 在线看片福利| 国产69精品久久久| 精灵使的剑舞无删减版在线观看| 日韩综合中文字幕| 成av人电影在线观看| 亚洲毛茸茸少妇高潮呻吟| 亚洲av成人精品一区二区三区在线播放 | caoporn成人| 91久久精品国产| 国内自拍亚洲| 国产精品久久久久av免费| 亚洲精品88| 欧美在线激情网| 国产在线美女| 91精品国产电影| 136福利第一导航国产在线| 欧美激情18p| 成年网站在线视频网站| 国模精品视频一区二区三区| 久久五月精品中文字幕| 色综合导航网站| 日本动漫同人动漫在线观看| 久久99视频精品| missav|免费高清av在线看| 久久免费在线观看| 阿v视频在线观看| 国产91精品久| 亚洲人体视频| 国产精品欧美激情在线播放| 日韩一区二区三区免费视频| 国产精品普通话| 日韩国产91| 5566av亚洲| 成人动态视频| 久久精品丝袜高跟鞋| 亚洲电影一级片| 五月天久久综合网| 性欧美欧美巨大69| 97超碰国产精品| 国产日韩高清一区二区三区在线| 亚洲精品无码久久久久久| 日本系列欧美系列| 亚洲国产午夜精品| 成人午夜又粗又硬又大| 女~淫辱の触手3d动漫| 中文字幕欧美国产| 日韩一级片av| 精品久久中文字幕| 亚洲精品国产欧美在线观看| 欧美精品日韩一本| 日韩专区第一页| 亚洲视频在线播放| 黄色国产网站在线播放| 午夜精品久久久久久久99热浪潮| 国产精品专区免费| 成人信息集中地欧美| 日韩欧美四区| 亚洲成人午夜在线| 黄色另类av| 亚洲精品一二三四五区| 国产成人在线影院| 国产又粗又猛又爽视频| 一级中文字幕一区二区| 中文字幕在线欧美| 91精品国产91久久综合桃花 | 精品一区二区三区中文字幕在线 | 三区四区不卡| 成人午夜精品久久久久久久蜜臀| 日韩中文字幕91| 久久国产免费视频| 国产精品日日摸夜夜摸av| 国产在线一区视频| 欧美美女网站色| 香蕉av一区二区三区| 大胆欧美人体视频| 亚州一区二区三区| 黄色99视频| 欧美伊人影院| 牛夜精品久久久久久久| 成人精品鲁一区一区二区| 卡一卡二卡三在线观看| 亚洲午夜电影在线| 国产孕妇孕交大片孕| 亚洲人成在线免费观看| 波多野结衣精品| 亚洲tv在线观看| 日韩国产一区| av观看免费在线| 成人免费福利片| 成人在线观看高清| 欧美性高清videossexo| 香蕉久久国产av一区二区| 欧美激情亚洲国产| 国产欧美日韩电影| 亚洲自拍的二区三区| 三级久久三级久久久| 成人午夜精品无码区| 一区二区三区美女视频| 91久久国语露脸精品国产高跟| 亚洲欧美国产精品久久久久久久| 123区在线| 国产精品毛片va一区二区三区| 欧美激情综合色综合啪啪| 在线观看免费不卡av| 国产精品天天摸av网| 久久久久久av无码免费看大片| 亚洲欧美国产va在线影院| 女人让男人操自己视频在线观看 | 成人在线免费观看91| 亚洲性生活网站| 久久久国产午夜精品| 亚洲GV成人无码久久精品| 精品无人国产偷自产在线| 999av小视频在线| 国产在线精品二区| 国产欧美一区二区三区国产幕精品| 少妇精品无码一区二区三区| 午夜精品一区二区三区三上悠亚 | 中文字幕9999| 欧美大片1688网站| 亚欧精品在线| 久久国产夜色精品鲁鲁99| 女教师淫辱の教室蜜臀av软件| 欧美性受xxxx黑人xyx性爽| 高清在线观看av| 国产精品羞羞答答| 99久久99久久精品国产片果冰| 亚洲一二三av| 一片黄亚洲嫩模| 五月天婷婷激情网| 啪一啪鲁一鲁2019在线视频| 精品一区三区| 中文字幕资源网在线观看免费| 欧美喷潮久久久xxxxx| 日本视频在线| 91手机在线观看| 伊人激情综合| 少妇大叫太粗太大爽一区二区| 91高清在线观看视频| www国产精品视频| 精品国产乱码久久久久久樱花| 国产又粗又长又爽视频| 风间由美一区二区三区在线观看| 日韩av在线天堂| 亚洲视频在线视频| 亚洲人成777| 男人添女人下部高潮视频在观看| 91美女视频网站| 亚洲天堂aaa| 久久人人看视频| 欧美色女视频| 亚洲天堂小视频| 色综合久久九月婷婷色综合| 男人和女人做事情在线视频网站免费观看 | 老司机免费视频久久| 香蕉久久久久久久| 日韩欧美二区三区| 国产高清不卡| 99re99热| 26uuu久久综合| 国产露脸国语对白在线| 91精品国产精品| 小处雏高清一区二区三区| 9.1成人看片| 51精品久久久久久久蜜臀| 黄视频网站在线观看| 一本一道久久久a久久久精品91| 高清成人免费视频| 一本久道久久综合无码中文| 久久久久久国产精品三级玉女聊斋 | 精品亚洲成av人在线观看|