国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频

面試官:聊聊分布式事務(wù),再說說解決方案!

共 8083字,需瀏覽 17分鐘

 ·

2021-08-24 22:01

前言

開始我們今天的話題,說說分布式事務(wù),或者說是我眼中的分布式事務(wù),因?yàn)槊總€人可能對其的理解都不一樣。

分布式事務(wù)是企業(yè)集成中的一個技術(shù)難點(diǎn),也是每一個分布式系統(tǒng)架構(gòu)中都會涉及到的一個東西,特別是在微服務(wù)架構(gòu)中,幾乎可以說是無法避免,本文就分布式事務(wù)來簡單聊一下。

數(shù)據(jù)庫事務(wù)

在說分布式事務(wù)之前,我們先從數(shù)據(jù)庫事務(wù)說起。數(shù)據(jù)庫事務(wù)可能大家都很熟悉,在開發(fā)過程中也會經(jīng)常使用到。但是即使如此,可能對于一些細(xì)節(jié)問題,很多人仍然不清楚。比如很多人都知道數(shù)據(jù)庫事務(wù)的幾個特性:原子性(Atomicity )、一致性( Consistency )、隔離性或獨(dú)立性( Isolation)和持久性(Durabilily),簡稱就是ACID。但是再往下比如問到隔離性指的是什么的時候可能就不知道了,或者是知道隔離性是什么但是再問到數(shù)據(jù)庫實(shí)現(xiàn)隔離的都有哪些級別,或者是每個級別他們有什么區(qū)別的時候可能就不知道了。

本文并不打算介紹這些數(shù)據(jù)庫事務(wù)的這些東西,有興趣可以搜索一下相關(guān)資料。不過有一個知識點(diǎn)我們需要了解,就是假如數(shù)據(jù)庫在提交事務(wù)的時候突然斷電,那么它是怎么樣恢復(fù)的呢?為什么要提到這個知識點(diǎn)呢?因?yàn)榉植际较到y(tǒng)的核心就是處理各種異常情況,這也是分布式系統(tǒng)復(fù)雜的地方,因?yàn)榉植际降木W(wǎng)絡(luò)環(huán)境很復(fù)雜,這種“斷電”故障要比單機(jī)多很多,所以我們在做分布式系統(tǒng)的時候,最先考慮的就是這種情況。這些異常可能有 機(jī)器宕機(jī)、網(wǎng)絡(luò)異常、消息丟失、消息亂序、數(shù)據(jù)錯誤、不可靠的TCP、存儲數(shù)據(jù)丟失、其他異常等等...

我們接著說本地事務(wù)數(shù)據(jù)庫斷電的這種情況,它是怎么保證數(shù)據(jù)一致性的呢?我們使用SQL Server來舉例,我們知道我們在使用 SQL Server 數(shù)據(jù)庫是由兩個文件組成的,一個數(shù)據(jù)庫文件和一個日志文件,通常情況下,日志文件都要比數(shù)據(jù)庫文件大很多。

數(shù)據(jù)庫進(jìn)行任何寫入操作的時候都是要先寫日志的,同樣的道理,我們在執(zhí)行事務(wù)的時候數(shù)據(jù)庫首先會記錄下這個事務(wù)的redo操作日志,然后才開始真正操作數(shù)據(jù)庫,在操作之前首先會把日志文件寫入磁盤,那么當(dāng)突然斷電的時候,即使操作沒有完成,在重新啟動數(shù)據(jù)庫時候,數(shù)據(jù)庫會根據(jù)當(dāng)前數(shù)據(jù)的情況進(jìn)行undo回滾或者是redo前滾,這樣就保證了數(shù)據(jù)的強(qiáng)一致性。

接著,我們就說一下分布式事務(wù)。

分布式理論

當(dāng)我們的單個數(shù)據(jù)庫的性能產(chǎn)生瓶頸的時候,我們可能會對數(shù)據(jù)庫進(jìn)行分區(qū),這里所說的分區(qū)指的是物理分區(qū),分區(qū)之后可能不同的庫就處于不同的服務(wù)器上了,這個時候單個數(shù)據(jù)庫的ACID已經(jīng)不能適應(yīng)這種情況了,而在這種ACID的集群環(huán)境下,再想保證集群的ACID幾乎是很難達(dá)到,或者即使能達(dá)到那么效率和性能會大幅下降,最為關(guān)鍵的是再很難擴(kuò)展新的分區(qū)了,這個時候如果再追求集群的ACID會導(dǎo)致我們的系統(tǒng)變得很差,這時我們就需要引入一個新的理論原則來適應(yīng)這種集群的情況,就是 CAP 原則或者叫CAP定理,那么CAP定理指的是什么呢?

CAP定理

CAP定理是由加州大學(xué)伯克利分校Eric Brewer教授提出來的,他指出WEB服務(wù)無法同時滿足一下3個屬性:

  • 一致性(Consistency) :客戶端知道一系列的操作都會同時發(fā)生(生效)
  • 可用性(Availability) :每個操作都必須以可預(yù)期的響應(yīng)結(jié)束
  • 分區(qū)容錯性(Partition tolerance) :即使出現(xiàn)單個組件無法可用,操作依然可以完成

具體地講在分布式系統(tǒng)中,在任何數(shù)據(jù)庫設(shè)計(jì)中,一個Web應(yīng)用至多只能同時支持上面的兩個屬性。顯然,任何橫向擴(kuò)展策略都要依賴于數(shù)據(jù)分區(qū)。因此,設(shè)計(jì)人員必須在一致性與可用性之間做出選擇。

這個定理在迄今為止的分布式系統(tǒng)中都是適用的! 為什么這么說呢?

這個時候有同學(xué)可能會把數(shù)據(jù)庫的2PC(兩階段提交)搬出來說話了。OK,我們就來看一下數(shù)據(jù)庫的兩階段提交。

對數(shù)據(jù)庫分布式事務(wù)有了解的同學(xué)一定知道數(shù)據(jù)庫支持的2PC,又叫做 XA Transactions。

MySQL從5.5版本開始支持,SQL Server 2005 開始支持,Oracle 7 開始支持。

