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

分布式事務如何實現?深入解讀 Seata 的 XA 模式

開發 架構 分布式
XA 模式的加入,補齊了 Seata 在 全局一致性 場景下的缺口,形成 AT、TCC、Saga、XA 四大 事務模式 的版圖,基本可以滿足所有場景的分布式事務處理訴求。

Seata 1.2.0 版本重磅發布新的事務模式:XA 模式,實現對 XA 協議的支持。

[[324167]]

這里,我們從三個方面來深入解讀這個新的特性:

  • 是什么(What):XA 模式是什么?
  • 為什么(Why):為什么支持 XA?
  • 怎么做(How):XA 模式是如何實現的,以及怎樣使用?

1. XA 模式是什么?

這里有兩個基本的前置概念:

  1. 什么是 XA?
  2. 什么是 Seata 定義的所謂 事務模式?

基于這兩點,再來理解 XA 模式就很自然了。

1.1 什么是 XA?

XA 規范 是 X/Open 組織定義的分布式事務處理(DTP,Distributed Transaction Processing)標準。

XA 規范 描述了全局的事務管理器與局部的資源管理器之間的接口。 XA規范 的目的是允許的多個資源(如數據庫,應用服務器,消息隊列等)在同一事務中訪問,這樣可以使 ACID 屬性跨越應用程序而保持有效。

XA 規范 使用兩階段提交(2PC,Two-Phase Commit)來保證所有資源同時提交或回滾任何特定的事務。

XA 規范 在上世紀 90 年代初就被提出。目前,幾乎所有主流的數據庫都對 XA 規范 提供了支持。

1.2 什么是 Seata 的事務模式?

Seata 定義了全局事務的框架。

全局事務 定義為若干 分支事務 的整體協調: 

  1. TM 向 TC 請求發起(Begin)、提交(Commit)、回滾(Rollback)全局事務。
  2. TM 把代表全局事務的 XID 綁定到分支事務上。
  3. RM 向 TC 注冊,把分支事務關聯到 XID 代表的全局事務中。
  4. RM 把分支事務的執行結果上報給 TC。(可選)
  5. TC 發送分支提交(Branch Commit)或分支回滾(Branch Rollback)命令給 RM。

Seata 的 全局事務 處理過程,分為兩個階段:

  • 執行階段 :執行 分支事務,并 保證 執行結果滿足是 可回滾的(Rollbackable) 和 持久化的(Durable)。
  • 完成階段: 根據 執行階段 結果形成的決議,應用通過 TM 發出的全局提交或回滾的請求給 TC,TC 命令 RM 驅動 分支事務 進行 Commit 或 Rollback。

Seata 的所謂 事務模式 是指:運行在 Seata 全局事務框架下的 分支事務 的行為模式。準確地講,應該叫作 分支事務模式。

不同的 事務模式 區別在于 分支事務 使用不同的方式達到全局事務兩個階段的目標。即,回答以下兩個問題:

  • 執行階段 :如何執行并 保證 執行結果滿足是 可回滾的(Rollbackable) 和 持久化的(Durable)。
  • 完成階段: 收到 TC 的命令后,如何做到分支的提交或回滾?

以我們 Seata 的 AT 模式和 TCC 模式為例來理解:

AT 模式

執行階段:

  • 可回滾:根據 SQL 解析結果,記錄回滾日志
  • 持久化:回滾日志和業務 SQL 在同一個本地事務中提交到數據庫

完成階段:

  • 分支提交:異步刪除回滾日志記錄
  • 分支回滾:依據回滾日志進行反向補償更新

TCC 模式

執行階段:

  • 調用業務定義的 Try 方法(完全由業務層面保證 可回滾 和 持久化)

完成階段:

  • 分支提交:調用各事務分支定義的 Confirm 方法
  • 分支回滾:調用各事務分支定義的 Cancel 方法

1.3 什么是 Seata 的 XA 模式?

XA 模式:

在 Seata 定義的分布式事務框架內,利用事務資源(數據庫、消息服務等)對 XA 協議的支持,以 XA 協議的機制來管理分支事務的一種 事務模式。

執行階段:

  • 可回滾:業務 SQL 操作放在 XA 分支中進行,由資源對 XA 協議的支持來保證 可回滾
  • 持久化:XA 分支完成后,執行 XA prepare,同樣,由資源對 XA 協議的支持來保證 持久化(即,之后任何意外都不會造成無法回滾的情況)

