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

數據庫 | 分布式事務的實現原理詳解

運維 數據庫運維 分布式
事務是數據庫系統中非常有趣也非常重要的概念,它是數據庫管理系統執行過程中的一個邏輯單元,它能夠保證一個事務中的所有操作要么全部執行,要么全不執行;在 SOA 與微服務架構大行其道的今天,在分布式的多個服務中保證業務的一致性就需要我們實現分布式事務。

事務是數據庫系統中非常有趣也非常重要的概念,它是數據庫管理系統執行過程中的一個邏輯單元,它能夠保證一個事務中的所有操作要么全部執行,要么全不執行;在 SOA 與微服務架構大行其道的今天,在分布式的多個服務中保證業務的一致性就需要我們實現分布式事務。

[[274102]]

在這篇文章中,我們將介紹 事務的實現原理、分布式事務的理論基礎以及實現原理。

事務

在文章的開頭,我們已經說過事務是數據庫管理系統執行過程中的一個邏輯單位,它能保證一組數據庫操作要么全部執行,要么全不執行,我們能夠通過事務將數據庫從一個狀態遷移到另一個狀態,在每一個狀態中,數據庫中的數據都保持一致性。 

 

分布式事務的實現原理詳解

 

database-and-transaction

數據庫事務擁有四個特性,原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation)和持久性(Durability):

分布式事務的實現原理詳解

transaction-basics

我們經常將這上述的四大特性簡寫為 ACID,而數據庫事務的實現原理其實也就是實現這四大特性的原理。

實現原理

在之前的文章 『淺入深出』MySQL 中事務的實現 中其實已經對如何實現事務的 ACID 這幾個基本屬性給出了比較詳細的介紹和分析,在這里就簡單介紹幾個比較重要的實現細節,關于展開的內容,可以閱讀上述文章。

事務日志

為了實現確保事務能在執行的任意過程中回滾(原子性)并且提交的事務會永久保存在數據庫中,我們會使用事務日志來存儲事務執行過程中的數據庫的變動,每一條事務日志中都包含事務的 ID、當前被修改的元素、變動前以及變動后的值。

分布式事務的實現原理詳解

Transaction-Log

當我們有以上的事務日志之后,一旦需要對事務進行回滾就非常容易了,數據庫會根據上述日志生成一個相反的操作恢復事務發生之前的狀態;事務日志除了能夠對事務進行回滾保證原子性之外,還能夠實現持久性,當一個事務常食對數據庫進行修改時,它其實會先生成一條日志并刷新到磁盤上,寫日志的操作由于是追加的所以非常快,在這之后才會向數據庫中寫入或者更新對應的記錄。

在 MySQL 最常見的存儲引擎 InnoDB 中,事務日志其實有兩種,一種是回滾日志(undo log),另一種是重做日志(redo log),其中前者保證事務的原子性,后者保證事務的持久性,兩者可以統稱為事務日志。

并發控制

數據庫作為最關鍵的后端服務,很難想象只能串行執行每一個數據庫操作帶來的性能影響,然而在并發執行 SQL 的過程中就可能無法保證數據庫對于隔離性的要求,歸根結底這就是一致性、隔離性與性能之間的權衡。

分布式事務的實現原理詳解

tradeoff-and-concurrency

為了避免并發帶來的一致性問題、滿足數據庫對于隔離性要求,數據庫系統往往都會使用并發控制機制盡可能地充分利用機器的效率,常見的幾種并發控制機制就是鎖、時間戳和 MVCC:

分布式事務的實現原理詳解

concurrency-contro

作為悲觀并發控制機制,鎖使用在更新資源之前對資源進行鎖定的方式保證多個數據庫的會話同時修改某一行記錄時不會出現脫離預期的行為,而時間戳這種方式在每次提交時對資源是否被改變進行檢查。

分布式事務

從廣義上來看,分布式事務其實也是事務,只是由于業務上的定義以及微服務架構設計的問題,所以需要在多個服務之間保證業務的事務性,也就是 ACID 四個特性;從單機的數據庫事務變成分布式事務時,原有單機中相對可靠的方法調用以及進程間通信方式已經沒有辦法使用,同時由于網絡通信經常是不穩定的,所以服務之間信息的傳遞會出現障礙。