其中,XA 是一個兩階段提交協(xié)議,該協(xié)議分為以下兩個階段:

  • 第一階段:事務(wù)協(xié)調(diào)器要求每個涉及到事務(wù)的數(shù)據(jù)庫預(yù)提交(precommit)此操作,并反映是否可以提交.
  • 第二階段:事務(wù)協(xié)調(diào)器要求每個數(shù)據(jù)庫提交數(shù)據(jù)。

其中,如果有任何一個數(shù)據(jù)庫否決此次提交,那么所有數(shù)據(jù)庫都會被要求回滾它們在此事務(wù)中的那部分信息。這樣做的缺陷是什么呢? 咋看之下我們可以在數(shù)據(jù)庫分區(qū)之間獲得一致性。

如果CAP 定理是對的,那么它一定會影響到可用性。

如果說系統(tǒng)的可用性代表的是執(zhí)行某項(xiàng)操作相關(guān)所有組件的可用性的和。那么在兩階段提交的過程中,可用性就代表了涉及到的每一個數(shù)據(jù)庫中可用性的和。我們假設(shè)兩階段提交的過程中每一個數(shù)據(jù)庫都具有99.9%的可用性,那么如果兩階段提交涉及到兩個數(shù)據(jù)庫,這個結(jié)果就是99.8%。根據(jù)系統(tǒng)可用性計(jì)算公式,假設(shè)每個月43200分鐘,99.9%的可用性就是43157分鐘, 99.8%的可用性就是43114分鐘,相當(dāng)于每個月的宕機(jī)時間增加了43分鐘。

以上,可以驗(yàn)證出來,CAP定理從理論上來講是正確的,CAP我們先看到這里,等會再接著說。

BASE理論

在分布式系統(tǒng)中,我們往往追求的是可用性,它的重要程序比一致性要高,那么如何實(shí)現(xiàn)高可用性呢?前人已經(jīng)給我們提出來了另外一個理論,就是BASE理論,它是用來對CAP定理進(jìn)行進(jìn)一步擴(kuò)充的。BASE理論指的是:

  • Basically Available(基本可用)
  • Soft state(軟狀態(tài))
  • Eventually consistent(最終一致性)

BASE理論是對CAP中的一致性和可用性進(jìn)行一個權(quán)衡的結(jié)果,理論的核心思想就是:我們無法做到強(qiáng)一致,但每個應(yīng)用都可以根據(jù)自身的業(yè)務(wù)特點(diǎn),采用適當(dāng)?shù)姆绞絹硎瓜到y(tǒng)達(dá)到最終一致性(Eventual consistency)。

有了以上理論之后,我們來看一下分布式事務(wù)的問題。

分布式事務(wù)

在分布式系統(tǒng)中,要實(shí)現(xiàn)分布式事務(wù),無外乎那幾種解決方案。

一、兩階段提交(2PC)

和上一節(jié)中提到的數(shù)據(jù)庫XA事務(wù)一樣,兩階段提交就是使用XA協(xié)議的原理,我們可以從下面這個圖的流程來很容易的看出中間的一些比如commit和abort的細(xì)節(jié)。

圖片

兩階段提交這種解決方案屬于犧牲了一部分可用性來換取的一致性。在實(shí)現(xiàn)方面,在 .NET 中,可以借助 TransactionScop 提供的 API 來編程實(shí)現(xiàn)分布式系統(tǒng)中的兩階段提交,比如WCF中就有實(shí)現(xiàn)這部分功能。不過在多服務(wù)器之間,需要依賴于DTC來完成事務(wù)一致性,Windows下微軟搞的有MSDTC服務(wù),Linux下就比較悲劇了。

另外說一句,TransactionScop 默認(rèn)不能用于異步方法之間事務(wù)一致,因?yàn)槭聞?wù)上下文是存儲于當(dāng)前線程中的,所以如果是在異步方法,需要顯式的傳遞事務(wù)上下文。

優(yōu)點(diǎn): 盡量保證了數(shù)據(jù)的強(qiáng)一致,適合對數(shù)據(jù)強(qiáng)一致要求很高的關(guān)鍵領(lǐng)域。(其實(shí)也不能100%保證強(qiáng)一致)

缺點(diǎn): 實(shí)現(xiàn)復(fù)雜,犧牲了可用性,對性能影響較大,不適合高并發(fā)高性能場景,如果分布式系統(tǒng)跨接口調(diào)用,目前 .NET 界還沒有實(shí)現(xiàn)方案。

二、補(bǔ)償事務(wù)(TCC)

TCC 其實(shí)就是采用的補(bǔ)償機(jī)制,其核心思想是:針對每個操作,都要注冊一個與其對應(yīng)的確認(rèn)和補(bǔ)償(撤銷)操作。它分為三個階段:

  • Try 階段主要是對業(yè)務(wù)系統(tǒng)做檢測及資源預(yù)留
  • Confirm 階段主要是對業(yè)務(wù)系統(tǒng)做確認(rèn)提交,Try階段執(zhí)行成功并開始執(zhí)行 Confirm階段時,默認(rèn) Confirm階段是不會出錯的。即:只要Try成功,Confirm一定成功。
  • Cancel 階段主要是在業(yè)務(wù)執(zhí)行錯誤,需要回滾的狀態(tài)下執(zhí)行的業(yè)務(wù)取消,預(yù)留資源釋放。

舉個例子,假入 Bob 要向 Smith 轉(zhuǎn)賬,思路大概是:我們有一個本地方法,里面依次調(diào)用 1、首先在 Try 階段,要先調(diào)用遠(yuǎn)程接口把 Smith 和 Bob 的錢給凍結(jié)起來。2、在 Confirm 階段,執(zhí)行遠(yuǎn)程調(diào)用的轉(zhuǎn)賬的操作,轉(zhuǎn)賬成功進(jìn)行解凍。3、如果第2步執(zhí)行成功,那么轉(zhuǎn)賬成功,如果第二步執(zhí)行失敗,則調(diào)用遠(yuǎn)程凍結(jié)接口對應(yīng)的解凍方法 (Cancel)。

優(yōu)點(diǎn): 跟2PC比起來,實(shí)現(xiàn)以及流程相對簡單了一些,但數(shù)據(jù)的一致性比2PC也要差一些