完成階段:

  • 分支提交:執行 XA 分支的 commit
  • 分支回滾:執行 XA 分支的 rollback

2. 為什么支持 XA?

為什么要在 Seata 中增加 XA 模式呢?支持 XA 的意義在哪里呢?

2.1 補償型事務模式的問題

本質上,Seata 已經支持的 3 大事務模式:AT、TCC、Saga 都是 補償型 的。

補償型 事務處理機制構建在 事務資源 之上(要么在中間件層面,要么在應用層面),事務資源 本身對分布式事務是無感知的。

事務資源 對分布式事務的無感知存在一個根本性的問題:無法做到真正的 全局一致性 。

比如,一條庫存記錄,處在 補償型 事務處理過程中,由 100 扣減為 50。此時,倉庫管理員連接數據庫,查詢統計庫存,就看到當前的 50。之后,事務因為異外回滾,庫存會被補償回滾為 100。顯然,倉庫管理員查詢統計到的 50 就是 臟 數據。

可以看到,補償型 分布式事務機制因為不要求 事務資源 本身(如數據庫)的機制參與,所以無法保證從事務框架之外的全局視角的數據一致性。

2.2 XA 的價值

與 補償型 不同,XA 協議 要求 事務資源 本身提供對規范和協議的支持。

因為 事務資源 感知并參與分布式事務處理過程,所以 事務資源(如數據庫)可以保障從任意視角對數據的訪問有效隔離,滿足全局數據一致性。

比如,上一節提到的庫存更新場景,XA 事務處理過程中,中間態數據庫存 50 由數據庫本身保證,是不會倉庫管理員的查詢統計 看 到的。(當然隔離級別需要 讀已提交 以上)

除了 全局一致性 這個根本性的價值外,支持 XA 還有如下幾個方面的好處:

  • 業務無侵入:和 AT 一樣,XA 模式將是業務無侵入的,不給應用設計和開發帶來額外負擔。
  • 數據庫的支持廣泛:XA 協議被主流關系型數據庫廣泛支持,不需要額外的適配即可使用。
  • 多語言支持容易:因為不涉及 SQL 解析,XA 模式對 Seata 的 RM 的要求比較少,為不同語言開發 SDK 較之 AT 模式將更 薄,更容易。
  • 傳統基于 XA 應用的遷移:傳統的,基于 XA 協議的應用,遷移到 Seata 平臺,使用 XA 模式將更平滑。

2.3 XA 廣泛被質疑的問題

不存在某一種分布式事務機制可以完美適應所有場景,滿足所有需求。

XA 規范早在上世紀 90 年代初就被提出,用以解決分布式事務處理這個領域的問題。

現在,無論 AT 模式、TCC 模式還是 Saga 模式,這些模式的提出,本質上都源自 XA 規范對某些場景需求的無法滿足。

XA 規范定義的分布式事務處理機制存在一些被廣泛質疑的問題,針對這些問題,我們是如何思考的呢?

1. 數據鎖定:數據在整個事務處理過程結束前,都被鎖定,讀寫都按隔離級別的定義約束起來。

思考:

數據鎖定是獲得更高隔離性和全局一致性所要付出的代價。

補償型 的事務處理機制,在 執行階段 即完成分支(本地)事務的提交,(資源層面)不鎖定數據。而這是以犧牲 隔離性 為代價的。

另外,AT 模式使用 全局鎖 保障基本的 寫隔離,實際上也是鎖定數據的,只不過鎖在 TC 側集中管理,解鎖效率高且沒有阻塞的問題。

2. 協議阻塞:XA prepare 后,分支事務進入阻塞階段,收到 XA commit 或 XA rollback 前必須阻塞等待。

思考:

協議的阻塞機制本身并不是問題,關鍵問題在于 協議阻塞 遇上 數據鎖定。

如果一個參與全局事務的資源 “失聯” 了(收不到分支事務結束的命令),那么它鎖定的數據,將一直被鎖定。進而,甚至可能因此產生死鎖。

這是 XA 協議的核心痛點,也是 Seata 引入 XA 模式要重點解決的問題。

