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

一次面試阿里之后的感慨:TCC分布式事務原理真的得搞明白

開發 架構
咱們這篇文章,就用大白話+手工繪圖,并結合一個電商系統的案例實踐,來給大家講清楚到底什么是TCC分布式事務。

一、寫在前面

之前網上看到很多寫分布式事務的文章,不過大多都是將分布式事務各種技術方案簡單介紹一下。很多朋友看了不少文章,還是不知道分布式事務到底怎么回事,在項目里到底如何使用。

所以咱們這篇文章,就用大白話+手工繪圖,并結合一個電商系統的案例實踐,來給大家講清楚到底什么是TCC分布式事務。

首先說一下,這里可能會牽扯到一些Spring Cloud的原理,如果有不太清楚的同學,可以參考之前的文章:??用SpringCloud的時候胡亂寫配置的兄弟們,事故加班一定很多??


二、業務場景介紹

咱們先來看看業務場景,假設你現在有一個電商系統,里面有一個支付訂單的場景。

那對一個訂單支付之后,我們需要做下面的步驟:

  • 更改訂單的狀態為“已支付”
  • 扣減商品庫存
  • 給會員增加積分
  • 創建銷售出庫單通知倉庫發貨

這是一系列比較真實的步驟,無論大家有沒有做過電商系統,應該都能理解。

三、進一步思考

好,業務場景有了,現在我們要更進一步,實現一個TCC分布式事務的效果。

什么意思呢?也就是說,訂單服務-修改訂單狀態,庫存服務-扣減庫存,積分服務-增加積分,倉儲服務-創建銷售出庫單。

上述這幾個步驟,要么一起成功,要么一起失敗,必須是一個整體性的事務

舉個例子,現在訂單的狀態都修改為“已支付”了,結果庫存服務扣減庫存失敗。那個商品的庫存原來是100件,現在賣掉了2件,本來應該是98件了。

結果呢?由于庫存服務操作數據庫異常,導致庫存數量還是100。這不是在坑人么,當然不能允許這種情況發生了!

但是如果你不用TCC分布式事務方案的話,就用個Spring Cloud開發這么一個微服務系統,很有可能會干出這種事兒來。

我們來看看下面的這個圖,直觀的表達了上述的過程。

所以說,我們有必要使用TCC分布式事務機制來保證各個服務形成一個整體性的事務。

上面那幾個步驟,要么全部成功,如果任何一個服務的操作失敗了,就全部一起回滾,撤銷已經完成的操作。

比如說庫存服務要是扣減庫存失敗了,那么訂單服務就得撤銷那個修改訂單狀態的操作,然后得停止執行增加積分和通知出庫兩個操作。

說了那么多,老規矩,給大家上一張圖,大伙兒順著圖來直觀的感受一下。

四、落地實現TCC分布式事務

那么現在到底要如何來實現一個TCC分布式事務,使得各個服務,要么一起成功?要么一起失敗呢?

大家稍安勿躁,我們這就來一步一步的分析一下。咱們就以一個Spring Cloud開發系統作為背景來解釋。

1、TCC實現階段一:Try

首先,訂單服務那兒,他的代碼大致來說應該是這樣子的:

如果你之前看過Spring Cloud架構原理那篇文章,同時對Spring Cloud有一定的了解的話,應該是可以理解上面那段代碼的。

其實就是訂單服務完成本地數據庫操作之后,通過Spring Cloud的Feign來調用其他的各個服務罷了。

但是光是憑借這段代碼,是不足以實現TCC分布式事務的啊?!兄弟們,別著急,我們對這個訂單服務修改點兒代碼好不好。

首先,上面那個訂單服務先把自己的狀態修改為:OrderStatus.UPDATING。

這是啥意思呢?也就是說,在pay()那個方法里,你別直接把訂單狀態修改為已支付啊!你先把訂單狀態修改為UPDATING,也就是修改中的意思。

這個狀態是個沒有任何含義的這么一個狀態,代表有人正在修改這個狀態罷了。

然后呢,庫存服務直接提供的那個reduceStock()接口里,也別直接扣減庫存啊,你可以是凍結掉庫存。

舉個例子,本來你的庫存數量是100,你別直接100 - 2 = 98,扣減這個庫存!

你可以把可銷售的庫存:100 - 2 = 98,設置為98沒問題,然后在一個單獨的凍結庫存的字段里,設置一個2。也就是說,有2個庫存是給凍結了。