缺點(diǎn): 缺點(diǎn)還是比較明顯的,在2,3步中都有可能失敗。TCC屬于應(yīng)用層的一種補(bǔ)償方式,所以需要程序員在實(shí)現(xiàn)的時候多寫很多補(bǔ)償?shù)拇a,在一些場景中,一些業(yè)務(wù)流程可能用TCC不太好定義及處理。

三、本地消息表(異步確保)

本地消息表這種實(shí)現(xiàn)方式應(yīng)該是業(yè)界使用最多的,其核心思想是將分布式事務(wù)拆分成本地事務(wù)進(jìn)行處理,這種思路是來源于ebay。我們可以從下面的流程圖中看出其中的一些細(xì)節(jié):

圖片

基本思路就是:

消息生產(chǎn)方,需要額外建一個消息表,并記錄消息發(fā)送狀態(tài)。消息表和業(yè)務(wù)數(shù)據(jù)要在一個事務(wù)里提交,也就是說他們要在一個數(shù)據(jù)庫里面。然后消息會經(jīng)過MQ發(fā)送到消息的消費(fèi)方。如果消息發(fā)送失敗,會進(jìn)行重試發(fā)送。

消息消費(fèi)方,需要處理這個消息,并完成自己的業(yè)務(wù)邏輯。此時如果本地事務(wù)處理成功,表明已經(jīng)處理成功了,如果處理失敗,那么就會重試執(zhí)行。如果是業(yè)務(wù)上面的失敗,可以給生產(chǎn)方發(fā)送一個業(yè)務(wù)補(bǔ)償消息,通知生產(chǎn)方進(jìn)行回滾等操作。

生產(chǎn)方和消費(fèi)方定時掃描本地消息表,把還沒處理完成的消息或者失敗的消息再發(fā)送一遍。如果有靠譜的自動對賬補(bǔ)賬邏輯,這種方案還是非常實(shí)用的。

這種方案遵循BASE理論,采用的是最終一致性,筆者認(rèn)為是這幾種方案里面比較適合實(shí)際業(yè)務(wù)場景的,即不會出現(xiàn)像2PC那樣復(fù)雜的實(shí)現(xiàn)(當(dāng)調(diào)用鏈很長的時候,2PC的可用性是非常低的),也不會像TCC那樣可能出現(xiàn)確認(rèn)或者回滾不了的情況。

優(yōu)點(diǎn): 一種非常經(jīng)典的實(shí)現(xiàn),避免了分布式事務(wù),實(shí)現(xiàn)了最終一致性。在 .NET中 有現(xiàn)成的解決方案。

缺點(diǎn): 消息表會耦合到業(yè)務(wù)系統(tǒng)中,如果沒有封裝好的解決方案,會有很多雜活需要處理。

四、MQ 事務(wù)消息

有一些第三方的MQ是支持事務(wù)消息的,比如RocketMQ,他們支持事務(wù)消息的方式也是類似于采用的二階段提交,但是市面上一些主流的MQ都是不支持事務(wù)消息的,比如 RabbitMQ 和 Kafka 都不支持。

以阿里的 RocketMQ 中間件為例,其思路大致為:

第一階段Prepared消息,會拿到消息的地址。第二階段執(zhí)行本地事務(wù),第三階段通過第一階段拿到的地址去訪問消息,并修改狀態(tài)。

也就是說在業(yè)務(wù)方法內(nèi)要想消息隊(duì)列提交兩次請求,一次發(fā)送消息和一次確認(rèn)消息。如果確認(rèn)消息發(fā)送失敗了RocketMQ會定期掃描消息集群中的事務(wù)消息,這時候發(fā)現(xiàn)了Prepared消息,它會向消息發(fā)送者確認(rèn),所以生產(chǎn)方需要實(shí)現(xiàn)一個check接口,RocketMQ會根據(jù)發(fā)送端設(shè)置的策略來決定是回滾還是繼續(xù)發(fā)送確認(rèn)消息。這樣就保證了消息發(fā)送與本地事務(wù)同時成功或同時失敗。

圖片

遺憾的是,RocketMQ并沒有 .NET 客戶端。

優(yōu)點(diǎn): 實(shí)現(xiàn)了最終一致性,不需要依賴本地?cái)?shù)據(jù)庫事務(wù)。

缺點(diǎn): 實(shí)現(xiàn)難度大,主流MQ不支持,沒有.NET客戶端,RocketMQ事務(wù)消息部分代碼也未開源。

五、Sagas 事務(wù)模型

Saga事務(wù)模型又叫做長時間運(yùn)行的事務(wù)(Long-running-transaction), 它是由普林斯頓大學(xué)的H.Garcia-Molina等人提出,它描述的是另外一種在沒有兩階段提交的的情況下解決分布式系統(tǒng)中復(fù)雜的業(yè)務(wù)事務(wù)問題。

我們這里說的是一種基于 Sagas 機(jī)制的工作流事務(wù)模型,這個模型的相關(guān)理論目前來說還是比較新的,以至于百度上幾乎沒有什么相關(guān)資料。

該模型其核心思想就是拆分分布式系統(tǒng)中的長事務(wù)為多個短事務(wù),或者叫多個本地事務(wù),然后由 Sagas 工作流引擎負(fù)責(zé)協(xié)調(diào),如果整個流程正常結(jié)束,那么就算是業(yè)務(wù)成功完成,如果在這過程中實(shí)現(xiàn)失敗,那么Sagas工作流引擎就會以相反的順序調(diào)用補(bǔ)償操作,重新進(jìn)行業(yè)務(wù)回滾。

比如我們一次關(guān)于購買旅游套餐業(yè)務(wù)操作涉及到三個操作,他們分別是預(yù)定車輛,預(yù)定賓館,預(yù)定機(jī)票,他們分別屬于三個不同的遠(yuǎn)程接口??赡軓奈覀兂绦虻慕嵌葋碚f他們不屬于一個事務(wù),但是從業(yè)務(wù)角度來說是屬于同一個事務(wù)的。

圖片

他們的執(zhí)行順序如上圖所示,所以當(dāng)發(fā)生失敗時,會依次進(jìn)行取消的補(bǔ)償操作。

因?yàn)殚L事務(wù)被拆分了很多個業(yè)務(wù)流,所以 Sagas 事務(wù)模型最重要的一個部件就是工作流或者你也可以叫流程管理器(Process Manager),工作流引擎和Process Manager雖然不是同一個東西,但是在這里,他們的職責(zé)是相同的。在選擇工作流引擎之后,最終的代碼也許看起來是這樣的