分布式事務的實現原理詳解

tx-and-distributed-tx

模塊(或服務)之間通信方式的改變是造成分布式事務復雜的最主要原因,在同一個事務之間的執行多段代碼會因為網絡的不穩定造成各種奇怪的問題,當我們通過網絡請求其他服務的接口時,往往會得到三種結果:正確、失敗和超時,無論是成功還是失敗,我們都能得到唯一確定的結果,超時代表請求的發起者不能確定接受者是否成功處理了請求,這也是造成諸多問題的誘因。

分布式事務的實現原理詳解

communication-reliability-and-transaciton

系統之間的通信可靠性從單一系統中的可靠變成了微服務架構之間的不可靠,分布式事務其實就是在不可靠的通信下實現事務的特性。無論是事務還是分布式事務實現原子性都無法避免對持久存儲的依賴,事務使用磁盤上的日志記錄執行的過程以及上下文,這樣無論是需要回滾還是補償都可以通過日志追溯,而分布式事務也會依賴數據庫、Zookeeper 或者 ETCD 等服務追蹤事務的執行過程,總而言之,各種形式的日志是保證事務幾大特性的重要手段。

2PC 與 3PC

兩階段提交是一種使分布式系統中所有節點在進行事務提交時保持一致性而設計的一種協議;在一個分布式系統中,所有的節點雖然都可以知道自己執行操作后的狀態,但是無法知道其他節點執行操作的狀態,在一個事務跨越多個系統時,就需要引入一個作為協調者的組件來統一掌控全部的節點并指示這些節點是否把操作結果進行真正的提交,想要在分布式系統中實現一致性的其他協議都是在兩階段提交的基礎上做的改進。

分布式事務的實現原理詳解

two-phase-commit

兩階段提交的執行過程就跟它的名字一樣分為兩個階段,投票階段和提交階段,在投票階段中,協調者(Coordinator)會向事務的參與者(Cohort)詢問是否可以執行操作的請求,并等待其他參與者的響應,參與者會執行相對應的事務操作并記錄重做和回滾日志,所有執行成功的參與者會向協調者發送 AGREEMENT 或者 ABORT 表示執行操作的結果。

分布式事務的實現原理詳解

two-phase-commit-voting-phase

當所有的參與者都返回了確定的結果(同意或者終止)時,兩階段提交就進入了提交階段,協調者會根據投票階段的返回情況向所有的參與者發送提交或者回滾的指令。

分布式事務的實現原理詳解

two-phase-commit-commit-phase

當事務的所有參與者都決定提交事務時,協調者會向參與者發送 COMMIT 請求,參與者在完成操作并釋放資源之后向協調者返回完成消息,協調者在收到所有參與者的完成消息時會結束整個事務;與之相反,當有參與者決定 ABORT 當前事務時,協調者會向事務的參與者發送回滾請求,參與者會根據之前執行操作時的回滾日志對操作進行回滾并向協調者發送完成的消息,在提交階段,無論當前事務被提交還是回滾,所有的資源都會被釋放并且事務也一定會結束。

兩階段提交協議是一個阻塞協議,也就是說在兩階段提交的執行過程中,除此之外,如果事務的執行過程中協調者永久宕機,事務的一部分參與者將永遠無法完成事務,它們會等待協調者發送 COMMIT 或者 ROLLBACK 消息,甚至會出現多個參與者狀態不一致的問題。

分布式事務的實現原理詳解

two-phase-commit-problems

3PC

為了解決兩階段提交在協議的一些問題,三階段提交引入了超時機制和準備階段,如果協調者或者參與者在規定的之間內沒有接受到來自其他節點的響應,就會根據當前的狀態選擇提交或者終止整個事務,準備階段的引入其實讓事務的參與者有了除回滾之外的其他選擇。

分布式事務的實現原理詳解

Three-phase_commit_diagra