基本思路是兩個方面:避免 “失聯” 和 增加 “自解鎖” 機制。(這里涉及非常多技術細節,暫時不展開,在后續 XA 模式演進過程中,會專門拿出來討論)

3. 性能差:性能的損耗主要來自兩個方面:一方面,事務協調過程,增加單個事務的 RT;另一方面,并發事務數據的鎖沖突,降低吞吐。

思考:

和不使用分布式事務支持的運行場景比較,性能肯定是下降的,這點毫無疑問。

本質上,事務(無論是本地事務還是分布式事務)機制就是拿部分 性能的犧牲 ,換來 編程模型的簡單 。

與同為 業務無侵入 的 AT 模式比較:

首先,因為同樣運行在 Seata 定義的分布式事務框架下,XA 模式并沒有產生更多事務協調的通信開銷。

其次,并發事務間,如果數據存在熱點,產生鎖沖突,這種情況,在 AT 模式(默認使用全局鎖)下同樣存在的。

所以,在影響性能的兩個主要方面,XA 模式并不比 AT 模式有非常明顯的劣勢。

AT 模式性能優勢主要在于:集中管理全局數據鎖,鎖的釋放不需要 RM 參與,釋放鎖非常快;另外,全局提交的事務,完成階段 異步化。

3. XA 模式如何實現以及怎樣用?

3.1 XA 模式的設計

3.1.1 設計目標

XA 模式的基本設計目標,兩個主要方面:

  1. 從 場景 上,滿足 全局一致性 的需求。
  2. 從 應用上,保持與 AT 模式一致的無侵入。
  3. 從 機制 上,適應分布式微服務架構的特點。

整體思路:

與 AT 模式相同的:以應用程序中 本地事務 的粒度,構建到 XA 模式的 分支事務。

通過數據源代理,在應用程序本地事務范圍外,在框架層面包裝 XA 協議的交互機制,把 XA 編程模型 透明化。

把 XA 的 2PC 拆開,在分支事務 執行階段 的末尾就進行 XA prepare,把 XA 協議完美融合到 Seata 的事務框架,減少一輪 RPC 交互。

3.1.2 核心設計

1. 整體運行機制

XA 模式 運行在 Seata 定義的事務框架內:

執行階段(E xecute):

  • XA start/XA end/XA prepare + SQL + 注冊分支

完成階段(F inish):

  • XA commit/XA rollback

2. 數據源代理

XA 模式需要 XAConnection。

獲取 XAConnection 兩種方式:

  • 方式一:要求開發者配置 XADataSource
  • 方式二:根據開發者的普通 DataSource 來創建

第一種方式,給開發者增加了認知負擔,需要為 XA 模式專門去學習和使用 XA 數據源,與 透明化 XA 編程模型的設計目標相違背。

第二種方式,對開發者比較友好,和 AT 模式使用一樣,開發者完全不必關心 XA 層面的任何問題,保持本地編程模型即可。

我們優先設計實現第二種方式:數據源代理根據普通數據源中獲取的普通 JDBC 連接創建出相應的 XAConnection。

類比 AT 模式的數據源代理機制,如下:

但是,第二種方法有局限:無法保證兼容的正確性。

實際上,這種方法是在做數據庫驅動程序要做的事情。不同的廠商、不同版本的數據庫驅動實現機制是廠商私有的,我們只能保證在充分測試過的驅動程序上是正確的,開發者使用的驅動程序版本差異很可能造成機制的失效。

這點在 Oracle 上體現非常明顯。參見 Druid issue:https://github.com/alibaba/druid/issues/3707

綜合考慮,XA 模式的數據源代理設計需要同時支持第一種方式:基于 XA 數據源進行代理。

類比 AT 模式的數據源代理機制,如下:

3. 分支注冊

XA start 需要 Xid 參數。

這個 Xid 需要和 Seata 全局事務的 XID 和 BranchId 關聯起來,以便由 TC 驅動 XA 分支的提交或回滾。

目前 Seata 的 BranchId 是在分支注冊過程,由 TC 統一生成的,所以 XA 模式分支注冊的時機需要在 XA start 之前。

將來一個可能的優化方向:

把分支注冊盡量延后。類似 AT 模式在本地事務提交之前才注冊分支,避免分支執行失敗情況下,沒有意義的分支注冊。

