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

Kafka Exactly Once 語義實現原理:冪等性與事務消息

開發 架構
通過本文的深入分析,我們了解到 Kafka 的事務消息功能是如何在流處理場景中提供 Exactly-Once 語義的。Kafka 通過其事務 API 和內部機制,實現了消息發送的原子性、最終一致性、隔離性和持久性,盡管在實際應用中可能存在一些性能和功能上的限制。

1、前言   

在現代分布式系統中,確保數據處理的準確性和一致性是至關重要的。Apache Kafka,作為一個廣泛使用的流處理平臺,提供了強大的消息隊列和流處理功能。隨著業務需求的增長,Kafka 的事務消息功能應運而生,它允許應用程序以一種原子的方式處理消息,即要么所有消息都被正確處理,要么都不處理。本文將深入剖析 Kafka 的 Exactly-Once 語義實現原理,包括冪等性與事務消息的關鍵概念,以及它們是如何在 Kafka 中實現的。我們將探討 Kafka 事務的流程,事務提供的 ACID 保證,以及在實際應用中可能遇到的一些限制。無論您是 Kafka 的新手還是經驗豐富的開發者,本文都將為您提供有價值的見解和指導。

2、消息隊列的事務場景

Kafka 目前用于流處理的場景:相當于一個有向無環圖(DAG,Directed acyclic graph)每個節點是一個 Kafka Topic,每條邊是一個流處理操作。在這樣的場景下,有兩種操作:

? 消費上游消息并提交位點

? 處理消息并發送到下游 Topic

對于由這兩種操作構成的一組處理流程需要具備事務語義,這樣我們就可以不重復(Exactly Once)的處理上游消息并將結果可靠地存儲在下游 Topic 中。

圖片圖片

上圖是一個典型的 Kafka 事務的流程,我們可以看到:MySQL 的 binlog 作為上游數據源將數據寫入到 Kafka 中,Spark Streaming 從 Kafka 中讀取數據并進行處理,最后將處理結果寫入到另外兩個 Topic 中(圖中三個 Topic 位于同一集群中)。其中消費 Topic A 與寫入 Topic B 和 Topic C 的操作具備事務語義。

3、Kafka 的 Exactly Once 語義

從上述的場景中我們可以發現,事務消息最主要的動機是在流處理中實現 Exactly Once 的語義,這可以分為:

? 僅發送一次: 單分區僅發送一次由生產者冪等保證,多分區僅發送一次由事務機制保證

? 僅消費一次: Kafka 通過消費位點的提交來控制消費進度,而消費位點的提交被抽象成向系統 topic 發送消息。這就使得發送和消費行為統一起來,只要解決了多分區發送消息的一致性就能實現 Exactly Once 語義

4、生產者冪等性

在創建 Kafka 生產者時設置了 enable.idempotence 參數,用于開啟生產者冪等性。

val props = new Properties()
props.put(ProducerConfig.ENABLE_IDEMPOTENCE_CONFIG, "true")


val producer = new KafkaProducer(props)

Kafka 的發送冪等是通過序列號來實現的,每個消息都會被分配一個序列號,序列號是遞增的,這樣就可以保證消息的順序性。當生產者發送消息時,會將消息的序列號和消息內容一起寫入到日志文件中,下次收到非預期序列號的消息就會返回 OutOfOrderSequenceException 異常。