當參與者向協調者發送 ACK 后,如果長時間沒有得到協調者的響應,在默認情況下,參與者會自動將超時的事務進行提交,不會像兩階段提交中被阻塞住;上述的圖片非常清楚地說明了在不同階段,協調者或者參與者的超時會造成什么樣的行為。

XA 事務

MySQL 的 InnoDB 引擎其實能夠支持分布式事務,也就是我們經常說的 XA 事務;XA 事務就是用了我們在上一節中提到的兩階段提交協議實現分布式事務,其中事務管理器為協調者,而資源管理器就是分布式事務的參與者。

分布式事務的實現原理詳解

two-phase-commit-and-xa-transaction

到這里,其實我們已經能夠清晰地知道 MySQL 中的 XA 事務是如何實現的:

  • 資源管理器提供了訪問事務資源的能力,數據庫就是一種常見的資源管理器,它能夠提交或者回滾其管理的事務;
  • 事務管理器協調整個分布式事務的各個部分,它與多個資源管理器通信,分別處理他們管理的事務,這些事務都是整體事務的一個分支。
分布式事務的實現原理詳解

distributed-transaction-and-transactions

正如兩階段提交協議中定義的,MySQL 提供的 XA 接口可以非常方便地實現協議中的投票和提交階段,我們可以通過一下的流程圖簡單理解一下 MySQL XA 的接口是如何使用的:

分布式事務的實現原理詳解

mysql-xa-transaction-states

XA 確實能夠保證較強的一致性,但是在 MySQL XA 的執行過程中會對相應的資源加鎖,阻塞其他事務對該資源的訪問,如果事務長時間沒有 COMMIT 或者 ROLLBACK,其實會對數據庫造成比較嚴重的影響。

Saga

兩階段提交其實可以保證事務的強一致性,但是在很多業務場景下,我們其實只需要保證業務的最終一致性,在一定的時間窗口內,多個系統中的數據不一致是可以接受的,在過了時間窗口之后,所有系統都會返回一致的結果。

Saga 其實就一種簡化的分布式事務解決方案,它將一系列的分布式操作轉化成了一系列的本地事務,在每一個本地事務中我們都會更新數據庫并且向集群中的其他服務發送一條的新的消息來觸發下一個本地的事務;一旦本地的事務因為違反了業務邏輯而失敗,那么就會立刻觸發一系列的回滾操作來撤回之前本地事務造成的副作用。

LLT

相比于本地的數據庫事務來說,長事務(Long Lived Transaction)會對一些數據庫資源持有相對較長的一段時間,這會嚴重地影響其他正常數據庫事務的執行,為了解決這一問題,Hector Garcia-Molina 和 Kenneth Salem 在 1987 發布了論文 Sagas 用于解決這一問題。

如果一個 LLT 能夠被改寫成一系列的相互交錯重疊的多個數據庫事務,那么這個 LLT 就是一個 Saga;數據庫系統能夠保證 Saga 中一系列的事務要么全部成功執行、要么它們的補償事務能夠回滾全部的副作用,保證整個分布式事務的最終一致性。Saga 的概念和它的實現都是非常簡單的,但是它卻能夠有很大的潛力增加整個系統的處理能力。

分布式事務的實現原理詳解

long-lived-transaction-and-transactions

事務越長并且越復雜,那么這個事務由于異常而被回滾以及死鎖的可能性就會逐漸增加,Saga 會將一個 LLT 分解成多個短事務,能夠非常明顯地降低事務被回滾的風險。

協同與編排

當我們使用 Saga 模式開發分布式事務時,有兩種協調不同服務的方式,一種是協同(Choreography),另一種是編排(Orchestration):

分布式事務的實現原理詳解

saga-pattern

如果對于一個分布式事務,我們采用協同的方式進行開發,每一個本地的事務都會觸發一個其他服務中的本地事務的執行,也就是說事務的執行過程是一個流的形式進行的:

分布式事務的實現原理詳解

saga-pattern-choreography

當我們選擇使用協同的方式處理事務時,服務之間的通信其實就是通過事件進行的,每一個本的事務最終都會向服務的下游發送一個新的事件,既可以是消息隊列中的消息,也可以是 RPC 的請求,只是下游提供的接口需要保證冪等和重入。