這個優化方向需要 BranchId 生成機制的變化來配合。BranchId 不通過分支注冊過程生成,而是生成后再帶著 BranchId 去注冊分支。

小結

這里只通過幾個重要的核心設計,說明 XA 模式的基本工作機制。

此外,還有包括 連接保持、異常處理 等重要方面,有興趣可以從項目代碼中進一步了解。

以后會陸續寫出來和大家交流。

3.1.3 演進規劃

XA 模式總體的演進規劃如下:

第 1 步(已經完成):首個版本(1.2.0),把 XA 模式原型機制跑通。確保只增加,不修改,不給其他模式引入的新問題。

第 2 步(計劃 5 月完成):與 AT 模式必要的融合、重構。

第 3 步(計劃 7 月完成):完善異常處理機制,進行上生產所必需的打磨。

第 4 步(計劃 8 月完成):性能優化。

第 5 步(計劃 2020 年內完成):結合 Seata 項目正在進行的面向云原生的 Transaction Mesh 設計,打造云原生能力。

3.2 XA 模式的使用

從編程模型上,XA 模式與 AT 模式保持完全一致。

可以參考 Seata 官網的樣例:seata-xa

樣例場景是 Seata 經典的,涉及庫存、訂單、賬戶 3 個微服務的商品訂購業務。