設置 enable.idempotence 參數后,生產者會檢查以下三個參數的值是否合法(ProducerConfig#postProcessAndValidateIdempotenceConfigs)

? max.in.flight.requests.per.connection 必須小于 5

? retries 必須大于 0

? acks 必須設置為 all

Kafka 將消息的序列號信息保存在分區維度的 .snapshot 文件中,格式如下(ProducerStateManager#ProducerSnapshotEntrySchema):

圖片圖片

我們可以發現,該文件中保存了 ProducerId、ProducerEpoch 和 LastSequence。所以冪等的約束為:相同分區、相同 Producer(id 和 epoch) 發送的消息序列號需遞增。即 Kafka 的生產者冪等性只在單連接、單分區生效,Producer 重啟或消息發送到其他分區就失去了冪等性的約束。

.snapshot 文件在 log segment 滾動時更新,發生重啟后通過讀取 .snapshot 文件和最新的日志文件即可恢復 Producer 的狀態。Broker 的重啟或分區遷移并不會影響冪等性。

5、事務消息流程

我們首先從 Demo 開始,來看一下如何使用 Kafka 客戶端完成一個事務:

// 事務初始化
val props = new Properties()
...
props.put(ProducerConfig.TRANSACTIONAL_ID_CONFIG, transactionalId)
props.put(ProducerConfig.ENABLE_IDEMPOTENCE_CONFIG, "true")


val producer = new KafkaProducer(props)
producer.initTransactions()
producer.beginTransaction()


// 消息發送
producer.send(RecordUtils.create(topic1, partition1, "message1"))
producer.send(RecordUtils.create(topic2, partition2, "message2"))


// 事務提交或回滾
producer.commitTransaction()

5.1 事務初始化

Kafka Producer 啟動后我們使用兩個 API 來初始化事務:initTransactions 和 beginTransaction。

回顧一下我們的 Demo,在發送消息時是發送到兩個不同分區中,這兩個分區可能在不同的 Broker 上,所以我們需要一個全局的協調者 TransactionCoordinator 來記錄事務的狀態。

所以,在 initTransactions 中,Producer 首先發送 ApiKeys.FIND_COORDINATOR 請求獲取 TransactionCoordinator。

之后即可向其發送 ApiKeys.INIT_PRODUCER_ID 請求獲取 ProducerId 及  ProducerEpoch(也是上文中用于冪等的字段)。此步驟生成的 id 和 epoch 會寫入內部 Topic __transaction_state 中,并且將事務的狀態置為 Empty。

__transaction_state 是 compaction Topic,其中消息的 key 為客戶端設置的transactional.id(詳見 TransactionStateManager#appendTransactionToLog)。

區別于 ProducerId 是服務端生成的內部屬性;TransactionId 由用戶設置,用于標識業務視角認為的“同一個應用”,啟動具有相同 TransactionId 的新 Producer 會使得未完成的事務被回滾并且來自舊 Producer(具有較小 epoch)的請求被拒絕掉。

后續 beginTransaction 用于開始一個事務,該方法會創建一個 Producer 內部事務狀態,標識這一個事務的開始,并不會有 RPC 產生。

5.2 消息發送

上一節說到 beginTransaction 只是更改 Producer 內部狀態,那么在第一條消息發送時才隱式開啟了事務:

首先,Producer 會發送 ApiKeys.ADD_PARTITIONS_TO_TXN 請求到 TransactionCoordinator。TransactionCoordinator 會將這個分區加入到事務中,并更改事務的狀態為 Ongoing,這些信息被持久化到 __transaction_state 中。

然后 Producer 使用 ApiKeys.PRODUCE 請求正常發送消息到對應的分區中。這條消息的可見性控制在下文消息消費一節中會詳細討論。

5.3 事務提交與回滾

當所有消息發送完成后,Producer 可以選擇提交或回滾事務,此時:

? TransactionCoordinator:具有當前事務所有相關分區的信息

? 其他 Broker:已經將消息持久化到日志文件中

接下來 Producer 調用 commitTransaction 會發送 ApiKeys.END_TXN 請求將事務狀態更改為 PrepareCommit(回滾事務對應狀態 PrepareAbort)并持久化到 __transaction_state 中,此時從 Producer 的視角來看整個事務已經結束了。

TransactionCoordinator 會異步向各個 Broker 發送 ApiKeys.WRITE_TXN_MARKERS 請求,當所有參加事務的 Broker 都返回成功后,TransactionCoordinator 會將事務狀態更改為 CompleteCommit(回滾事務對應狀態 CompleteAbort)并持久化到 __transaction_state 中。

5.4 消息的消費

某個分區的消息可能是事務消息與非事務消息混雜的,如下圖所示:

圖片圖片

在 Broker 處理 ApiKeys.PRODUCE 請求時,完成消息持久化會更新 LSO 到第一條未提交的事務消息的 offset。這樣在消費者消費消息時,可以通過 LSO 來判斷消息是否可見:如果設置了 isolation.level 為 read_committed 則只會消費 LSO 之前的消息。

LSO(log stable offset): 它表示的是已經被成功復制到所有副本(replicas)并且可以被消費者安全消費的消息的最大偏移量。 

但是我們可以發現 LSO 之前存在已回滾的消息(圖中紅色矩形)這些消息應該被過濾掉:在 Broker 處理 ApiKeys.WRITE_TXN_MARKERS 請求時,會將已回滾的消息索引寫入到 .txnindex 文件中(LogSegmentKafka#updateTxnIndex)。

后續 Consumer 消費消息時還會收到對應區間的已取消事務消息列表,上圖區間中的該列表為:

圖片圖片

代表 offset 在 [2,5] 之間且由 id 為 11 的 Producer 發送的消息都已回滾。

上文我們討論了 __transaction_state 的實現確保同一時間,同一 TransactionId 有且只有一個事務在進行中。所以可以使用 ProducerId 和 offset 區間定位回滾的消息不會發生沖突。

6、Kafka 事務提供的 ACID 保證

? 原子性(Atomicity)

Kafka 通過對 __transaction_state Topic 的寫入實現了事務狀態的轉移,保證了事務要么同時提交,要么同時回滾。

? 一致性(Consistency)

在事務進入 PrepareCommit 或 PrepareAbort 階段時, TransactionCoordinator 異步向所有參與事務的 Broker 提交或回滾事務。這使得 Kafka 的事務做不到強一致性,只能通過不斷重試保證最終一致性。

? 隔離性(Isolation)

Kafka 通過 LSO 機制和 .txnindex 文件來避免臟讀,實現讀已提交(Read Committed)的隔離級別。

? 持久性(Durability)

Kafka 通過將事務狀態寫入到 __transaction_state Topic 和消息寫入到日志文件中來保證持久性。

7、Kafka 事務的限制

從功能上看,Kafka 事務并不能支持業務方事務,強限制上游的消費和下游寫入都需要是同一個 Kafka 集群,否則就不具備原子性保障。

從性能上看,Kafka 事務的性能開銷主要體現在生產側:

開啟事務時需要額外的 RPC 請求定位 TransactionCoordinator 并初始化數據

消息發送需要在發送消息前向 TransactionCoordinator 同步請求添加分區,并將事務狀態的變化寫入到 __transaction_state Topic

事務提交或回滾時需要向所有參與事務的 Broker 發送請求

對于涉及分區較少且消息數量較多的事務,事務的開銷可以被均攤;反之,較多的同步 RPC 帶來的開銷會極大影響性能。并且每個生產者只能有一個事務在進行中,這就意味著事務的吞吐量會受到限制。

消費側也有一定的影響:消費者只能看到 LSO 以下的消息,并且需要額外的索引文件來過濾已回滾的消息,這無疑會增加端到端的延遲。

8、總結   

通過本文的深入分析,我們了解到 Kafka 的事務消息功能是如何在流處理場景中提供 Exactly-Once 語義的。Kafka 通過其事務 API 和內部機制,實現了消息發送的原子性、最終一致性、隔離性和持久性,盡管在實際應用中可能存在一些性能和功能上的限制。開發者和架構師應當充分理解這些概念,并在設計系統時考慮如何有效地利用 Kafka 的事務功能,以構建更加健壯和可靠的數據處理流程。

AutoMQ 是構建于對象存儲之上的云原生 Kafka fork,在解決了 Kafka 已有的成本和彈性問題基礎上對 Kafka 100%兼容,因此在 AutoMQ 上也可以使用 Kafka 事務消息。AutoMQ 作為國內 Kafka 生態的忠實擁護者,我們將持續為 Kafka 技術愛好者帶來優質的 Kafka 技術內容分享,歡迎關注我們。

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

2025-03-12 07:55:46

2024-11-01 09:28:02

2023-08-29 13:53:00

前端攔截HashMap

2021-03-08 08:48:02

應用場景項目

2020-06-22 18:54:39

消息隊列冪等性

2024-03-13 15:18:00

接口冪等性高并發

2017-04-03 21:23:44

消息總線冪等性消息

2023-12-18 09:46:13

Kafka集群開發

2021-04-14 17:18:27

冪等性數據源MySQL

2022-05-05 07:49:54

業務冪MySQL索引

2025-02-23 08:00:00

冪等性Java開發

2024-11-07 11:17:50

2021-04-09 10:03:12

大數據exactly-onc

2021-01-18 14:34:59

冪等性接口客戶端

2020-10-18 07:25:55

MQ消息冪等架構

2021-02-01 08:41:45

Flink語義數據

2023-09-01 15:27:31

2024-06-24 01:00:00

2023-03-07 08:19:16

接口冪等性SpringBoot

2024-08-29 09:01:39

點贊
收藏

51CTO技術棧公眾號

67194成人在线观看| 中文字幕一区二区三区四区不卡| 98视频在线噜噜噜国产| 尤物视频最新网址| 玖玖精品一区| 色综合天天综合给合国产| 伊人久久大香线蕉成人综合网| 国产成年妇视频| 久久综合婷婷| 欧美成人一二三| 男生草女生视频| 日韩中文字幕在线一区| 色婷婷精品久久二区二区蜜臂av| 无码毛片aaa在线| 久久精品国产亚洲a∨麻豆| 国产精品自在在线| 国产精品久久久久久亚洲调教| 久久精品一区二区三| 不卡一区综合视频| 亚洲精品国产精品久久清纯直播| 中文字幕久久av| 日韩免费福利视频| 精品久久久久久久久久久久| 日韩精品一区二区三区电影| 国内精品一区视频| 91网站最新网址| 国产66精品久久久久999小说| 亚洲狠狠爱一区二区三区| 中文字幕一区二区三区5566| 四虎影视2018在线播放alocalhost| 国产乱码精品一区二区三区av| 国产在线观看h| 国产人妻黑人一区二区三区| 日韩一区二区三区免费| 亚洲成人免费看| 国产人妻互换一区二区| a黄色在线观看| 91色|porny| 国新精品乱码一区二区三区18| 中文天堂在线视频| 日日欢夜夜爽一区| 欧美亚洲成人网| 亚洲免费激情视频| 亚洲黄色毛片| 97精品一区二区三区| 久久精品视频免费在线观看| 国产精品久久久久久久久久10秀| 国产亚洲福利一区| 国产精品国产三级国产专业不| 精品一区三区| 亚洲天堂久久av| 永久免费毛片在线观看| 国产91精品对白在线播放| 日韩精品中文字幕视频在线| 51调教丨国产调教视频| 日韩精品社区| 亚洲欧美成人网| 西西444www无码大胆| 欧美老女人另类| 丝袜一区二区三区| 亚洲不卡在线播放| 午夜久久99| 久久久在线免费观看| 日韩 欧美 精品| 亚洲尤物影院| 国产精品久久二区| 国产麻豆91视频| 国产一区二区三区美女| 翡翠波斯猫1977年美国| 天堂网在线中文| 91麻豆国产精品久久| 日韩欧美国产二区| 久久99精品久久久久久野外| 亚洲精品老司机| 蜜桃传媒一区二区三区| av有声小说一区二区三区| 欧美日韩成人激情| 一级黄色电影片| 亚洲成aⅴ人片久久青草影院| 亚洲香蕉成人av网站在线观看| 99久久久无码国产精品不卡| 你懂的成人av| 欧美一级电影免费在线观看| 中文字幕在线观看你懂的| 韩国精品免费视频| 国产精品日韩一区二区三区| 可以直接在线观看的av| 亚洲三级在线免费| 精品无码一区二区三区在线| 成人精品动漫| 亚洲精品在线观| 女人十八毛片嫩草av| 欧美国产激情| 国产成人在线播放| www.五月激情| 欧美激情综合五月色丁香小说| 亚洲免费av网| japanese23hdxxxx日韩| 日韩一区二区三区电影| 伊人网在线视频观看| 影音先锋日韩在线| 国产v综合v亚洲欧美久久| 99久久久无码国产精品免费| 久久久久久一二三区| 大桥未久一区二区三区| 中文日产幕无线码一区二区| 91精品国产一区二区三区 | av理论在线观看| 精品电影在线观看| 免费人成视频在线播放| 亚洲人和日本人hd| 欧美激情第一页xxx| 亚洲在线观看av| 91丨九色porny丨蝌蚪| 欧美a级黄色大片| 久久久久久久性潮| 亚洲性猛交xxxxwww| 久久精品美女视频| 国产一区二区三区久久悠悠色av| 午夜欧美性电影| 日韩精品av| 亚洲精品一区二区三区影院| 亚洲色偷偷综合亚洲av伊人| 日韩制服丝袜av| 精品在线视频一区二区三区| 日韩少妇视频| 欧美一区二区女人| 女性裸体视频网站| 日本女优在线视频一区二区| 久久久久一区二区| free性护士videos欧美| 日韩欧美国产午夜精品| 天天看片中文字幕| 国产在线播放一区三区四| 日韩欧美一区二区三区四区五区| 在线免费看h| 亚洲黄页视频免费观看| 免费中文字幕在线观看| 国产精品综合av一区二区国产馆| 黄色免费高清视频| 成人免费观看49www在线观看| 最新国产成人av网站网址麻豆| 无码日韩精品一区二区| 久久久美女艺术照精彩视频福利播放| 久久久久久久久久久99| aaa国产精品视频| 久久久久久欧美| 黑人操亚洲女人| 亚洲丶国产丶欧美一区二区三区| 国产成人精品一区二区三区在线观看| 2023国产精品久久久精品双| 91免费电影网站| 黄色片在线观看免费| 亚洲免费综合| 青青草原亚洲| 国产精品诱惑| 超碰日本道色综合久久综合| 精品人妻一区二区三区日产乱码| 亚洲精品成人天堂一二三| 在线免费黄色网| 欧美成人毛片| www.久久久久| 国产成人精品无码高潮| 亚洲一区二区三区小说| 粉嫩av懂色av蜜臀av分享| 香蕉精品999视频一区二区| 欧美婷婷久久| 先锋影音一区二区| 欧美激情一区二区三区在线视频观看| 蜜臀av在线观看| 欧美日韩中国免费专区在线看| 狠狠人妻久久久久久综合蜜桃| 久久国产高清| 一区二区在线不卡| 亚洲精品观看| 热99在线视频| 日本视频在线播放| 精品国产一区二区三区不卡| 国产成人亚洲欧洲在线| 国产日产欧美一区| 手机av在线网站| 一区二区三区导航| 亚洲一区精彩视频| 国产精品nxnn| 国产精品手机播放| 日本无删减在线| 亚洲男人天堂九九视频| 97人妻一区二区精品免费视频| 亚洲国产欧美日韩另类综合| 蜜桃久久精品成人无码av| 久草中文综合在线| 黄色成人在线看| 日韩精品第一区| 欧美在线视频免费观看| 午夜在线免费观看视频| 亚洲娇小xxxx欧美娇小| 91极品身材尤物theporn| 精品国产乱码久久久久久天美| jizz日本在线播放| 99久久精品免费精品国产| 美女在线视频一区二区| 国产精品一区二区av交换| 国产在线观看精品| 黄视频网站在线观看| www.久久撸.com| 男人天堂亚洲二区| 日韩午夜在线影院| 中文字幕+乱码+中文字幕明步 | 国产精品一区二区在线观看网站| 亚欧无线一线二线三线区别| 亚洲va在线| 日韩久久在线| 国产精品香蕉| 亚洲a级在线观看| 国产一区二区三区四区五区3d| 性金发美女69hd大尺寸| 国产盗摄在线观看| 最近的2019中文字幕免费一页| 亚洲欧美一区二区三| 日韩精品一区二区三区中文不卡| 中文资源在线播放| 91福利在线观看| 日本韩国欧美中文字幕| 亚洲综合在线观看视频| 91在线播放观看| ㊣最新国产の精品bt伙计久久| 玖玖爱在线观看| 99久久久久久| 任你躁av一区二区三区| 国产精品主播直播| 爱情岛论坛亚洲自拍| 精品在线一区二区| 99re精彩视频| 欧美96一区二区免费视频| 久久综合久久色| 久久久久久9| 99免费视频观看| 久久综合影音| 天堂av在线网站| 免费视频最近日韩| 精品999在线| 麻豆高清免费国产一区| 亚洲欧美在线精品| 久久精品国产第一区二区三区| 午夜免费看视频| 国产一区欧美日韩| 中文字幕一二三区| 国产成人av电影在线| 亚洲女则毛耸耸bbw| av动漫一区二区| 国产精品密蕾丝袜| 国产精品女主播在线观看| 午夜激情福利电影| 亚洲精品免费在线观看| 免费在线观看黄色av| 黄色成人av网| 337p粉嫩色噜噜噜大肥臀| 欧美亚洲愉拍一区二区| 中文字幕视频一区二区| 69堂国产成人免费视频| 亚洲精品久久久久久久久久| 日韩成人中文电影| 国产视频三级在线观看播放| 中文字幕精品久久| av在线官网| 97av在线播放| 日韩一区精品| 亚洲综合精品一区二区| www.久久东京| 欧美日韩在线观看一区| 外国成人免费视频| 亚洲熟妇无码一区二区三区| 日韩精品一卡二卡三卡四卡无卡| 视色视频在线观看| 成人一级视频在线观看| 蜜桃av免费看| 亚洲黄色小说网站| 国内自拍视频在线播放| 欧美日韩国产电影| 色综合久久久久久| 中文字幕在线亚洲| 999福利在线视频| 国产精品久久视频| 成人h动漫免费观看网站| 日韩精品久久一区二区三区| 欧美777四色影| 成人精品小视频| 从欧美一区二区三区| 黄色片在线观看免费| 亚洲国产成人精品视频| 国产精品成人无码| 精品国产a毛片| 好吊日视频在线观看| 欧美在线国产精品| 午夜久久av| 亚洲精品中文综合第一页| 一区精品久久| 中文字幕一区久久| 国产日韩成人精品| 国产高潮久久久| 欧美v国产在线一区二区三区| 国产中文字幕在线看| 久久人人97超碰精品888| 亚洲色图图片| 五月天久久综合网| 一区二区三区国产在线| 日本成人在线免费| 国产精品成人在线观看| 四虎成人永久免费视频| 精品国产制服丝袜高跟| 巨大荫蒂视频欧美大片| 国产精品美女呻吟| 亚洲最大在线| 蜜桃传媒一区二区三区| 国产·精品毛片| www.99re7| 欧美精品粉嫩高潮一区二区| 黄色片免费在线| 欧洲成人免费视频| 精品福利一区| 日本阿v视频在线观看| 国产麻豆视频一区| 在线播放日韩欧美| 国产精品xxxx喷水欧美| 欧美一区二区三区成人| jyzzz在线观看视频| 欧美在线一区二区视频| 高潮按摩久久久久久av免费| 一区二区三区四区免费观看| 蜜臀av一区二区三区| 欧美一区二区三区成人精品| 亚洲国产一区视频| 亚洲av无码一区二区乱子伦| 久久成人精品电影| 国产精品一区二区精品视频观看 | а√中文在线资源库| 久久韩国免费视频| 一区二区三区| 最新国产精品久久| 国内成+人亚洲+欧美+综合在线| 天堂网av2018| 欧美精品 日韩| 大片免费在线看视频| 亚洲最大的免费| 欧美视频一区| www.555国产精品免费| 亚洲狠狠爱一区二区三区| 日韩永久免费视频| 欧美孕妇孕交黑巨大网站| 亚洲伊人春色| 不卡av免费在线| 国产精品久久久久毛片软件| 97人妻精品一区二区三区| 欧美另类在线观看| 欧美亚洲国产日韩| 国产欧美高清在线| 中文字幕在线观看不卡| 国产精品免费无遮挡| 欧美日韩成人在线播放| 精品按摩偷拍| 国产精品igao| 综合精品久久久| 亚洲AV午夜精品| 97不卡在线视频| 欧美另类69xxxxx| 日韩精品aaa| 午夜精品视频在线观看| 裸体xxxx视频在线| 91免费的视频在线播放| 亚洲伦理精品| 超碰人人干人人| 日韩一区二区免费高清| 僵尸再翻生在线观看| 日韩理论片在线观看| 国产精品18久久久久久久网站| 日本少妇全体裸体洗澡| 国产亚洲免费的视频看| 秋霞影院一区| 日本中文字幕片| 成人免费小视频| 日本毛片在线观看| 国产精品爽爽爽| 红桃视频国产一区| 免费一级特黄3大片视频| 日韩精品一区二区三区老鸭窝| 成人影院大全| 伊人网在线免费| 国产日韩精品一区二区三区| www.成人在线观看| 国产精品高清在线| 影音先锋日韩资源| 综合 欧美 亚洲日本| 亚洲国产精品成人av| 四虎视频在线精品免费网址| 免费看国产一级片| 亚洲色图欧美激情| 国产1区2区3区在线| 国内视频一区| 国产在线精品国自产拍免费| 日韩精选在线观看|