除此之外,通過協同方式創建的分布式事務其實并沒有明顯的中心化節點,多個服務參與者之間的交互協議要從全局來定義,每個服務能夠處理以及發送的事件和接口都需要進行比較嚴謹的設計,盡可能提供抽象程度高的事件或者接口,這樣各個服務才能實現自治并重用已有的代碼和邏輯。

如果我們不想使用協同的方式對分布式事務進行處理,那么也可以選擇編排的方式實現分布式事務,編排的方式引入了中心化的協調器節點,我們通過一個 Saga 對象來追蹤所有的子任務的調用情況,根據任務的調用情況決定是否需要調用對應的補償方案,并在網絡請求出現超時時進行重試:

分布式事務的實現原理詳解

saga-pattern-orchestration

在這里我們就引入了一個中心化的『協調器』,它會保存當前分布式事務進行到底的狀態,并根據情況對事務進行回滾或者提交操作,在服務編排的過程中,我們是從協調者本身觸發考慮整個事務的執行過程的,相對于協同的方式,編排實現的過程相對來說更為簡單。

協同與編排其實是兩種思路截然相反的模式,前者強調各個服務的自治與去中心化,后者需要一個中心化的組件對事務執行的過程進行統一的管理,兩者的優缺點其實就是中心化與去中心化的優缺點,中心化的方案往往都會造就一個『上帝服務』,其中包含了非常多組織與集成其他節點的工作,也會有單點故障的問題,而去中心化的方案就會帶來管理以及調試上的不便,當我們需要追蹤一個業務的執行過程時就需要跨越多個服務進行,增加了維護的成本。

下游約束

當我們選擇使用 Saga 對分布式事務進行開發時,會對分布式事務的參與者有一定的約束,每一個事務的參與者都需要保證:

提供接口和補償副作用的接口;

接口支持重入并通過全局唯一的 ID 保證冪等;

這樣我們就能夠保證一個長事務能夠在網絡通信發生超時時進行重試,同時在需要對事務進行回滾時調用回滾接口達到我們的目的。

小結

Saga 這種模式其實完全放棄了同時滿足事務四大基本特性 ACID 的想法,而是選擇降低實現分布式事務的難度并減少資源同步以及鎖定帶來的問題,選擇實現 BASE(Basic Availability, Soft, Eventual consistency) 事務,達到業務上的基本可用以及最終一致性,在絕大多數的業務場景中,實現最終一致性就能夠基本滿足業務的全部需求,極端場景下還是應該選擇兩階段提交或者干脆放棄分布式事務這種易錯的實現方式,轉而使用單機中的數據庫事務來解決。

消息服務

分布式事務帶來復雜度的原因其實就是由于各個模塊之間的通信不穩定,當我們發出一個網絡請求時,可能的返回結果是成功、失敗或者超時。

分布式事務的實現原理詳解

network-communication

網絡無論是返回成功還是失敗其實都是一個確定的結果,當網絡請求超時的時候其實非常不好處理,在這時調用方并不能確定這一次請求是否送達而且不會知道請求的結果,但是消息服務可以保證某條信息一定會送達到調用方;大多數消息服務都會提供兩種不同的 QoS,也就是服務的等級。 

分布式事務的實現原理詳解

message-delivery-qos

最常見的兩種服務等級就是 At-Most-Once 和 At-Least-Once,前者能夠保證發送方不對接收方是否能收到消息作保證,消息要么會被投遞一次,要么不會被投遞,這其實跟一次普通的網絡請求沒有太多的區別;At-Least-Once 能夠解決消息投遞失敗的問題,它要求發送者檢查投遞的結果,并在失敗或者超時時重新對消息進行投遞,發送者會持續對消息進行推送,直到接受者確認消息已經被收到,相比于 At-Most-Once,At-Least-Once 因為能夠確保消息的投遞會被更多人使用。