在樣例中,上層編程模型與 AT 模式完全相同。只需要修改數據源代理,即可實現 XA 模式與 AT 模式之間的切換。

  1. @Bean("dataSourceProxy"
  2.    public DataSource dataSource(DruidDataSource druidDataSource) { 
  3.        // DataSourceProxy for AT mode 
  4.        // return new DataSourceProxy(druidDataSource); 
  5.  
  6.        // DataSourceProxyXA for XA mode 
  7.        return new DataSourceProxyXA(druidDataSource); 
  8.    } 

4. 總結

在當前的技術發展階段,不存一個分布式事務處理機制可以完美滿足所有場景的需求。

一致性、可靠性、易用性、性能等諸多方面的系統設計約束,需要用不同的事務處理機制去滿足。

Seata 項目最核心的價值在于:構建一個全面解決分布式事務問題的 標準化 平臺。

基于 Seata,上層應用架構可以根據實際場景的需求,靈活選擇合適的分布式事務解決方案。

XA 模式的加入,補齊了 Seata 在 全局一致性 場景下的缺口,形成 AT、TCC、Saga、XA 四大 事務模式 的版圖,基本可以滿足所有場景的分布式事務處理訴求。

當然 XA 模式和 Seata 項目本身都還不盡完美,有很多需要改進和完善的地方。非常歡迎大家參與到項目的建設中,共同打造一個標準化的分布式事務平臺。

作者簡介:煊檍,GitHub ID:sharajava,阿里巴巴中件間 GTS 研發團隊負責人,SEATA 開源項目發起人,曾在 Oracle 北京研發中心多年,從事 WebLogic 核心研發工作。長期專注于中間件,尤其是分布式事務領域的技術實踐。

本文轉載自微信公眾號「高可用架構」,可以通過以下二維碼關注。轉載本文請聯系高可用架構公眾號。

 

責任編輯:武曉燕 來源: 高可用架構
相關推薦

2021-04-23 08:15:51

Seata XA AT

2022-06-27 08:21:05

Seata分布式事務微服務

2025-04-28 00:44:04

2022-06-21 08:27:22

Seata分布式事務

2023-01-06 09:19:12

Seata分布式事務

2022-07-03 14:03:57

分布式Seata

2025-05-07 00:10:00

分布式事務TCC模式

2022-03-24 07:51:27

seata分布式事務Java

2022-01-12 10:02:02

TCC模式 Seata

2022-07-10 20:24:48

Seata分布式事務

2023-11-06 13:15:32

分布式事務Seata

2025-04-30 10:44:02

2024-10-09 14:14:07

2024-01-26 08:18:03

2021-08-06 08:33:27

Springboot分布式Seata

2024-08-19 09:05:00

Seata分布式事務

2021-12-13 11:07:10

鴻蒙HarmonyOS應用

2025-01-26 00:00:40

Seata分布式事務

2024-12-02 09:19:44

2020-12-09 09:14:57

SpringCloudSeata 分布式
點贊
收藏

51CTO技術棧公眾號

www.国产免费| 免费在线看黄网址| 国产精品原创视频| 亚洲婷婷在线视频| 精品国产一区二区三区日日嗨| 国产性生活视频| 亚洲成人最新网站| 亚洲精品二三区| 亚洲娇小娇小娇小| а√天堂8资源中文在线| 久久久精品黄色| 国产有码一区二区| 久久久久久久黄色片| 成人亚洲一区二区| 亚洲成人亚洲激情| 中文字幕22页| 在线观看网站免费入口在线观看国内| 日本一区二区三区视频视频| 国产精品9999久久久久仙踪林| 日韩欧美国产另类| 亚洲视频一二| 视频在线观看一区二区| av黄色一级片| 国产高清视频一区二区| 色一区在线观看| 黄色激情在线视频| 超碰在线最新| 亚洲国产精品99久久久久久久久 | 国产91丝袜在线18| 国产精品久久久久99| 日韩免费黄色片| 欧美va天堂在线| 日日骚久久av| 中文字幕成人动漫| 欧美一级二级三级视频| 日韩欧美中文字幕一区| wwwwwxxxx日本| 香蕉成人av| 欧美午夜丰满在线18影院| 波多野结衣av一区二区全免费观看| 欧美18一19xxx性| 国产香蕉久久精品综合网| 精品久久sese| 日韩一区二区三区在线观看视频| 国产高清成人在线| 亚洲aⅴ男人的天堂在线观看| 中文字幕精品无码亚| 丝袜亚洲精品中文字幕一区| 欧美中文在线观看| 伊人久久综合视频| 国产日韩欧美高清免费| 26uuu另类亚洲欧美日本一 | 91搞黄在线观看| 日韩网址在线观看| 青青青免费在线视频| 亚洲不卡av一区二区三区| 一卡二卡三卡视频| 8x8ⅹ拨牐拨牐拨牐在线观看| 玉足女爽爽91| 国产自产在线视频| 91福利在线免费| 性做久久久久久| 鲁一鲁一鲁一鲁一色| 欧美男男激情videos| 精品国产91久久久久久| 香港三级韩国三级日本三级| 免费h视频在线观看| 欧美日韩中文字幕在线视频| 国产精品亚洲二区在线观看| 视频在线日韩| 欧美色精品天天在线观看视频| 免费涩涩18网站入口| 色综合久久久| 日韩精品一区二区三区视频播放 | 亚洲免费观看视频| 青草视频在线观看视频| 欧美男男tv网站在线播放| 欧美特级www| 欧美一级特黄a| 久久久久久久久久久久电影| 精品999久久久| 在线免费看黄视频| 亚洲女同一区| 97超级碰碰碰久久久| 瑟瑟视频在线免费观看| 国产精品资源网站| 久久久久久精| 精品国产白色丝袜高跟鞋| 亚洲v中文字幕| 国产高清视频网站| 一区二区三区自拍视频| 日韩精品极品在线观看| 在线视频这里只有精品| 欧美精品一级| 国产国产精品人在线视| 国产成年妇视频| xfplay精品久久| 中文字幕av导航| 漫画在线观看av| 在线成人av网站| 久久国产精品无码一级毛片| 91精品一区国产高清在线gif| 久久免费视频网站| 国产一区二区三区视频免费观看| 99热这里都是精品| 中文字幕欧美人与畜| 日韩激情电影| 日韩一区二区三区高清免费看看| 成人片黄网站色大片免费毛片| 99久久视频| 欧美一区二区三区免费观看| aaa国产视频| 国产性做久久久久久| 日本一区午夜艳熟免费| 国产成+人+综合+亚洲欧美| 亚洲第一精品自拍| 黄视频网站免费看| 免费看精品久久片| 日本中文字幕一区二区视频| 97成人精品视频在线观看| 国产精品一品二区三区的使用体验| 97精品国产97久久久久久久久久久久| 99re99热| 巨大黑人极品videos精品| 亚洲精品动漫100p| 久久无码精品丰满人妻| 韩日精品视频一区| 日韩一区二区电影在线观看| 女厕盗摄一区二区三区| 精品少妇一区二区| 欧美日韩中文字幕在线观看| 麻豆精品在线播放| 欧美一级日本a级v片| 国产伦理精品| 亚洲国产99精品国自产| 欧美国产日韩综合| 国产在线精品一区二区三区不卡| 日韩久久精品一区二区三区| 欧美伦理91| 精品偷拍一区二区三区在线看| 久久精品国产亚洲AV无码男同| 国产精品中文字幕欧美| 中文字幕黄色大片| 伊人久久大香线蕉综合影院首页| 一区二区中文字幕| 久操视频在线免费观看| 久久免费午夜影院| 欧美精品色婷婷五月综合| 久久久亚洲欧洲日产| 国内精品久久久久| 日韩中文字幕观看| 精品日本美女福利在线观看| 少妇户外露出[11p]| 亚洲黄色一区| 欧美高清视频一区二区三区在线观看 | 国产电影一区二区三区| 秋霞在线一区二区| 精品一区二区三区中文字幕在线| 萌白酱国产一区二区| 精品国产av一区二区| 亚洲午夜电影在线| 97人妻天天摸天天爽天天| 香蕉精品999视频一区二区| 久久久久网址| 国产一区二区主播在线| 色诱女教师一区二区三区| 亚洲一级片免费看| 悠悠色在线精品| 成人一区二区三区仙踪林| 伊人成人在线视频| 久久精品成人一区二区三区蜜臀| xx欧美xxx| 日韩在线精品一区| 午夜精品久久久久久久第一页按摩| 亚洲成人在线观看视频| 欧美成人午夜精品免费| 免费成人在线影院| 亚洲色图都市激情| 久久这里只有精品一区二区| 国产成人精品a视频一区www| 日本在线人成| 精品久久久久久久人人人人传媒| 国产尤物在线视频| 中文字幕在线不卡视频| 国产ts在线观看| 久久香蕉精品| 国产盗摄视频在线观看| 麻豆一区二区| 国产日产欧美精品| 白浆在线视频| 色妞一区二区三区| 欧美一级免费片| 欧美视频日韩视频| 国产污片在线观看| 国产精品久久久久久久久果冻传媒 | 丁香网亚洲国际| 成人免费xxxxx在线视频| 你懂的视频一区二区| 欧美一级爱爱| 果冻天美麻豆一区二区国产| 国产精品永久在线| 国产精品25p| 久久综合电影一区| 国产专区在线| 精品国产免费一区二区三区四区 | 欧美一卡在线观看| 国产三级理论片| 精品国产乱码久久久久酒店| 日韩欧美综合视频| 久久久99精品久久| 97人妻精品一区二区三区免费 | 国产精品入口麻豆| 久久成人免费网站| 成人免费在线小视频| 欧美.www| 亚洲午夜精品一区二区| 要久久爱电视剧全集完整观看| 亚洲xxxxx电影| 成人影院在线免费观看| 88国产精品欧美一区二区三区| 在线xxxx| 久久精品国产亚洲一区二区| 国际av在线| 亚洲欧美国产精品va在线观看| 亚洲精品一区二区三区区别 | 青青在线视频一区二区三区 | 国产成人精品一区二区| 草草视频在线| 欧美黑人国产人伦爽爽爽| 欧美精品videos另类| 在线观看亚洲区| 欧美孕妇孕交xxⅹ孕妇交| 亚洲国产精久久久久久| 亚洲第一黄色片| 欧美一二三区精品| 国产日本精品视频| 在线电影欧美成精品| 一二三区中文字幕| 欧美性猛交xxxxxx富婆| 久久国产视频一区| 色呦呦一区二区三区| 日韩精品在线观看免费| 婷婷成人激情在线网| 日本特黄特色aaa大片免费| 洋洋av久久久久久久一区| 777777国产7777777| 亚洲日本va在线观看| 中文字幕亚洲欧美日韩| 亚洲日本青草视频在线怡红院 | 大地资源中文在线观看免费版| 精品在线欧美视频| 日韩av成人| 亚洲日本中文字幕| 国产高清在线| 色噜噜狠狠狠综合曰曰曰| 免费在线观看av| 久热99视频在线观看| 亚洲精品一线| 欧美精品18videos性欧美| 国产精品电影| 国产精品高清网站| 欧美一级做一级爱a做片性| 成人网在线免费看| 99re91这里只有精品| 久久99精品久久久久久三级 | 日本a级c片免费看三区| 91久久香蕉国产日韩欧美9色| 亚洲大尺度在线观看| 欧美日韩久久久一区| 国产美女三级无套内谢| 精品黑人一区二区三区久久| 深夜福利免费在线观看| 在线观看日韩欧美| av网站在线看| 98精品在线视频| 成人mm视频在线观看| 亚洲一区国产精品| 免费福利视频一区| 亚洲不卡中文字幕| 99久久综合| 国产www免费| 日本中文一区二区三区| 黄色片子免费看| 91啪亚洲精品| 国产三级精品三级观看| 亚洲国产欧美在线| 五月婷婷六月婷婷| 91精品国产黑色紧身裤美女| 性xxxxbbbb| 日韩中文字幕网| 绿色成人影院| 91九色单男在线观看| 日韩av中文字幕一区| 亚洲免费不卡| 亚洲少妇一区| 欧美又黄又嫩大片a级| 97精品久久久久中文字幕| 国产又色又爽又高潮免费| 亚洲第一在线综合网站| 国产精品无码一区| 亚洲成人精品av| 日本天堂在线观看| 欧美在线视频观看| 日韩三级网址| 亚洲精品白虎| 国产精品视频| 美女被爆操网站| 欧美国产欧美综合| 狠狠躁夜夜躁人人爽天天高潮| 欧美肥妇毛茸茸| 成人高清免费观看mv| 777精品视频| xxxx日韩| 18视频在线观看娇喘| 日本亚洲天堂网| 喷水视频在线观看| 伊人色综合久久天天| 这里只有精品9| 亚洲欧美日韩精品久久奇米色影视| 亚洲男同gay网站| 91久久在线观看| 日韩精品一区二区久久| 欧洲av无码放荡人妇网站| 成人午夜av在线| 久草视频中文在线| 欧美一区二区免费观在线| 国产福利在线| 国产99久久精品一区二区 夜夜躁日日躁| 99re8这里有精品热视频免费| 91嫩草国产丨精品入口麻豆| 蜜臀a∨国产成人精品| 一级片手机在线观看| 精品露脸国产偷人在视频| 亚洲精品久久久久久无码色欲四季 | 欧美三级在线看| 东热在线免费视频| 日韩免费av片在线观看| 欧美精品中文字幕亚洲专区| 农民人伦一区二区三区| 国产成人鲁色资源国产91色综| 精品欧美一区二区久久久久 | 日本中文字幕在线不卡| 国产精品国产三级国产aⅴ中文 | 久久久无码一区二区三区| 69成人精品免费视频| 黄色成人影院| 亚洲一区二区三| 欧美日韩网站| 国产a级黄色片| 色综合天天综合色综合av | 中文字幕欧美国产| 在线观看免费中文字幕| 中文字幕日韩欧美精品在线观看| 成人国产网站| 中文字幕在线中文字幕日亚韩一区 | 亚洲情趣在线观看| 国产高清视频免费观看| 欧美激情久久久久| 加勒比色老久久爱综合网| www.爱色av.com| 国产亚洲一区二区在线观看| 中文字幕一区2区3区| 久久精品视频免费播放| 日韩欧美中文字幕一区二区三区| 妺妺窝人体色777777| 97精品电影院| 伊人成年综合网| 久久天天躁狠狠躁夜夜躁| 91麻豆精品国产91久久久久推荐资源| 97中文字幕在线| 久久久综合精品| 91麻豆视频在线观看| 欧美激情精品久久久久久蜜臀| 欧美精品中文字幕亚洲专区| 免费看黄色一级大片| 最新中文字幕一区二区三区| 亚洲第一天堂影院| 日本欧美一二三区| 91日韩免费| 国产日韩视频一区| 在线国产亚洲欧美| av电影免费在线观看| 国产在线精品一区二区三区》| 肉色丝袜一区二区| 天天干中文字幕| 亚洲女人被黑人巨大进入al| 日韩一区中文| 欧美色图色综合| 亚洲欧洲99久久| 污视频软件在线观看| 国产在线一区二区三区| 亚洲精品美女| 国产3级在线观看| 日韩av影院在线观看| 日韩有码欧美| 中文字幕无码不卡免费视频| 亚洲免费观看高清完整版在线观看| 日本五码在线| 国产精品国产精品国产专区不卡| 日韩国产欧美在线观看|