積分服務的addCredit()接口也是同理,別直接給用戶增加會員積分。你可以先在積分表里的一個預增加積分字段加入積分。

比如:用戶積分原本是1190,現在要增加10個積分,別直接1190 + 10 = 1200個積分啊!

你可以保持積分為1190不變,在一個預增加字段里,比如說prepare_add_credit字段,設置一個10,表示有10個積分準備增加。

倉儲服務的saleDelivery()接口也是同理啊,你可以先創建一個銷售出庫單,但是這個銷售出庫單的狀態是“UNKNOWN”。

也就是說,剛剛創建這個銷售出庫單,此時還不確定他的狀態是什么呢!

上面這套改造接口的過程,其實就是所謂的TCC分布式事務中的第一個T字母代表的階段,也就是Try階段。

總結上述過程,如果你要實現一個TCC分布式事務,首先你的業務的主流程以及各個接口提供的業務含義,不是說直接完成那個業務操作,而是完成一個Try的操作。

這個操作,一般都是鎖定某個資源,設置一個預備類的狀態,凍結部分數據,等等,大概都是這類操作。

咱們來一起看看下面這張圖,結合上面的文字,再來捋一捋這整個過程。

2、TCC實現階段二:Confirm

然后就分成兩種情況了,第一種情況是比較理想的,那就是各個服務執行自己的那個Try操作,都執行成功了,bingo!

這個時候,就需要依靠TCC分布式事務框架來推動后續的執行了。

這里簡單提一句,如果你要玩兒TCC分布式事務,必須引入一款TCC分布式事務框架,比如國內開源的ByteTCC、himly、tcc-transaction。

否則的話,感知各個階段的執行情況以及推進執行下一個階段的這些事情,不太可能自己手寫實現,太復雜了。

如果你在各個服務里引入了一個TCC分布式事務的框架,訂單服務里內嵌的那個TCC分布式事務框架可以感知到,各個服務的Try操作都成功了。

此時,TCC分布式事務框架會控制進入TCC下一個階段,第一個C階段,也就是Confirm階段。

為了實現這個階段,你需要在各個服務里再加入一些代碼。

比如說,訂單服務里,你可以加入一個Confirm的邏輯,就是正式把訂單的狀態設置為“已支付”了,大概是類似下面這樣子:

庫存服務也是類似的,你可以有一個InventoryServiceConfirm類,里面提供一個reduceStock()接口的Confirm邏輯,這里就是將之前凍結庫存字段的2個庫存扣掉變為0。

這樣的話,可銷售庫存之前就已經變為98了,現在凍結的2個庫存也沒了,那就正式完成了庫存的扣減。

積分服務也是類似的,可以在積分服務里提供一個CreditServiceConfirm類,里面有一個addCredit()接口的Confirm邏輯,就是將預增加字段的10個積分扣掉,然后加入實際的會員積分字段中,從1190變為1120。

倉儲服務也是類似,可以在倉儲服務中提供一個WmsServiceConfirm類,提供一個saleDelivery()接口的Confirm邏輯,將銷售出庫單的狀態正式修改為“已創建”,可以供倉儲管理人員查看和使用,而不是停留在之前的中間狀態“UNKNOWN”了。

好了,上面各種服務的Confirm的邏輯都實現好了,一旦訂單服務里面的TCC分布式事務框架感知到各個服務的Try階段都成功了以后,就會執行各個服務的Confirm邏輯。

訂單服務內的TCC事務框架會負責跟其他各個服務內的TCC事務框架進行通信,依次調用各個服務的Confirm邏輯。然后,正式完成各個服務的所有業務邏輯的執行。

同樣,給大家來一張圖,順著圖一起來看看整個過程。

3、TCC實現階段三:Cancel

好,這是比較正常的一種情況,那如果是異常的一種情況呢?

舉個例子:在Try階段,比如積分服務吧,他執行出錯了,此時會怎么樣?

那訂單服務內的TCC事務框架是可以感知到的,然后他會決定對整個TCC分布式事務進行回滾。

也就是說,會執行各個服務的第二個C階段,Cancel階段。

同樣,為了實現這個Cancel階段,各個服務還得加一些代碼。

首先訂單服務,他得提供一個OrderServiceCancel的類,在里面有一個pay()接口的Cancel邏輯,就是可以將訂單的狀態設置為“CANCELED”,也就是這個訂單的狀態是已取消。