除了這兩種常見的服務等級之外,還有另一種服務等級,也就是 Exactly-Once,這種服務等級不僅對發送者提出了要求,還對消費者提出了要求,它需要接受者對接收到的所有消息進行去重,發送者和接受者一方對消息進行重試,另一方對消息進行去重,兩者分別部署在不同的節點上,這樣對于各個節點上的服務來說,它們之間的通信就是 Exactly-Once 的,但是需要注意的是,Exacly-Once 一定需要接收方的參與。

我們可以通過實現 AMQP 協議的消息隊列來實現分布式事務,在協議的標準中定義了 tx_select、tx_commit 和 tx_rollback 三個事務相關的接口,其中 tx_select能夠開啟事務,tx_commit 和 tx_rollback 分別能夠提交或者回滾事務。

使用消息服務實現分布式事務在底層的原理上與其他的方法沒有太多的差別,只是消息服務能夠幫助我們實現的消息的持久化以及重試等功能,能夠為我們提供一個比較合理的 API 接口,方便開發者使用。

總結

分布式事務的實現方式是分布式系統中非常重要的一個問題,在微服務架構和 SOA 大行其道的今天,掌握分布式事務的原理和使用方式已經是作為后端開發者理所應當掌握的技能,從實現 ACID 事務的 2PC 與 3PC 到實現 BASE 補償式事務的 Saga,再到最后通過事務消息的方式異步地保證消息最終一定會被消費成功,我們為了增加系統的吞吐量以及可用性逐漸降低了系統對一致性的要求。

在業務沒有對一致性有那么強的需求時,作者一般會使用 Saga 協議對分布式事務進行設計和開發,而在實際工作中,需要強一致性事務的業務場景幾乎沒有,我們都可以實現最終一致性,在發生腦裂或者不一致問題時通過補償的方式進行解決,這就能解決幾乎全部的問題。

Reference

Database transaction · Wikipedia

『淺入深出』MySQL 中事務的實現

MySQL · 特性分析 · 淺談 MySQL 5.7 XA 事務改進

XA Transactions

Two-phase commit protocol

Pattern: Saga

Sagas

RocketMQ 4.3正式發布,支持分布式事務

Akka Message Delivery - At-Most-Once, At-Least-Once, and Exactly-Once

Part 1 At-Most-Once

Part 2 At-Least-Once

Part 3 Exactly-Once

Message Delivery Reliability

 

責任編輯:武曉燕 來源: 今日頭條
相關推薦

2022-07-10 20:24:48

Seata分布式事務

2025-01-15 08:34:00

分布式事務服務

2019-10-10 09:16:34

Zookeeper架構分布式

2015-06-16 10:39:43

NoSQL分布式算法

2023-08-27 16:11:35

數據庫分布式事務數據庫

2022-06-21 08:27:22

Seata分布式事務

2022-06-27 08:21:05

Seata分布式事務微服務

2019-06-10 14:31:24

MySQL存儲數據庫

2022-08-01 18:33:45

關系型數據庫大數據

2012-09-29 13:18:23

分布式數據庫Google Span

2024-11-28 15:11:28

2020-04-14 11:14:02

PostgreSQL分布式數據庫

2014-06-30 14:20:05

NoSQL數據庫

2024-01-26 13:17:00

rollbackMQ訂單系統

2012-09-20 09:58:11

分布式分布式數據庫數據庫

2021-11-08 10:52:02

數據庫分布式技術

2018-05-25 13:12:10

UCloud數據庫UDDB

2019-10-27 23:10:33

Oracle數據庫分布式事務

2024-12-11 12:41:33

2021-02-28 07:49:28

Zookeeper分布式
點贊
收藏

51CTO技術棧公眾號