SagaBuilder saga = SagaBuilder.newSaga("trip")
        .activity("Reserve car", ReserveCarAdapter.class) 
        .compensationActivity("Cancel car", CancelCarAdapter.class) 
        .activity("Book hotel", BookHotelAdapter.class) 
        .compensationActivity("Cancel hotel", CancelHotelAdapter.class) 
        .activity("Book flight", BookFlightAdapter.class) 
        .compensationActivity("Cancel flight", CancelFlightAdapter.class) 
        .end()
        .triggerCompensationOnAnyError();

camunda.getRepositoryService().createDeployment() 
        .addModelInstance(saga.getModel()) 
        .deploy();

優(yōu)缺點(diǎn)這里我們就不說了,因?yàn)檫@個理論比較新,目前市面上還沒有什么解決方案,即使是 Java 領(lǐng)域,我也沒有搜索的太多有用的信息。

分布式事務(wù)解決方案:CAP

上面介紹的那些分布式事務(wù)的處理方案你在其他地方或許也可以看到,但是并沒有相關(guān)的實(shí)際代碼或者是開源代碼,所以算不上什么干貨,下面就放干貨了。

在 .NET 領(lǐng)域,似乎沒有什么現(xiàn)成的關(guān)于分布式事務(wù)的解決方案,或者說是有但未開源。具筆者了解,有一些公司內(nèi)部其實(shí)是有這種解決方案的,但是也是作為公司的一個核心產(chǎn)品之一,并未開源...

鑒于以上原因,所以博主就打算自己寫一個并且開源出來,所以從17年初就開始做這個事情,然后花了大半年的時間在一直不斷完善,就是下面這個 CAP。

Github CAP:這里的 CAP 就不是 CAP 理論了,而是一個 .NET 分布式事務(wù)解決方案的名字。

詳細(xì)介紹:

http://www.cnblogs.com/savorboard/p/cap.html

相關(guān)文檔:

http://www.cnblogs.com/savorboard/p/cap-document.html

夸張的是,這個解決方案是具有可視化界面(Dashboard)的,你可以很方面的看到哪些消息執(zhí)行成功,哪些消息執(zhí)行失敗,到底是發(fā)送失敗還是處理失敗,一眼便知。

最夸張的是,這個解決方案的可視化界面還提供了實(shí)時動態(tài)圖表,這樣不但可以看到實(shí)時的消息發(fā)送及處理情況,連當(dāng)前的系統(tǒng)處理消息的速度都可以看到,還可以看到過去24小時內(nèi)的歷史消息吞吐量。

最最夸張的是,這個解決方案的還幫你集成了 Consul 做分布式節(jié)點(diǎn)發(fā)現(xiàn)和注冊還有心跳檢查,你隨時可以看到其他的節(jié)點(diǎn)的狀況。

最最最夸張的是,你以為你看其他節(jié)點(diǎn)的數(shù)據(jù)要登錄到其他節(jié)點(diǎn)的Dashboard控制臺看?錯了,你隨便打開其中任意一個節(jié)點(diǎn)的Dashboard,點(diǎn)一下就可以切換到你想看的節(jié)點(diǎn)的控制臺界面了,就像你看本地的數(shù)據(jù)一樣,他們是完全去中心化的。

你以為這些就夠了?不,遠(yuǎn)遠(yuǎn)不止:

  • CAP 同時支持 RabbitMQ,Kafka 等消息隊(duì)列
  • CAP 同時支持 SQL Server, MySql, PostgreSql 等數(shù)據(jù)庫
  • CAP Dashboard 同時支持中文和英文界面雙語言,媽媽再也不用擔(dān)心我看不懂了
  • CAP 提供了豐富的接口可以供擴(kuò)展,什么序列化了,自定義處理了,自定義發(fā)送了統(tǒng)統(tǒng)不在話下
  • CAP 基于MIT開源,你可以盡管拿去做二次開發(fā)。(記得保留MIT的License)

你完全可以把 CAP 當(dāng)做一個 EventBus 來使用,CAP具有優(yōu)秀的消息處理能力,不要擔(dān)心瓶頸會在CAP,那是永遠(yuǎn)不可能, 因?yàn)槟汶S時可以在配置中指定CAP處理的消息使用的進(jìn)程數(shù), 只要你的數(shù)據(jù)庫配置足夠高...

2號傳送門:https://github.com/dotnetcore/CAP

總結(jié)

通過本文我們了解到兩個分布式系統(tǒng)的理論,他們分別是CAP和BASE 理論,同時我們也總結(jié)并對比了幾種分布式分解方案的優(yōu)缺點(diǎn),分布式事務(wù)本身是一個技術(shù)難題,是沒有一種完美的方案應(yīng)對所有場景的,具體還是要根據(jù)業(yè)務(wù)場景去抉擇吧。然后我們介紹了一種基于本地消息的的分布式事務(wù)解決方案CAP。

作者:Savorboard

本文地址:http://www.cnblogs.com/savorboard/p/distributed-system-transaction-consistency.html

1. 一個工具類搞定CRUD的創(chuàng)建人,修改人,時間等字段賦值

2. 全網(wǎng)最全的 postman 工具使用教程

3. Spring Cloud 開發(fā)內(nèi)存占用過高,咋解決?

4. 一份完整的聚合支付設(shè)計(jì)方案,喜歡就拿去用吧!

最近面試BAT,整理一份面試資料Java面試BATJ通關(guān)手冊,覆蓋了Java核心技術(shù)、JVM、Java并發(fā)、SSM、微服務(wù)、數(shù)據(jù)庫、數(shù)據(jù)結(jié)構(gòu)等等。

獲取方式:點(diǎn)“在看”,關(guān)注公眾號并回復(fù) Java 領(lǐng)取,更多內(nèi)容陸續(xù)奉上。

文章有幫助的話,在看,轉(zhuǎn)發(fā)吧。

謝謝支持喲 (*^__^*)

瀏覽 47
點(diǎn)贊
評論
收藏
分享

手機(jī)掃一掃分享

分享
舉報(bào)
評論
圖片
表情
推薦
點(diǎn)贊
評論
收藏
分享

手機(jī)掃一掃分享

分享
舉報(bào)