庫存服務也是同理,可以提供reduceStock()的Cancel邏輯,就是將凍結庫存扣減掉2,加回到可銷售庫存里去,98 + 2 = 100。

積分服務也需要提供addCredit()接口的Cancel邏輯,將預增加積分字段的10個積分扣減掉。

倉儲服務也需要提供一個saleDelivery()接口的Cancel邏輯,將銷售出庫單的狀態修改為“CANCELED”設置為已取消。

然后這個時候,訂單服務的TCC分布式事務框架只要感知到了任何一個服務的Try邏輯失敗了,就會跟各個服務內的TCC分布式事務框架進行通信,然后調用各個服務的Cancel邏輯。

大家看看下面的圖,直觀的感受一下。

五、總結與思考

好了,兄弟們,聊到這兒,基本上大家應該都知道TCC分布式事務具體是怎么回事了!

總結一下,你要玩兒TCC分布式事務的話:

首先需要選擇某種TCC分布式事務框架,各個服務里就會有這個TCC分布式事務框架在運行。

然后你原本的一個接口,要改造為3個邏輯,Try-Confirm-Cancel。

  • 先是服務調用鏈路依次執行Try邏輯
  • 如果都正常的話,TCC分布式事務框架推進執行Confirm邏輯,完成整個事務
  • 如果某個服務的Try邏輯有問題,TCC分布式事務框架感知到之后就會推進執行各個服務的Cancel邏輯,撤銷之前執行的各種操作

這就是所謂的TCC分布式事務。

TCC分布式事務的核心思想,說白了,就是當遇到下面這些情況時,

  • 某個服務的數據庫宕機了
  • 某個服務自己掛了
  • 那個服務的redis、elasticsearch、MQ等基礎設施故障了
  • 某些資源不足了,比如說庫存不夠這些

先來Try一下,不要把業務邏輯完成,先試試看,看各個服務能不能基本正常運轉,能不能先凍結我需要的資源。

如果Try都ok,也就是說,底層的數據庫、redis、elasticsearch、MQ都是可以寫入數據的,并且你保留好了需要使用的一些資源(比如凍結了一部分庫存)。

接著,再執行各個服務的Confirm邏輯,基本上Confirm就可以很大概率保證一個分布式事務的完成了。

那如果Try階段某個服務就失敗了,比如說底層的數據庫掛了,或者redis掛了,等等。

此時就自動執行各個服務的Cancel邏輯,把之前的Try邏輯都回滾,所有服務都不要執行任何設計的業務邏輯。保證大家要么一起成功,要么一起失敗。

寫到這里,本文差不多該結束了。等一等,你有沒有想到一個問題?

如果有一些意外的情況發生了,比如說訂單服務突然掛了,然后再次重啟,TCC分布式事務框架是如何保證之前沒執行完的分布式事務繼續執行的呢?

所以,TCC事務框架都是要記錄一些分布式事務的活動日志的,可以在磁盤上的日志文件里記錄,也可以在數據庫里記錄。保存下來分布式事務運行的各個階段和狀態。

問題還沒完,萬一某個服務的Cancel或者Confirm邏輯執行一直失敗怎么辦呢?

那也很簡單,TCC事務框架會通過活動日志記錄各個服務的狀態。

舉個例子,比如發現某個服務的Cancel或者Confirm一直沒成功,會不停的重試調用他的Cancel或者Confirm邏輯,務必要他成功!

當然了,如果你的代碼沒有寫什么bug,有充足的測試,而且Try階段都基本嘗試了一下,那么其實一般Confirm、Cancel都是可以成功的!

最后,再給大家來一張圖,來看看給我們的業務,加上分布式事務之后的整個執行流程:

少大公司里,其實都是自己研發TCC分布式事務框架的,專門在公司內部使用,比如我們就是這樣。

不過如果自己公司沒有研發TCC分布式事務框架的話,那一般就會選用開源的框架。

這里筆者給大家推薦幾個比較不錯的框架,都是咱們國內自己開源出去的:ByteTCC,tcc-transaction,himly。

大家有興趣的可以去他們的github地址,學習一下如何使用,以及如何跟Spring Cloud、Dubbo等服務框架整合使用。

只要把那些框架整合到你的系統里,很容易就可以實現上面那種奇妙的TCC分布式事務的效果了。

責任編輯:姜華 來源: 今日頭條
相關推薦

2022-05-19 12:14:22

分布式開發框架

2018-11-23 09:25:00

TCC分布式事務

2021-06-08 12:46:27

分布式阿里TCC