人妖精品videosex性欧美| 欧美人体做爰大胆视频| 久久国产精品亚洲va麻豆| 国产又黄又爽又色| 日韩在线理论| 亚洲成年人在线播放| 男人靠女人免费视频网站| 在线观看免费版| 成人永久免费视频| 国产精品看片资源| 久久久香蕉视频| 国产欧美日韩| 精品国产乱码久久久久久1区2区 | 精品无码人妻少妇久久久久久| 性欧美freesex顶级少妇| 国产精品国产三级国产三级人妇 | 午夜激情久久| 精品无码久久久久久国产| 青青草原播放器| 草莓视频成人appios| 亚洲国产日韩一级| 日本三日本三级少妇三级66| 国产毛片在线| 91蜜桃网址入口| www.久久久| 国产精品一二三四五区| 日本亚洲天堂网| 欧美一区二区色| 国产精品a成v人在线播放| 小说区亚洲自拍另类图片专区| 亚洲精品视频免费在线观看| av免费观看不卡| 日韩成人在线看| 欧美日韩免费不卡视频一区二区三区| 国产l精品国产亚洲区久久| 欧美性受ⅹ╳╳╳黑人a性爽| 国产精品久久久久久一区二区三区| 国产一区二区三区高清| 超碰在线播放97| 国产主播一区二区| 91精品久久久久久久久久久| wwwwww在线观看| 亚洲欧美日韩国产综合精品二区| 国内免费精品永久在线视频| 毛片a片免费观看| 亚洲精品二区三区| 欧美成人合集magnet| 色欲一区二区三区精品a片| 色综合久久网| 日韩在线视频线视频免费网站| 国产高清一区二区三区四区| 精品欧美久久| 一区二区三区视频在线| 久久久免费看片| 欧美电影《睫毛膏》| 中文字幕欧美精品在线 | 亚洲精品日韩一| 免费成人进口网站| 日本性爱视频在线观看| 一区二区三区欧美日| 99久久99久久精品| 麻豆av在线免费观看| 亚洲午夜在线视频| 欧美又粗又长又爽做受| av伦理在线| 欧美日韩国产影院| 亚洲五月天综合| 日韩美香港a一级毛片| 91麻豆精品91久久久久同性| 久久发布国产伦子伦精品| jizz性欧美2| 亚洲精品综合久久中文字幕| 中文字幕 自拍| 欧美顶级大胆免费视频| 九九久久精品一区| 国产精品一区二区6| 久久99伊人| 国产精品欧美激情在线播放| 国产内射老熟女aaaa∵| 成人av网址在线观看| 蜜桃av噜噜一区二区三| 97人人在线| 一区二区三区在线观看网站| 久久成人免费观看| 福利一区二区免费视频| 日韩欧美另类在线| 五月婷婷综合在线观看| 波多野结衣在线播放一区| 欧美成人激情视频| 精品美女久久久久| 麻豆国产一区二区| 国产专区一区二区| 免费观看久久久久| 天天爽夜夜爽夜夜爽精品视频| 精品久久久久久久免费人妻| 国产色99精品9i| 亚洲精品丝袜日韩| 波多野结衣家庭教师| 快she精品国产999| 亚洲最大的免费| 男同在线观看| 亚洲一区欧美一区| 99re精彩视频| 欧美偷窥清纯综合图区| 久久成人免费视频| 日本中文字幕久久| 国产v综合v亚洲欧| 永久域名在线精品| 91精品论坛| 精品欧美久久久| 日韩精品久久久久久久的张开腿让| 亚洲大胆视频| 亚洲a级在线播放观看| 高清在线观看av| 精品免费在线视频| 师生出轨h灌满了1v1| 国产精品毛片久久| 国产精品久久久91| 日中文字幕在线| 亚洲国产成人高清精品| 欧美成人手机在线视频| 欧美日韩伦理| 日韩男女性生活视频| 丰满少妇高潮在线观看| 综合在线观看色| 亚洲成人福利在线| 国产一区日韩| 国产成人一区三区| 麻豆av电影在线观看| 香蕉影视欧美成人| jjzzjjzz欧美69巨大| 一区二区三区在线电影| 国产三级精品网站| 香蕉视频国产在线观看| 欧美亚洲国产一区二区三区va| 亚洲av无码一区二区三区观看| 国内精品久久久久久久影视蜜臀| 亚洲精品欧美日韩| 国产激情小视频在线| 91麻豆精品91久久久久久清纯| 中文字幕伦理片| 视频一区视频二区中文| 欧美黑人xxxxx| 高清不卡亚洲| 夜夜嗨av一区二区三区四区| www.亚洲激情| 国产精品美女www爽爽爽| 91精品无人成人www| 日韩1区2区| 国产日韩专区在线| 超碰在线最新| 欧美刺激午夜性久久久久久久| 免费在线一区二区三区| 国产成人8x视频一区二区| 免费高清一区二区三区| 精品国产影院| 欧美综合国产精品久久丁香| 毛片免费在线| 欧美三级日韩三级| 久久久久麻豆v国产| 激情小说亚洲一区| 国产一二三区在线播放| 日韩美女国产精品| 国产91在线播放| 日p在线观看| 欧美一级日韩不卡播放免费| 久久久精品国产sm调教| av电影在线观看完整版一区二区| 亚洲 高清 成人 动漫| 国模吧精品视频| 91亚洲精品在线| 国产偷倩在线播放| 亚洲人高潮女人毛茸茸| 一级特黄aaa| 亚洲二区在线观看| 久久久视频6r| 国产乱子伦一区二区三区国色天香| a天堂资源在线观看| 精品素人av| 国产欧美精品一区二区三区-老狼| 成人影院www在线观看| 日韩av在线免费看| 亚洲天堂中文网| 亚洲一二三四在线| 调教驯服丰满美艳麻麻在线视频| 国产成人在线视频播放| 黄色免费观看视频网站| 99久久激情| 蜜桃传媒视频麻豆第一区免费观看| 久久精品国产福利| 欧美精品福利在线| 超碰97在线免费观看| 日韩精品专区在线影院观看| 91久久国产综合久久91| 亚洲卡通动漫在线| 韩国三级hd中文字幕| 国产成人av一区二区| 天天操天天爱天天爽| 妖精视频成人观看www| 在线播放 亚洲| 制服丝袜日韩| 国产另类第一区| 祥仔av免费一区二区三区四区| 国内偷自视频区视频综合| 美女国产在线| 亚洲图片制服诱惑| 国精产品一品二品国精品69xx| 欧美性猛片aaaaaaa做受| 国产午夜激情视频| 亚洲日本在线视频观看| brazzers精品成人一区| 国产91在线|亚洲| 99久久99精品| 日本不卡视频一二三区| 丰满爆乳一区二区三区| 精品99视频| 日本a级片在线观看| 日韩精品网站| 久久亚洲一区二区| www.神马久久| 999热视频在线观看| 成人日韩av| 国产精品国产亚洲伊人久久| 免费h视频在线观看| 欧美国产欧美亚洲国产日韩mv天天看完整 | 黄色软件视频在线观看| 欧美国产日产韩国视频| 综合久久2o19| 久久精品视频在线播放| 亚洲成a人v欧美综合天堂麻豆| 亚洲一品av免费观看| 日韩亚洲视频在线观看| 亚洲精品视频二区| 外国精品视频在线观看| 欧美一区二区在线播放| 91麻豆一区二区| 欧美日韩美女一区二区| 亚洲字幕av一区二区三区四区| 欧美性猛片xxxx免费看久爱| 波多野结衣在线电影| 色综合久久久久综合体| 亚洲天堂av片| 在线免费观看日本一区| 精品黑人一区二区三区| 欧美伊人久久大香线蕉综合69| 黄色污污视频软件| 色老头久久综合| 日本三级一区二区三区| 精品视频免费在线| 一本一道精品欧美中文字幕| 欧美日韩国产一级二级| 国产婷婷在线视频| 日韩一级二级三级精品视频| www.youjizz.com在线| 91麻豆免费看| 精品国产av色一区二区深夜久久| 国产91在线看| 日韩av无码一区二区三区不卡| 成人动漫中文字幕| 国产在线观看无码免费视频| 久久久久久夜精品精品免费| xxxx日本黄色| 中文字幕一区二区三区不卡 | 久久亚洲二区三区| 中文字幕天天干| 国产在线视频精品一区| 三级网站免费看| 成年人国产精品| 午夜理伦三级做爰电影| 国产精品无圣光一区二区| 三级黄色片在线观看| 一区二区三区四区激情| 青青草成人av| 欧美影视一区二区三区| 99热这里只有精| 亚洲国产欧美自拍| 国模精品一区二区| 久久这里只有精品视频首页| 99久久精品免费看国产小宝寻花| 欧美性受xxxx黑人猛交| 欧美性生活一级| 国产精品久久精品视| 视频一区中文| 国产高清免费在线| 亚洲三级电影在线观看| 国产真人无码作爱视频免费| 国产福利精品一区二区| 玖玖爱在线观看| 亚洲精品乱码久久久久久久久| 中日韩精品视频在线观看| 欧美丝袜自拍制服另类| 免费看av毛片| 中文字幕精品一区久久久久| yellow在线观看网址| 国产在线视频91| 丝袜久久网站| 福利在线小视频| 日韩电影免费一区| 亚洲精品无码一区二区| 国产精品私人自拍| 自拍偷拍欧美亚洲| 91精品在线免费| 激情小说 在线视频| 欧美黑人性视频| 欧美大陆国产| 蜜桃999成人看片在线观看| 亚洲精品2区| 最新天堂中文在线| 91免费看`日韩一区二区| 欧美成人免费观看视频 | 亚洲一区二区三区高清视频| 亚洲福利小视频| 黄色视屏免费在线观看| 国产精品美乳在线观看| 亚洲最好看的视频| 成人免费视频91| 国产成人日日夜夜| 中文字幕91视频| 在线观看亚洲成人| 天堂中文在线8| 欧美激情欧美激情| 国产精品毛片无码| 亚洲精品久久久久久一区二区| 午夜在线播放视频欧美| 国产精品无码电影| 亚洲综合999| 国产高清视频免费| 久久久精品久久久久| 精品69视频一区二区三区| 日本一区高清在线视频| 性高湖久久久久久久久| 800av在线播放| 一区二区理论电影在线观看| 国产理论视频在线观看| 久久精品国产一区二区三区| 成人av色网站| 在线看视频不卡| 老司机免费视频一区二区三区| 欧美一区二区三区粗大| 在线亚洲一区二区| 电影在线一区| 国产精品九九久久久久久久| 激情五月综合| 久久精品免费网站| 国产日韩精品一区二区浪潮av| jizz国产在线观看| 亚洲人成在线一二| 精品日韩视频| 亚州欧美一区三区三区在线| 麻豆一区二区三区| 视频国产一区二区| 91精品国产91久久久久久最新毛片| 黄色在线免费网站| 97操在线视频| 色视频在线免费观看| 91精品福利在线| 水莓100国产免费av在线播放| 性欧美长视频免费观看不卡| 噜噜噜天天躁狠狠躁夜夜精品| 三上悠亚久久精品| 麻豆传媒在线观看| 国产视频观看一区| 亚洲午夜精品一区二区国产| 中文字幕55页| 亚洲国产精品天堂| 天堂av在线播放| 国产精品成人aaaaa网站| 日韩电影免费网站| 国产男女无遮挡猛进猛出| 亚洲综合色噜噜狠狠| 午夜福利理论片在线观看| 日本欧美一二三区| 国产精品久久观看| 蜜臀av粉嫩av懂色av| 久久久女人电视剧免费播放下载| 国产v日韩v欧美v| 欧美日韩精品久久| 美美哒免费高清在线观看视频一区二区 | 天堂va久久久噜噜噜久久va| 国产美女视频91| 国产福利拍拍拍| www.日韩av.com| 久久视频在线观看| 69久久久久久| 神马午夜久久| 99精品免费在线观看| 国产精品欧美综合在线| 精品人妻一区二区三区日产乱码| 欧洲精品在线视频| 亚洲女同一区| 免费污网站在线观看| 欧美日韩久久一区| 国产精品yjizz视频网| 一区二区日本伦理| 99久久精品国产导航| 一级淫片免费看| 欧美亚洲在线视频| 中文字幕亚洲精品乱码| 88久久精品无码一区二区毛片| 日韩无一区二区|