感谢您访问我们的网站,您可能还对以下资源感兴趣:

国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频 免费在线无码视频| 久久久久久久久免费看无码| 欧美老女人操逼| 伊人成人视频在线观看| 思思热免费视频| 黄色视频毛片| 久久综合电影| 亚洲AV自拍| 亚洲成人影音先锋| 无码电影在线播放| 一区视频免费观看| 俺也去啦WWW色官网| 成人网在线视频| 欧美成人五月天| 韩国一区二区三区| 无码A∨| 人妻少妇偷人精品无码免费| jizz丝袜| 男女啪啪网| 在线无码视频| 人妻一区二区在线| 色网站在线观看| 二区无码| 好好的日视频| 大香蕉在线啪啪| 日本十八禁网站| 一区二区三区视频| 亚洲AV无码成人片在线| ThePorn日本无码| www.黄色| 免费尻屄视频| 一级黄色电影在线观看| 无码精品一区二区三区在线播放| 成人不卡视频| 日皮免费视频| 全部在线A片免费播放| 一级A片亲子乱中文| 欧美一级性爱| av无码不卡| 黄片天堂| 国产精品HongKong麻豆| 中文字幕亚洲第一| 人人草人人草| 黃色毛片A片AAAA级20| 久久精品视| 国产黄色一级片| 一级特黄毛片| 韩国无码免费| 亚洲av大片| 深爱五月激情网| 青青草东路热vv| 亚洲无码精品专区| 蜜臀久久99精品久久久电影| 五月天久久久久久久| 国产91精品在线观看| 最新人妻| 偷拍-91爱爱| 91久久久久| 婷婷网五月天| 国产精品网站在线观看| 成人激情久久| 免费黄色网页| 午夜AV福利影院| 国产精品欧美一区二区三区苍井空 | 欧美操| 五月天天| 中文有码视频| 国产精品久久久久国产A级| 婷婷五月天色色| 熟女视频国产| 精品视频在线观看免费| 伊人黄| 天天躁夜夜躁av| 黑人无码视频| 色情小电影免费网站观看网址在线播| 中文字幕成人视频| 偷拍九九热| 激情五月婷婷五月| 国产成人精品视频免费看| 欧美日韩成人片| 淫色人妻网| 国产无遮挡又黄又爽又色| 日韩毛片| 免费成人黄色| 日韩中字无码黄片| 成年人在线观看视频网站| 正在播放吴梦梦淫行| 一插综合网| 黄色网址av| 亚洲熟妇视频| 加勒比久久久| 日本少妇网站| AAA亚洲| 欧美日韩国产一区二区| 翔田千里无码一区| 黄色视频网站在线| 欧美一本在线| 中文字幕乱伦性爱| 亚洲春色一区二区三区| 国产免费av在线观看| 色天堂网站| 波多野结衣无码AV专区| 青青草在线视频免费观看| 黄色av免费网站| 欧美成人综合| 成人精品视频在线| 啪啪A片| 成人av一区| 福利在线看| 欧美精品性爱| 天天干在线观看| 囯产精品久久久久久久久久久久久久 | 影音先锋乱伦电影| 欧美成人a片| 91看片看婬黄大片Videos| 国产成人久久| 俺去俺来也WWW色老板| 能看的黄色视频| 国产AV一区二区三区精品| 黄色三级A片| 激情无码视频| 亚洲国产成人91PORN| 苍井空在线播放| 欧美日本黄色| 国产黄色视频免费在线观看| 欧美亚洲黄色| 日本无码专区| 无码一二| 亚洲人操逼| 操BAV| 日本久久综合网| 88海外华人免费一区| 国产精品无码成人AV在线播放| 曰韩精品| 麻豆av人人乐| 美女网站在线观看| 日本中文字幕网| 中文字幕三级片在线观看| 久久久成人免费电影| 美女av网站| 美女一级变态毛片| 一二区无码| 天天操欧美| 北条麻妃无码一区三区| 97精品综合久久| 久热九九| 一区二区三区三级片| 日韩国产AV| 嫩苞又嫩又紧AV无码| 人人舔人人爱| 国产探花视频在线免费观看| 内射国产| 人人摸人人操人人射| 国产性播放| 波多野结衣无码在线| 久久久久久久91| 国产精品久久久久久无人区| 精品一区二区三区av| 日韩视频在线观看免费| 风流少妇一区二区三区91| 久久激情av| 五月丁香六月情| 无码三级在线观看| 亚洲秘无码一区二区三区蜜桃中文| www.色色网| 健身房被教练3p喷水了| 99乱伦| 特大妓女BBwBBWBBw| 亚洲天堂中文| 国产另类自拍| 亚洲无码视频观看| 欧美一级黃色A片免费看小优视频 无码人妻精品一区二区三千菊电影 | 曰韩精品| 欧美撸一撸| 中文字幕无码在线播放| 欧洲成人在线视频| 成年人黄色视频网站| 久久思热国产| 无码中文暮| 精品久久久久久久久久| 日本三区| 西西特级WWW444无码| 99re99热| 在线播放日韩| 国产又爽又黄免费观看视频| 亚洲国产高清无码| 亚洲精品熟女| 成人午夜在线观看| 国内精品久久久久久久久久变脸| 日本处女性高潮喷水视频| 青青草成人在线| 俺去俺来也www色官网cms| 韩国三级HD中文字幕的背景音乐 | 免费无码av| 少妇精品久久久久久久久久| 中文在线第一页| 久久99精品国产.久久久久| 日韩av在线免费观看| 国产黄| 欧美日一区二区三区| 久久肏屄| 亚洲精品国产精品国自产A片同性 丰满人妻一区二区三区四区不卡 国产1级a毛a毛1级a毛1级 | 亚洲黄色无码视频| 日韩欧美亚洲| 91精品久久久久久久| 在线免费观看毛片| 先锋影音麻豆| 色婷婷视频网站| 天天爽天天爽夜夜爽毛片| 日本爱爱免费播放视频| 东北骚妇大战黑人视频| 激情乱伦网| 一级色色片| 青娱乐青青草| 国内精品无码| 91在线精品一区二区| 在线午夜福利| www.一区| 岛国AV在线播放| 色屁屁草草影院ccyycom| 国产成人免费看| 青草99| 激情白浆| 啊啊啊啊av| www.毛片| 伊人久久AV| 丁香操逼| 亚洲AV久久无码| 亚洲成人77777| 伊人网在线免费视频| 看90后操B| 欧美性爱香蕉视频| 国产嫩草久久久一二三久久免费观看| 操逼视频免费观看| 日韩无码免费视频| 精品秘无码一区二区三区老师| 搡BBB| 国产免费久久| 亚洲无码福利| 人妻视频在线| 一道本在线观看| 成人A片在线观看| 超碰人人91| 日韩va中文字幕无码免费| 中国字幕在线观看韩国电影| 丁香五月中文字幕| 日本中文字幕在线观看| 国产精品久久久久久久免牛肉蒲| 又粗又硬又爽18级A片| 男女午夜| 日韩99热| 麻豆性交| 大香蕉青青| 中文免费高清在线| 国产第五页| 亚洲AV秘无码不卡在线观看 | 亚洲三级片无码| 国产3区| 久久色婷婷| 乱伦无码视频| 亚洲的天堂的αⅴ| 日本免费黄色| 丰满无码| 在线观看AV网站| 精品视频网| 婷婷国产AV| 99热国产在线观看| 69成人免费视频| 亚州视频在线| 怡春院视频| 国产精品不卡一区二区三区| 日本毛片在线观看| 俺也去啦WWW色官网| 久久免费在线视频| 中文字幕熟女人妻| 乱伦五月天| 成人精品免费| 成人免费观看的毛视频| 欧美不卡在线视频| 亚洲国产高清国产精品| 国产成人秘在线观看免费网站| 亚洲男人的天堂av| 亚洲精品国产精品国自产| 特级西西444www精品视频 | 亚洲色图在线视频| 成人免费在线视频| 国产精品久久久无码专区| 成人黄网站免费观看| 国产白浆一区二区三区| 国产三级视频在线| 蜜臀久久99精品| 欧美另类| 亚洲精品久久久久久| 亚州AV无码| 亚洲午夜福利视频| 3D精品啪啪一区二区免费| 东北奇淫老老妇| 中文字幕一区二区三区在线观看 | 五月丁香六月婷| www.国产豆花精品区| 国产精品久久久久久最猛| 国产精品资源在线观看| 精品蜜桃秘一区二区三区在线播放| 日韩视频精品| 日本久久精品18| 在线无码av| av资源在线| 3DAV一区二区三区动漫| 国产熟女在线| 色色色亚洲| 操啊操| 三级片久久| AA免费视频| 网站啪啪| 欧美成人第一页| 欧美日韩国产精品| 美女av免费| 九九久久久久| 国产又大又黄| 亚洲成人免费| 亚洲成人免费在线视频| 日韩不卡一区二区三区| 欧美亚洲日韩成人| 欧美色婷婷| 毛片黄色片| 国产又爽又黄A片| 亚洲色在线观看| 波多野结衣成人视频| 欧美精品无码一区二区| 自慰影院| 成人视频无码| 亚洲第一区欧美日韩| 超碰97成人| 五月天激情导航| 日本久久网| 无码日韩成人| 2019国产精品| 俺来也AV| 中文字幕天堂网| chinese搡老熟老妇人| 亚洲色欲色欲www在线成人网| 免费一级片| 日韩欧美天堂| 超碰碰碰碰碰| 操逼毛片| 污视频网站免费观看| 亚洲三级片在线| av在线天堂| 亚洲天堂在线免费观看视频| 五月天激情导航| 超碰人人干| 久久av网站| 探花视频在线观看| 大香蕉啪啪啪| 亚洲国产视频一区| 久久99久久99久久99人受| 短发妹子双人啪啪秀| 久久亚洲精品视频| 欧美大香蕉在线视频| 日韩顶级毛片| 2024AV在线| 欧美日韩国产一区二区| A片在线免费观看| 成人精品一区二区三区电影| 午夜不卡视频| 香蕉A片| 我要操影院| 国产精品无码在线观看| 玖玖资源在线观看| 张柏芝BBw搡BBBB槡BBBBHDfree | 日韩无码视频一区二区| 亚洲视频久久| 久久亚洲Aⅴ成人无码国产丝袜| 黄视频免费| 天堂资源网| 美女插插| 波多野结衣亚洲视频| 免费一级黄色电影| 69综合| 蜜芽无码| 三级无码视频在线观看| 毛片毛片毛片毛片毛片毛片| 日韩三级在线免费观看| 日韩视频区| 亚洲中文字幕电影| 秋霞一区二区| 青娱乐青青草| 婷婷五月天影视| 高潮喷水在线观看| 美女人人操| 伊人99热| 国产探花一区二区三区| 黄色特级片| 无套内射在线播放| 天天操天天干天天射| 特级西西| 麻豆免费成人视频| AAA一区二区三区| 亚洲成人网在线观看| 久久福利网| 思思热在线观看视频| 18禁网站网址| 91丨九色丨熟女丰满| 最新久欠一区二区免费看| 亚洲乱码在线观看| 国际精品久久久| 欧美在线免费观看| 日本中文字幕乱伦| 国产精品av在线| 簧片网站免费| 无码A区| 视频一区中文字幕| 日韩乱伦视频| 中文字幕超清在线观看| 东京热视频在线观看| 骚逼逼影院| 免费黄色视频在线观看| 五月丁香婷婷激情| 日产精品久久| 中文字幕免费视频在线观看| 亚洲欧洲精品成人久久曰影片| 亚洲一区二区在线免费观看| 午夜福利无码电影| 秋霞福利视频| 各种BBwBBwBBwBBw| 韩国日本美国免费毛片| 天天色AV| 国产精品一卡二卡三卡| 少妇毛片| 97超碰成人| 久久精彩偷拍视频| 色婷婷AV一区二区三区之e本道| 欧美黄色免费| 人人妻人人爽人人澡人人精品| 国产一级婬乱片免费| 日韩天天操| 天天躁夜夜躁狠狠躁AV| 天天色小说| 日韩国产中文字幕| 亚洲国产视频一区| 久热99| 日逼日逼日逼| 蜜乳av红桃嫩久久| 露脸丨91丨九色露脸| 亚洲黄在线观看| 99re热在线视频| 在线观看欧美日韩| 国产网站免费| 小H片在线观看| 免费看的毛片| 影音先锋男人网| 神马Aⅴ| 综合在线视频| 嫩草嫩草69| 天堂素人约啪| 黄色A片在线观看| 加勒比一区二区三区| 青娱乐三级在线免| 爱操逼综合网| 天堂网2025| 懂色成人视频在线观看| 91操B| 国产草莓视频| www.伊人大香蕉| 亚洲无码影音先锋| 天天免费视频| 欧一美一婬一伦一区二区三区| 91欧美日韩| 99热播| 国产无码AV| 人成视频在线观看| 国产无遮挡| 黄色大片视频| 大香蕉福利视频导航| 亚洲精品午夜精品| 成人爱爱免费视频| 在线一区观看| 91大神免费观看| 中文字幕日韩在线视频| 东北老女人操逼| 午夜精品久久久久久久99热精东 | 91人妻人人澡| 一本道视频在线| 欧美黄色一级网站| 亚洲日操| h网站在线观看| 日韩性做爰免费A片AA片| 黄色大片在线播放| 久久99精品国产.久久久久| 人妻无码免费视频| 成人高清无码视频| 日本aaaa片| 欧美黄色a片| 91成人视频在线观看| 日韩精品一区在线观看| 日韩成人无码精品| 最新国产毛片| 中文字幕av久久波多野结| 大香蕉手机在线视频| 天天看A片| 激情五月天综合网| 波多野结衣99| 俺去也| 成人黄片免费看| 超碰A片| 91成人视频在线免费观看| 国产伦精品一区二区三区妓女下载 | 激情五月丁香五月| 黄片免费看网站| 亚洲精品无码免费| 成人性生交大片免费看小芳| 驲韩在线视频免费观看| 学生妹毛片| 无码操逼视频| 污片网站| 国产无遮挡又黄又爽又色视频| 99免费视频在线| 人人操人人操人人操人人操人人操 | 黄色视频免费播放| 特级西西444WWW高清| 97超碰人人摸| 狼友视频在线看| 久久夜色视频网| 你懂的视频| 俺也去在线视频| 97人妻精品一区二区三区视频| 中国免费XXXX18| 精品777| 亚洲成人高清在线| 中文字幕成人网站中文字幕| www超碰在线| 欧美丝袜脚交xxxxBH| 精品国产乱子伦一区二区三区最新章| 国产成人三级片| 国产无套内射在线观看| 日韩精品一区二区三区黄冈站长| www.日韩一区| 亚洲色图1| 欧美精品成人网站| 免费肏屄| 天天日综合网| 国产精品夜夜爽3000| 看国产毛片| 国产高清做爱免费在线视频| 日逼视频网站| 亚洲天堂免费视频| 夜夜躁狠狠躁日日躁av| 九九成人网站| 免费V片| 日本黄色小视频| 亚洲AV永久无码精品| 在线亚洲观看| 日本成人一区| 久久99久久99精品免视看婷婷| 亚洲无码成人网| 黄色av免费观看| 国产高清无码18| 麻豆日韩| 麻豆三级片在线观看| www.日韩无码| 免费AV在线播放| 99成人免费视频| 成人午夜av| 国产伊人在线| 天堂а√在线中文在线新版| 日日夜夜AV| 中文无码一区二区三区| 一区二区成人电影| 91丨PORNY丨丰满人妻网站 | 一区二区三区久久久久| va婷婷在线免费观看| 亚洲国产成人在线视频| 亚洲天堂视频在线播放| 欧美婬乱片A片AAA毛片地址| 女同久久另类99精品国产91| 真人无码| 亚色视频| 国产精品无码7777777| 中文字幕一区二区三区四区在线视频 | 久久免费精品视频| 天堂a√中文8| 亚洲福利视频97| 日本草久| 亚洲色婷婷久久精品AV蜜桃| 欧美大鸡巴视频| 人妻中文字幕久久| 无码人妻一区二区三一区免费n狂飙| 高清无码一级片| 成人av免费观看| 人人妻人人超| 北条麻妃被躁57分钟视频在线| 亚洲精品无码视频在线观看| 一区高清无码| 成人网站在线免费看| 99精品视频免费观看| 肏亚洲美女| 18+免费网站| 欧美男女交配视频| 91无码影院| 手机av在线观看| av天天看| 国产黄色在线播放| 大香蕉福利导航| 欧美性猛交一区二区三区| se婷婷| Www.黄色| 91麻豆视频在线观看| 在线久草| 极品少妇AV| 嫩BBB嫩BBB嫩BBB| 毛片久久| 午夜亚洲国产一区视频网站| 国产高清无码免费视频| 久爱无码| 俺去俺来也www色官网黑人| 亚洲无码人妻视频| 日逼高清视频| 久久燥| 在线色| 波多野结衣一区二区三区在线观看 | 午夜福利欧美| 国产区精品| 中文字幕AV播放| 性爱av在线| 成人做爰100片免费观看视频| 久久污| 高清无码三级片在线观看| 日韩中文无码字幕| 亚洲激情无码视频| 亚洲无码AV网站| 二区精品| 狠狠操2019| 国产精品秘ThePorn| 婷婷五月天激情电影| 成人777777免费视频色| 91社区成人影院| 天堂v视频| 国产99久久| 人人操人人妻人人爽| 欧美精品黄| 国产18禁网站| 黄片网站在线免费观看| 久久久久久久9999| 人人摸在线视频| 久久a视频| 亚洲无码中文字幕在线| 亚洲日韩欧美色图| 亚洲淫秽视频| 久久久波多野结衣| 国产人体视频| 国产成人欧美| 五月婷婷网| 人人摸人人操人人干| 台湾精品无码| 97无码精品人妻一区二区三区 | 九一av| 一级性爽AV毛片| 97人妻人人澡人| 国产精品中文| 俺来也在线视频| 911精品人妻一区二区三区A片 | 一区二区入口| 天堂AV在线免费观看| 国产精品啪啪视频| 国产精品久久久精品cos| 一区二区三区视频在线| 色婷婷日韩精品一区二区三区| 色六月婷婷| 欧美日韩精品一区二区| 色欲一区| 亚洲天堂2015| 欧美激情综合色综合啪啪五月| 国产午夜视频在线观看| 亚洲天堂免费视频| 男女日皮视频| 丁香色综合人妻| 午夜操爽| 色欲成人AV| 国产av电影网| 九热视频| 黄色生活片| 成人免费A片在线观看直播96| 久久大陆| 七六十路の高齢熟妇无码| 青青草91视频| 视频二区中文字幕| 精品视频国产| 成人国产在线| 日韩无码电影网| 欧美一级在线观看| 伊人久久狼人| 亚洲AV无码国产精品二区| 色图插插插| 国产字幕在线观看| 久久久久久久艹| 最新免费一区二区三区| v天堂| 久久久久久久麻豆| www.激情五月天| 天天综合天天干| 大鸡巴在线观看| 大香蕉在线视频99| 亚洲无码一级电影| 人妻少妇中文字幕久久牛牛| 手机在线一区| 人人妻人人爱人人| 麻豆精品国产传媒| 日本成人毛片| 四川婬妇BBw搡BBBB搡| 午夜成人免费视频| 日韩中文字幕av| 91性爱| 伊人五月婷婷| 一区二区三区麻豆| 人妻18无码人伦一区二区三区精品 | 91人妻人人澡人人爽人人精吕| 加勒比无码综合| 亚洲无码高清免费| aaa在线观看| 日韩中文字幕在线免费观看 | 毛片操逼视频| 好吊妞在线| 先锋成人资源| 国产欧美在线观看| 欧洲肥胖BBBBBBBBBB| 亚洲激情综合视频| 精品三级在线观看| 天天草天天撸| 熟女嗷嗷叫高潮合集91| 成人无码动漫A片| 午夜福利码一区二区| 亚洲免费在线| 操逼大毛片| 99久久9| www.日韩一区| 日韩aaaaaa| 国产传媒在线| 亚洲成人无码在线| 婷婷手机在线| 国产精品毛片VA一区二区三区| 天天草av| 伊人国产视频| 91人妻人人澡人人| 中文字幕综合| 麻豆传媒猫爪| 黄色网页免费观看| 亚洲淫秽视频| 日韩无码字幕| 国产精品国产精品国产专区不卡| 中文字幕无码av| 亚洲搞清视频日本| 日本一区二区视频在线观看| 精品国产区一区二| 精品国产午夜福利在线观看| 中文字幕第12页| 亚洲乱伦网| 欧美午夜片| 亚洲xxxxxx| 久久大陆| 日本成人一区| 一级a片免费看| 操青青| 日韩欧美性爱视频| 亚洲AV无码精品国产| 人人爽人人爱| 在线中文字幕网站| 新超碰在线观看| 91区视频| 久热精品在线观看视频| 你懂的在线观看视频| 大鸡巴在线视频| 大香蕉免费中文| 日韩成人无码精品| 免费国产三级片| 人人肏人人摸| 亚洲一区二区三区无码| 99热中文字幕在线观看| 成人免费视频一区二区三区| 91男女| 欧美日韩精品久久久免费观看| 大香蕉综合网| 精品国产123| 污网站18禁| WWWA片| 日韩黄色电影在线观看| 国产无遮挡又黄又爽在线观看| av亚洲波多野结衣白嫩水多波| 想要xx在线观看| 91精品国自产在线观看| 熟女一区| 91精彩视频| 亚洲无码内射| 欧美午夜三级| 国产v片| 亚洲高清视频无码| 色哟哟无码精品一区二区三区| 北条麻妃黄色视频| 小h片在线观看| 天天爽夜夜爽AA片免费| 欧美激情视频一区| 国产综合网站| 亚洲综合中文| 亚洲精品图片| 超碰欧美在线| 69成人无码| 91精品国产乱码久久久竹菊| 亚洲AV色香蕉一区二区三区| 首屈一指视频在线观看| 躁BBB躁BBB躁BBBBB乃| 伊人网视频在线观看| 亚洲无码免费视频在线观看| 国产亚洲精品久久久久久桃色| 久久久久久久网站| 91蜜臀| 欧美一级做| 午夜黄色大片| 五月色综合| 综合天堂网| 台湾精品一区二区三区| 国产jk在线| 久精品视频| 婷婷五月激情小说| 日韩av高清| 日韩免费一区| 操屄视频播放| 黄色国产网站| 2025天天干| 亚洲一区| 九一久色| 92久久| 在线视频亚洲| 91精品国产综合久久久蜜臀粉嫩| 一区二区三区免费播放| 天堂中文网| 日日夜夜天天操| 一区免费在线| 欧美一级婬片免费视频华泰老添妇| 一见钟情的韩国电影| 懂色AV无码中字幕一区| www.日韩无码| 亚洲激情综合| 成人黄色在线看| 国产毛片毛片毛片毛片毛片| 影音av| 五月婷婷色色网| 日本一区不卡| 亚洲精品福利视频| 狠狠操一区| 99精品视频16在线免费观看| 人人摸人人射| 中文字幕黑人无码| 久久久久久久久久成人| 青娱乐毛片| 国产精品怡红院有限公司| 国产91久久婷婷一区二区| 专业操老外| 日韩A人人| 日韩一级性爱视频| 国产精品av在线| 人人操人人看人人摸| 自拍偷拍视频网| 97人人爽人人爽人人人| 国产精品久久久一区二区三区| 欧美福利在线观看| 狠狠草视频| 亚洲人妻电影一区| 天天艹天天干| 午夜香蕉| 国产操P| 91无码秘蜜桃一区二区三区-百度 精品人妻一区二区三区在线视频不卡 | 欧美老女人操逼群| 97精品人妻一区二区三区香蕉| 亚洲国产精品久久| 婷婷五月大香蕉| 坏男人内射老太太| 91久久久无码国产一区二区三区| 色图插插插| 婷色五月天| 性色网站| 黄色免费AV| 色图欧美色图| 免费一级黄色毛片| 欧美综合亚洲| www.水蜜桃| 午夜理论在线| 成人黄色av| 小日本91在线观看| 中文字幕av一区| 一区二区高清视频| 黄色A一级| 国产毛片毛片毛片毛片毛片| 欧美日韩黄片| 欧美成人精品激情在线观看| 欧美一級黃色A片免費看| 久久青青婷婷| 伊人免费在线| 日韩国产一区| 亚洲AV一级| 夜色福利视频| 五月丁香花婷婷|