2022-05-30 10:37:35

分布式事務反向補償

2024-06-28 09:07:19

2022-01-12 10:02:02

TCC模式 Seata

2024-06-12 09:06:48

2025-04-30 10:44:02

2024-10-09 14:14:07

2025-05-07 00:10:00

分布式事務TCC模式

2022-06-21 08:27:22

Seata分布式事務

2021-07-07 10:28:09

分布式架構系統

2019-10-09 11:42:10

分布式取錢異步流程

2019-07-09 09:19:51

分布式事務App

2019-06-25 14:44:11

分布式事務數據庫

2024-12-09 09:35:00

2022-07-10 20:24:48

Seata分布式事務

2021-12-20 10:39:30

TopK排序代碼

2022-06-27 08:21:05

Seata分布式事務微服務

2021-10-25 10:33:29

Python 開發編程語言
點贊
收藏

51CTO技術棧公眾號

中日韩一级黄色片| 性欧美1819| 免费在线观看日韩av| 26uuu亚洲电影在线观看| 国产成人在线网站| 国产亚洲一区二区精品| 中文av一区二区三区| 中文在线观看免费| 久久综合久久鬼色中文字| 欧美成人h版在线观看| 中国极品少妇xxxx| 成人在线黄色| 亚洲成av人片一区二区梦乃| 色姑娘综合av| 国产精品一区二区三区四| 第一sis亚洲原创| 精品粉嫩超白一线天av| 男女污污的视频| 国产女人18毛片水真多| 日韩亚洲国产欧美| 丝袜美腿亚洲一区二区| 日本护士做爰视频| 懂色av色香蕉一区二区蜜桃| 欧美视频一二三| 久久天天东北熟女毛茸茸| 精品无人乱码| 成人久久视频在线观看| 91欧美激情另类亚洲| 7799精品视频天天看| 欧美日韩国产综合网| 777午夜精品免费视频| 亚洲一区免费看| 伊人精品一区二区三区| 日韩午夜激情| 欧美二区乱c黑人| 污视频在线观看免费网站| 小视频免费在线观看| 亚洲靠逼com| 亚洲精品影院| 国产在线三区| 久久免费电影网| 开心色怡人综合网站| 成人午夜精品福利免费| 国产一区不卡视频| 成人信息集中地欧美| 中文字幕激情视频| 视频一区国产视频| 日本精品久久电影| 国产精品自拍99| 99国产精品久久久久久久成人热| 欧美国产精品va在线观看| 国产黄色小视频网站| 999久久久亚洲| 久久精品国产一区| 日韩精品一区二区亚洲av性色| 欧美国产美女| 北条麻妃在线一区二区| 久久精品一区二区三区四区五区 | 91官网在线免费观看| 777精品久无码人妻蜜桃| 国模无码一区二区三区| 国产精品12区| 成人疯狂猛交xxx| 国产老女人乱淫免费| 国产呦萝稀缺另类资源| 18成人在线| 日本精品999| 日韩电影在线观看电影| 国产ts人妖一区二区三区 | 亚洲一区二区三区高清不卡| 国产亚洲欧美日韩精品| 久久视频精品在线观看| 97久久视频| 欧美日本高清视频| 天堂网一区二区三区| 丝袜美腿亚洲色图| 成人在线播放av| 成人午夜视频一区二区播放| 91蝌蚪porny九色| 日韩欧美精品一区二区三区经典| 91精品国产综合久久久久久豆腐| 亚洲日本在线a| 国产va亚洲va在线va| yourporn在线观看中文站| 国产精品毛片久久久久久| 青青草免费在线视频观看| 99热99re6国产在线播放| 欧美日韩在线视频观看| 一道本在线免费视频| 色噜噜成人av在线| 亚洲国产福利在线| 久久久久无码精品国产sm果冻| 99精品在线观看| 国模视频一区二区三区| 国产精品传媒在线观看| 国模娜娜一区二区三区| 国产成人精品最新| 国产男男gay体育生网站| 成人aa视频在线观看| 日本高清不卡一区二区三| 国产又黄又粗又猛又爽| 白白色 亚洲乱淫| 五月天久久狠狠| av老司机免费在线| 图片区小说区区亚洲影院| 午夜免费福利在线| 国产精品网在线观看| 亚洲图中文字幕| 精品视频久久久久| 青青青爽久久午夜综合久久午夜 | 日本精品视频在线观看| 色哟哟在线观看视频| 免费v片在线观看| 亚洲精品国产成人久久av盗摄| 先锋在线资源一区二区三区| 羞羞污视频在线观看| 色婷婷一区二区三区四区| 绯色av蜜臀vs少妇| 色综合天天爱| 亚洲美女性视频| 国产精品夜夜夜爽阿娇| 亚洲欧美日韩国产| 成人午夜电影在线播放| 免费黄网在线观看| 91极品美女在线| 第四色在线视频| 午夜欧美精品| 成人午夜黄色影院| av基地在线| 色一情一乱一乱一91av| 好男人香蕉影院| 欧美成人日韩| 91精品啪aⅴ在线观看国产| 成人综合影院| 91国产丝袜在线播放| 图片区偷拍区小说区| 综合激情在线| 91精品久久久久久久久久| 国产高清在线观看| 色综合天天做天天爱| 亚洲av成人片色在线观看高潮| 黄色亚洲精品| 国产精品一区二区三区免费观看| 亚洲第一天堂影院| 亚洲欧美偷拍另类a∨色屁股| 波多结衣在线观看| 日韩电影免费网站| 国产精品视频26uuu| 国产在线网站| 欧美日韩国产123区| 久久午夜精品视频| 久草中文综合在线| 春色成人在线视频| 日本大胆在线观看| 欧美午夜片在线免费观看| 四虎成人免费视频| 亚洲精品1234| 国产欧美亚洲精品| 丝袜美腿美女被狂躁在线观看| 欧美日韩综合色| 国产精品久久久免费看| 黄页视频在线91| 黄色一级片网址| 国产一区二区三区免费观看在线 | 久久久久久国产免费a片| 日精品一区二区| 亚洲视频精品一区| 伊人久久综合网另类网站| 美女福利精品视频| 黄色成人一级片| 岛国av一区二区三区| 中文字幕第4页| 久久国产欧美日韩精品| 男人j进女人j| 美女视频免费精品| 国产精品99一区| www免费在线观看| 亚洲国产精品专区久久| 麻豆精品久久久久久久99蜜桃| 国产日产欧美精品一区二区三区| 国产无遮挡猛进猛出免费软件| 久久久久美女| 久久99导航| www在线观看播放免费视频日本| 欧美大片国产精品| 久久精品视频7| 综合婷婷亚洲小说| 波多野结衣影院| 美女高潮久久久| 99亚洲精品视频| 久久1电影院| 国产日本欧美视频| 丁香花在线电影小说观看| 亚洲最新在线视频| 精品一区二区三区四| 99久久国产免费看| 精品中文字幕av| 菠萝蜜一区二区| 国产精品yjizz| 欧美一区=区三区| 国产69精品久久久久9999| aaa日本高清在线播放免费观看| 日韩欧美中文一区| 老熟妇一区二区三区| 亚洲精品视频一区| 蜜桃传媒一区二区亚洲| 成人小视频免费观看| 波多结衣在线观看| 香蕉成人久久| 日本男女交配视频| 奇米一区二区| 国产精品久久久久久久7电影| 欧美xxxx性xxxxx高清| 中文字幕在线日韩 | 久久伊人精品天天| 国产在线观看黄| 亚洲精品乱码久久久久久金桔影视| 亚洲一级片免费看| 一本大道久久a久久综合婷婷| 久久久精品视频在线| 国产精品久久久久三级| 一级黄色片大全| 久久久国产精品一区二区中文| 日韩精品久久一区二区| 色综合久久一区二区三区| 欧美日韩亚洲一区二区三区四区| 99这里只有精品视频| 久久久久久久国产精品| 麻豆91在线| 中文字幕欧美日韩va免费视频| 天堂a√中文在线| 亚洲福利精品在线| 午夜精品久久久久久久爽| 欧美高清一级片在线| 亚洲天堂国产精品| 欧美怡红院视频| 亚洲精品91天天久久人人| 色八戒一区二区三区| 久久精品无码av| 日韩欧美在线视频观看| 天天综合网久久综合网| 欧美日韩国产综合新一区 | 国产a一区二区| caoporn成人| www.av一区视频| 亚洲小说春色综合另类电影| 91九色在线观看| 91成人福利| 国产精品久久久久av福利动漫| 91麻豆精品国产91久久久久推荐资源| 亚洲xxxx在线| heyzo欧美激情| 久久99精品国产99久久| 免费欧美一区| 日韩影视精品| 欧美高清视频手机在在线| 青青草影院在线观看| 国产主播性色av福利精品一区| 国产精品免费在线| 日韩av不卡一区| 日本一区精品| 91一区二区| 青青草视频在线视频| 亚洲精品1区2区| 免费在线观看的毛片| 日av在线不卡| 中文字幕乱码在线人视频| 成人三级伦理片| 在线观看福利片| 综合久久久久久| 精品在线免费观看视频| 欧美性xxxxx极品娇小| 中文字幕人妻一区二区三区视频| 欧美精品三级日韩久久| www日本高清视频| 精品视频在线导航| 在线国产情侣| 久久欧美在线电影| 日本精品在线中文字幕| 98国产高清一区| 亚洲日本三级| 欧美精品久久96人妻无码| 亚洲毛片视频| www.com黄色片| 成人禁用看黄a在线| 亚洲精品视频网址| 亚洲国产乱码最新视频 | 小泽玛利亚一区二区免费| 亚洲成人一区二区在线观看| 91porny九色| 日韩欧美国产精品| 黄色片在线看| 欧美高清第一页| 黄色精品视频| 国产成人精品日本亚洲11| 精品一区二区三区在线| 日本人妻伦在线中文字幕| 日韩激情一二三区| 制服丝袜av在线| 国产精品传媒入口麻豆| 日本午夜精品理论片a级app发布| 《视频一区视频二区| 日韩精品一区二区三| 欧美精品日韩精品| 久草在线青青草| 久久久久久美女| a一区二区三区亚洲| 日韩福利一区二区三区| 亚洲成人在线| 午夜av中文字幕| 日本一区二区动态图| 日韩av电影网址| 日韩欧美一级片| 午夜免费福利在线观看| 日韩免费视频在线观看| 豆花视频一区二区| 精品国产一区二区三区在线| 男女性色大片免费观看一区二区| 亚洲少妇18p| 亚洲主播在线观看| 国产无遮挡又黄又爽又色| 欧美三级中文字| 国内在线精品| 欧美有码在线观看| 福利在线一区| 日韩精品在线中文字幕| 国产在线视视频有精品| 国产jizz18女人高潮| 91极品美女在线| 国产区高清在线| 欧美做受高潮电影o| 免费看久久久| 久久久亚洲国产精品| 丁香桃色午夜亚洲一区二区三区| 91 在线视频| 555夜色666亚洲国产免| 麻豆av在线免费看| 亚洲精品免费网站| 91精品国产乱码久久久久久久| 男生操女生视频在线观看| 国产精品麻豆一区二区| 在线观看视频二区| 深夜福利国产精品| 亚洲精品aaa| 中文字幕av久久| 国产一区二区三区综合| 亚洲国产精品免费在线观看| 欧美一区午夜视频在线观看| 国产秀色在线www免费观看| 亚洲综合中文字幕在线| 欧美精品首页| 成人性生活免费看| 精品人伦一区二区三区蜜桃免费| 亚洲欧美日韩免费| 丝袜美腿精品国产二区| 久久久加勒比| 一区二区三区四区久久| 国产乱子伦一区二区三区国色天香| 亚洲波多野结衣| 日韩美女主播在线视频一区二区三区| 欧美14一18处毛片| 国产一区在线观| 三级亚洲高清视频| 丰满的亚洲女人毛茸茸| 欧美夫妻性生活| 女子免费在线观看视频www| 久久99精品国产一区二区三区| 日本欧洲一区二区| 国产成人av免费在线观看| 欧美成人激情免费网| av网页在线| 95av在线视频| 99视频+国产日韩欧美| 亚洲精品视频久久久| 欧美午夜在线一二页| 在线电影福利片| 久久99精品久久久久久青青日本| 三级亚洲高清视频| 91嫩草丨国产丨精品| 亚洲国产精品久久久久秋霞蜜臀 | 在线观看91视频| 顶级网黄在线播放| 精品在线观看一区二区| 日韩电影免费在线观看网站| 麻豆视频在线免费看| 亚洲男人天堂视频| 国产一区二区视频在线看| 欧美 丝袜 自拍 制服 另类| 国产精品久久久久久久久图文区 | 日本成年人网址| 亚洲欧美自拍偷拍| 四虎在线观看| 亚洲最大av网站| 久久亚洲欧美| 国产真实的和子乱拍在线观看| 国产午夜精品一区二区三区| julia中文字幕一区二区99在线| 日本激情视频在线| 黄网站色欧美视频| 91麻豆免费在线视频|