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

一次給女朋友轉(zhuǎn)賬引發(fā)我對分布式事務(wù)的思考

開發(fā) 前端 分布式
前兩天發(fā)了工資,第一反應(yīng)是想著要給遠(yuǎn)方的女朋友一點驚喜!于是打開了平安銀行的APP給女朋友轉(zhuǎn)點錢!填寫上對方招商銀行卡的卡號、開戶名,一鍵轉(zhuǎn)賬!搞定!在我點擊的那瞬間,就收到了app的賬戶變動的提醒,并且出現(xiàn)了圖一所示的提示界面:“處理中,正在等待對方銀行返回結(jié)果…”。

[[268931]]

前兩天發(fā)了工資,***反應(yīng)是想著要給遠(yuǎn)方的女朋友一點驚喜!于是打開了平安銀行的APP給女朋友轉(zhuǎn)點錢!填寫上對方招商銀行卡的卡號、開戶名,一鍵轉(zhuǎn)賬!搞定!在我點擊的那瞬間,就收到了app的賬戶變動的提醒,并且出現(xiàn)了圖一所示的提示界面:“處理中,正在等待對方銀行返回結(jié)果…”。嗯!畢竟是跨行轉(zhuǎn)賬嘛,等個幾秒也正常!腦海開始浮現(xiàn)出女朋友收到轉(zhuǎn)賬后驚喜與感動的畫面!

Java干貨分享:一次給女朋友轉(zhuǎn)賬引發(fā)我對分布式事務(wù)的思考

然而,一切并沒有那么順利,剛過一會兒,app卻如圖二所示的提示我“由于收款人戶名不符”導(dǎo)致轉(zhuǎn)賬失敗!!!

Java干貨分享:一次給女朋友轉(zhuǎn)賬引發(fā)我對分布式事務(wù)的思考

剛剛都已經(jīng)從我卡里扣過錢了,現(xiàn)在卻提示我轉(zhuǎn)賬失敗,銀行會不會把我的錢給吞了?轉(zhuǎn)賬失敗的錢還能退換給我嗎?正在我緊張、焦慮、坐立不安之時又收到一條app沖正的消息,剛剛轉(zhuǎn)賬失敗的錢已經(jīng)退還給我了,看來我多慮了……這也證明咱平安銀行的app還是比較安全靠譜的!

為啥從我卡里扣錢那么迅速,而對方卻要幾秒才能到賬?并且轉(zhuǎn)賬失敗后,扣除的錢還能及時的返還到我的卡里?萬一錢返還失敗怎么辦?又或者我轉(zhuǎn)一次錢,對方卻收到了兩次轉(zhuǎn)賬的申請又該如何?帶著這些問題,我腦海中浮現(xiàn)出“事務(wù)”二字!

在我們還在“牙牙學(xué)語”的時候,老師經(jīng)常會通過轉(zhuǎn)賬的栗子來跟我們講解事務(wù),但跟這里場景不一樣的是,老師講的是本地事務(wù),而這里面對的是分布式事務(wù)!我們先來簡單回顧一下本地事務(wù)!

本地事務(wù)

談到本地事務(wù),大家可能都很熟悉,因為這個數(shù)據(jù)庫引擎層面能支持的!所以也稱數(shù)據(jù)庫事務(wù),數(shù)據(jù)庫事務(wù)四大特征:原子性(A),一致性(C),隔離性(I)和持久性(D),而在這四大特性中,我認(rèn)為 一致性 是最基本的特性,其它的三個特性都為了保證一致性而存在的!

回到學(xué)生時代老師給我們舉的經(jīng)典栗子,A賬戶給B賬戶轉(zhuǎn)賬100元(A、B處于同一個庫中),如果A的賬戶發(fā)生扣款,B的賬戶卻沒有到賬,這就出現(xiàn)了 數(shù)據(jù)的不一致 !為了保證數(shù)據(jù)的一致性,數(shù)據(jù)庫的事務(wù)機(jī)制會讓A賬戶扣款和B在賬戶到賬的兩個操作要么同時成功,如果有一個操作失敗,則多個操作同時回滾,這就是事務(wù)的 原子性 ,為了保證事務(wù)操作的原子性,就必須實現(xiàn)基于日志的REDO/UNDO機(jī)制!但是,僅有原子性還不夠,因為我們的系統(tǒng)是運行在多線程環(huán)境下,如果多個事務(wù)并行,即使保證了每一個事務(wù)的原子性,仍然會出現(xiàn)數(shù)據(jù)不一致的情況。例如A賬戶原來有200元的余額, A賬戶給B賬戶轉(zhuǎn)賬100元,先讀取A賬戶的余額,然后在這個值上減去100元,但是在這兩個操作之間,A賬戶又給C賬戶轉(zhuǎn)賬100元,那么***的結(jié)果應(yīng)該是A減去了200元。但事實上,A賬戶給B賬戶最終完成轉(zhuǎn)賬后,A賬戶只減掉了100元,因為A賬戶向C賬戶轉(zhuǎn)賬減掉的100元被覆蓋了!所以為了保證并發(fā)情況下的一致性,又引入的 隔離性 ,即多個事務(wù)并發(fā)執(zhí)行后的狀態(tài),和它們串行執(zhí)行后的狀態(tài)是等價的!隔離性又有多種隔離級別,為了實現(xiàn)隔離性(最終都是為了保證一致性)數(shù)據(jù)庫又引入了悲觀鎖、樂觀鎖等等……本文的主題是分布式事務(wù),所以本地事務(wù)就只是簡單回顧一下,需要記住的一點是,事務(wù)是為了保證數(shù)據(jù)的 一致性 !

分布式理論

還記得剛畢業(yè)那年,帶著滿腔的熱血就去到了一家互聯(lián)網(wǎng)公司,領(lǐng)導(dǎo)給我的***個任務(wù)就是在列表上增加一個修改數(shù)據(jù)的功能。這能難倒我?我分分鐘給你搞出來!不就是在列表上增加了一個“修改”按鈕,點擊按鈕彈出框修改后保存就好了么。然而一切不像我想象的那么順利,點擊保存并刷新列表后,頁面上的數(shù)據(jù)還是顯示的修改之前的內(nèi)容,像沒有修改成功一樣!過一會兒再刷新列表,數(shù)據(jù)就能正常顯示了!測試多次之后都是這樣!沒見過什么大場面的我開始有點慌了,是我哪里寫得不對么?最終,我不得不求助組內(nèi)經(jīng)驗比較豐富的前輩!他深吸了一口氣告訴我說:“畢竟是剛畢業(yè)的小伙子啊!我來跟你講講原因吧!我們的數(shù)據(jù)庫是做了讀寫分離的,部分讀庫與寫庫在不同的網(wǎng)絡(luò)分區(qū)。你的數(shù)據(jù)更新到了寫庫,而讀數(shù)據(jù)的時候是從讀庫讀取的。更新到寫庫的數(shù)據(jù)同步到讀庫是有一定的延遲的,也就是說讀庫與寫庫會有短暫的數(shù)據(jù)不一致”! “這樣不會體驗不好么?為什么不能做到寫入的數(shù)據(jù)立馬能讀出來?那我這個功能該怎么實現(xiàn)呢?” 面對我的一堆問題,同事有些不耐煩的說:“聽說過CAP理論嗎?你先自己去了解一下吧”!是我開始查閱各種資料去了解這個陌生的詞背后的秘密!

CAP理論是由加州大學(xué)Eric Brewer教授提出來的,這個理論告訴我們,一個分布式系統(tǒng)不可能同時滿足一致性(Consistency)、可用性(Availability)、分區(qū)容錯性(Partition tolerance)這三個基本需求,最多只能同時滿足其中兩項。

一致性:這里的一致性是指數(shù)據(jù)的強(qiáng)一致,也稱為線性一致性。是指在分布式環(huán)境中,數(shù)據(jù)在多個副本之間是否能夠保持一致的特性。也就是說對某個數(shù)據(jù)進(jìn)行寫操作后立馬執(zhí)行讀操作,必須能讀取到剛剛寫入的值。(any read operation that begins after a write operation completes must return that value, or the result of a later write operation)

可用性:任意被無故障節(jié)點接收到的請求,必須能夠在有限的時間內(nèi)響應(yīng)結(jié)果。(every request received by a non-failing node in the system must result in a response)

分區(qū)容錯性:如果集群中的機(jī)器被分成了兩部分,這兩部分不能互相通信,系統(tǒng)是否能繼續(xù)正常工作。(the network will be allowed to lose arbitrarily many messages sent from one node to another)

在分布式系統(tǒng)中,分區(qū)容錯性是基本要保證的。也就是說只能在一致性和可用性之間進(jìn)行取舍。一致性和可用性,為什么不可能同時成立?回到之前修改列表的例子,由于數(shù)據(jù)會分布在不同的網(wǎng)絡(luò)分區(qū),必然會存在數(shù)據(jù)同步的問題,而同步會存在網(wǎng)絡(luò)延遲、異常等問題,所以會出現(xiàn)數(shù)據(jù)的不一致!如果要保證數(shù)據(jù)的一致性,那么就必須在對寫庫進(jìn)行操作時,鎖定其他讀庫的操作。只有寫入成功且完成數(shù)據(jù)同步后,才能重新放開讀寫,而這樣在鎖定期間,系統(tǒng)喪失了可用性。更詳細(xì)關(guān)于CAP理論可以參考 這篇文章 ,該文章講得比較通俗易懂!

分布式事務(wù)

分布式事務(wù)就是在分布式的場景下,需要滿足事務(wù)的需求!上篇文章我們聊過了消息中間件,那這篇文章我們要聊的是分布式事務(wù),把兩者一結(jié)合,便有了基于消息中間件的分布式事務(wù)解決方案!不管是本地事務(wù),還是分布式事務(wù),都是為了解決數(shù)據(jù)的一致性問題! 一致性 這個詞咱們前面多次提及!與本地事務(wù)不同的是,分布式事務(wù)需要保證的是分布式環(huán)境下,不同數(shù)據(jù)庫表中的數(shù)據(jù)的一致性問題。分布式事務(wù)的解決方案有多種,如XA協(xié)議、TCC三階段提交、基于消息隊列等等,本文只會涉及基于消息隊列的解決方案!

本地事務(wù)講到了一致性,分布式事務(wù)不可避免的面臨著一致性的問題!回到最開始跨行轉(zhuǎn)賬的例子,如果A銀行用戶向B銀行用戶轉(zhuǎn)賬,正常流程應(yīng)該是:

1、A銀行對轉(zhuǎn)出賬戶執(zhí)行檢查校驗,進(jìn)行金額扣減。

2、A銀行同步調(diào)用B銀行轉(zhuǎn)賬接口。

3、B銀行對轉(zhuǎn)入賬戶進(jìn)行檢查校驗,進(jìn)行金額增加。

4、B銀行返回處理結(jié)果給A銀行。

Java干貨分享:一次給女朋友轉(zhuǎn)賬引發(fā)我對分布式事務(wù)的思考

在正常情況對一致性要求不高的場景,這樣的設(shè)計是可以滿足需求的。但是像銀行這樣的系統(tǒng),如果這樣實現(xiàn)大概早就破產(chǎn)了吧。我們先看看這樣的設(shè)計最主要的問題:

1、同步調(diào)用遠(yuǎn)程接口,如果接口比較耗時,會導(dǎo)致主線程阻塞時間較長。

2、流量不能很好控制,A銀行系統(tǒng)的流量高峰可能壓垮B銀行系統(tǒng)(當(dāng)然B銀行肯定會有自己的限流機(jī)制)。

3、如果“第1步”剛執(zhí)行完,系統(tǒng)由于某種原因宕機(jī)了,那會導(dǎo)致A銀行賬戶扣款了,但是B銀行沒有收到接口的調(diào)用,這就出現(xiàn)了兩個系統(tǒng)數(shù)據(jù)的不一致。

4、如果在執(zhí)行“第3步”后,B銀行由于某種原因宕機(jī)了而無法正確回應(yīng)請求(實際上轉(zhuǎn)賬操作在B銀行系統(tǒng)已經(jīng)執(zhí)行且入庫),這時候A銀行等待接口響應(yīng)會異常,誤以為轉(zhuǎn)賬失敗而回滾“第1步”操作,這也會出現(xiàn)了兩個系統(tǒng)數(shù)據(jù)的不一致。

對于問題的1、2都很好解決,如果對消息隊列熟悉的朋友應(yīng)該很快能想到可以引入消息中間件進(jìn)行異步和削峰處理,于是又重新設(shè)計了一個方案,流程如下:

1、A銀行對賬戶進(jìn)行檢查校驗,進(jìn)行金額扣減。

2、將對B銀行的請求異步寫入隊列,主線程返回。

3、啟動后臺程序從隊列獲取待處理數(shù)據(jù)。

4、后臺程序?qū)銀行接口進(jìn)行遠(yuǎn)程調(diào)用。

5、B銀行對轉(zhuǎn)入賬戶進(jìn)行檢查校驗,進(jìn)行金額增加。

6、B銀行處理完成回調(diào)A銀行接口通知處理結(jié)果。

Java干貨分享:一次給女朋友轉(zhuǎn)賬引發(fā)我對分布式事務(wù)的思考

通過上面的圖我們能看到,引入消息隊列后,系統(tǒng)的復(fù)雜性瞬間提升了,雖然彌補了我們***種方案的幾個不足點,但也帶來了更多的問題,比如消息隊列系統(tǒng)本身的可用性、消息隊列的延遲等等!并且,這樣的設(shè)計依然沒有解決我們面臨的核心問題- 數(shù)據(jù)的一致性 !

1、如果“第1步”剛執(zhí)行完,系統(tǒng)由于某種原因宕機(jī)了,那會導(dǎo)致A銀行賬戶扣款了,但是寫入消息隊列失敗,無法進(jìn)行B銀行接口調(diào)用,從而導(dǎo)致數(shù)據(jù)不一致。

2、如果B銀行在執(zhí)行“第5步”時由于校驗失敗而未能成功轉(zhuǎn)賬,在回調(diào)A銀行接口通知回滾時網(wǎng)絡(luò)異常或者宕機(jī),會導(dǎo)致A銀行轉(zhuǎn)賬無法完成回滾,從而導(dǎo)致數(shù)據(jù)不一致。

面對上述問題,我們不得不對系統(tǒng)再次進(jìn)行升級改造。為了解決“A銀行賬戶扣款了,但是寫入消息隊列失敗”的問題,我們需要借助一個轉(zhuǎn)賬日志表,或者叫轉(zhuǎn)賬流水表,該表簡單的設(shè)計如下:

字段名稱字段描述tId交易流水idaccountNo轉(zhuǎn)出賬戶卡號targetBankNo目標(biāo)銀行編碼targetAccountNo目標(biāo)銀行卡號amount交易金額status交易狀態(tài)(待處理、處理成功、處理失敗)lastUpdateTime***更新時間

這個流水表需要怎么用呢?我們在“第1步”進(jìn)行扣款時,同時往流水表寫入一條操作流水,狀態(tài)為“待處理”,并且這兩個操作必須是原子的,也就是說必須通 過本地事務(wù)保證 這兩個操作要么同時成功,要么同時失敗!這就保證了只要轉(zhuǎn)賬扣款成功,必定會記錄一條狀態(tài)為“待處理”的轉(zhuǎn)賬流水。如果在這一步失敗了,那自然就是轉(zhuǎn)賬失敗,沒有后續(xù)操作了。如果這步操作后系統(tǒng)宕機(jī)了導(dǎo)致沒有將消息成功寫入消息隊列(也就是“第2步”)也沒關(guān)系,因為我們的流水?dāng)?shù)據(jù)已經(jīng)持久化了!這時候我們只需要加入一個后臺線程進(jìn)行補償,定期的從轉(zhuǎn)賬流水表中讀取狀態(tài)為“待處理”且***更新的時間距當(dāng)前時間大于某個閾值的數(shù)據(jù),重新放入消息隊列進(jìn)行補償。這樣,就保證了消息即使丟失,也會有補償機(jī)制!B銀行在處理完轉(zhuǎn)賬請求后會回調(diào)A銀行的接口通知轉(zhuǎn)賬的狀態(tài),從而更新A銀行流水表中的狀態(tài)字段!這樣就***解決了上一個方案中的兩個不足點。系統(tǒng)設(shè)計圖如下:

Java干貨分享:一次給女朋友轉(zhuǎn)賬引發(fā)我對分布式事務(wù)的思考

到目前為止,我們很好的解決了消息丟失的問題,保證了只要A銀行轉(zhuǎn)賬操作成功,轉(zhuǎn)賬的請求就一定能發(fā)送到B銀行!但是該方案又引入了一個問題,通過后臺線程輪詢將消息放入消息隊列處理,同一次轉(zhuǎn)賬請求可能會出現(xiàn)多次放入消息隊列而多次消費的情況,這樣B銀行會對同一轉(zhuǎn)賬多次處理導(dǎo)致數(shù)據(jù)出現(xiàn)不一致!那怎么保證B銀行轉(zhuǎn)賬接口的冪等性呢?

同樣的,我們可以在B銀行系統(tǒng)中需要增加一個轉(zhuǎn)賬日志表,或者叫轉(zhuǎn)賬流水表,B銀行每次接收到轉(zhuǎn)賬請求,在對賬戶進(jìn)行操作的時候同時往轉(zhuǎn)賬日志表中插入一條轉(zhuǎn)賬日志記錄,同樣這兩個操作也必須是原子的!在接收到轉(zhuǎn)賬請求后,首先根據(jù)唯一轉(zhuǎn)賬流水Id在日志表中查找判斷該轉(zhuǎn)賬是否已經(jīng)處理過,如果未處理過則進(jìn)行處理,否則直接回調(diào)返回! 最終的架構(gòu)圖如下:

Java干貨分享:一次給女朋友轉(zhuǎn)賬引發(fā)我對分布式事務(wù)的思考

所以,我們這里最核心的就是A銀行通過 本地事務(wù) 保證日志記錄+ 后臺線程輪詢 保證消息不丟失。B銀行通過 本地事務(wù) 保證日志記錄從而保證消息不重復(fù)消費!B銀行在回調(diào)A銀行的接口時會通知處理結(jié)果,如果轉(zhuǎn)賬失敗,A銀行會根據(jù)處理結(jié)果進(jìn)行回滾。

當(dāng)然,分布式事務(wù)***的解決方案是盡量避免出現(xiàn)分布式事務(wù)!

責(zé)任編輯:武曉燕 來源: 今日頭條
相關(guān)推薦

2019-07-09 09:19:51

分布式事務(wù)App

2019-10-09 11:42:10

分布式取錢異步流程

2020-08-14 09:04:34

分布式事務(wù)

2017-10-24 11:39:29

銀行轉(zhuǎn)賬數(shù)據(jù)庫分布式事務(wù)

2022-05-19 12:14:22

分布式開發(fā)框架

2018-12-27 09:09:35

2019-11-04 10:37:53

MongoDB宕機(jī)日志

2021-07-07 10:28:09

分布式架構(gòu)系統(tǒng)

2024-05-08 10:20:00

Redis分布式

2022-11-29 21:26:26

跨域配置

2023-01-26 00:22:01

分布式架構(gòu)大文件

2015-07-17 10:05:03

面試思考

2022-06-27 08:21:05

Seata分布式事務(wù)微服務(wù)

2021-01-19 05:43:33

分布式2PC3PC

2024-04-17 08:42:15

Go語言分布式鎖

2022-11-24 17:34:04

TCC分布式

2018-08-14 09:28:40

分布式事務(wù) ACID

2022-06-21 08:27:22

Seata分布式事務(wù)

2017-07-26 15:08:05

大數(shù)據(jù)分布式事務(wù)

2021-10-11 19:30:02

分布式事務(wù)CAP
點贊
收藏

51CTO技術(shù)棧公眾號

五月天亚洲综合小说网| 最好看的2019年中文视频| 精品少妇一区二区三区在线| 男人天堂网在线观看| 久久精品首页| 久久久国产精品亚洲一区| 女同性αv亚洲女同志| 一区二区三区电影大全| 亚洲欧洲av一区二区三区久久| av色综合网| 波多野结衣小视频| 欧美在线观看天堂一区二区三区| 亚洲第一中文字幕| 日本激情综合网| 乱人伦视频在线| 伊人夜夜躁av伊人久久| 日韩福利影院| 欧美一区,二区| 国内久久精品视频| 日韩av色综合| 久久精品国产亚洲av麻豆色欲 | 成人性生交大片免费看无遮挡aⅴ| 在线视频成人| 欧美中文字幕一区| 久久亚洲精品无码va白人极品| 最新国产在线观看| 久久综合99re88久久爱| 成人在线观看91| 国产又黄又猛又爽| 奇米精品一区二区三区在线观看| 午夜免费日韩视频| 青青草原在线免费观看| 秋霞欧美视频| 亚洲一区二区久久久| 中文乱码人妻一区二区三区视频| 久久一级大片| 91精品国产综合久久久蜜臀图片| av免费网站观看| 伊人久久国产| 欧美丝袜一区二区| 免费在线观看亚洲视频| 99久久精品免费看国产小宝寻花| 一二三区精品福利视频| 亚洲综合激情五月| 免费在线观看av片| 国产精品国产三级国产aⅴ无密码| 欧美在线3区| 欧美3p视频在线观看| 99久久伊人网影院| 国产一区二区三区四区五区在线| 成人爽a毛片一区二区| 国产裸体歌舞团一区二区| 成人做爰www免费看视频网站| 中文字幕在线观看欧美| 蜜桃传媒麻豆第一区在线观看| 国产精品美女呻吟| 少妇又紧又色又爽又刺激视频| 日韩成人一级大片| 国产精品一区久久| 国产尤物视频在线观看| 激情成人综合网| 粉嫩av免费一区二区三区| 午夜精品久久久久久久99老熟妇| 国产aⅴ综合色| 国产日韩在线一区二区三区| 天堂8在线视频| 久久久青草青青国产亚洲免观| 蜜桃av色综合| a天堂中文在线88| 亚洲图片激情小说| 日韩视频 中文字幕| 波多野结衣中文字幕久久| 五月开心婷婷久久| 91视频免费版污| 国产视频一区二| 亚洲精品福利资源站| 特大黑人巨人吊xxxx| 狠狠综合久久av一区二区蜜桃| 最近中文字幕日韩精品| 黄色在线观看免费| 亚洲美女少妇无套啪啪呻吟| 国产精品黄色影片导航在线观看| 国产尤物在线观看| 成人av影院在线| 日韩欧美电影一区二区| 国产激情小视频在线| 亚洲图片一区二区| 国产精品久久久久9999小说| 国产亚洲亚洲国产一二区| 亚洲激情视频在线播放| 亚洲天堂最新地址| 精品动漫一区| 国产精品日韩欧美综合| 精品免费久久久| 久久精品日产第一区二区三区高清版 | 国产在线自天天| 亚洲精品视频在线观看网站| 免费在线观看亚洲视频| 国产伊人久久| 亚洲激情在线视频| 永久av免费网站| 亚洲欧美成人综合| 91免费精品视频| 毛片在线播放网址| 亚洲精品国产无套在线观| 国产免费一区二区三区视频| 高清一区二区三区av| 亚洲精品中文字| 印度午夜性春猛xxx交| 每日更新成人在线视频| 91原创国产| 国产福利电影在线| 五月婷婷激情综合网| 在线观看免费av网址| 免费成人网www| 久久久久久久久久久免费精品 | 日韩视频永久免费| 欧美18—19性高清hd4k| 一区免费视频| 91精品久久久久久久久久入口 | 久久久久久亚洲| 国产绿帽刺激高潮对白| 久久九九影视网| 成人毛片一区二区| 中文字幕日韩在线| 久久婷婷国产麻豆91天堂| 亚洲大尺度在线观看| 99久久久精品免费观看国产蜜| 日本天堂免费a| 成人97精品毛片免费看| 在线观看亚洲视频| jizz国产在线观看| 久久亚洲综合色一区二区三区| 国产天堂视频在线观看| 麻豆视频久久| 萌白酱国产一区二区| 91在线公开视频| 亚洲欧美在线视频观看| 色播五月激情五月| 欧美综合久久| 国产精品自拍偷拍视频| seseavlu视频在线| 欧美性感一类影片在线播放| 波多野结衣 在线| 鲁大师影院一区二区三区| 久久伊人资源站| 中文在线а√天堂| 亚洲欧美日韩中文在线| 超碰在线观看91| 国产蜜臀av在线一区二区三区| 91福利视频在线观看| 精品www久久久久奶水| 欧洲午夜精品| 久久国产精品久久久久| 国产亲伦免费视频播放| 亚洲人精品一区| 99国产精品免费视频| 欧美日韩国产免费观看| 97久久天天综合色天天综合色hd| 黄色成人在线网| 亚洲国产成人精品一区二区| 99精品在线播放| 中文字幕第一页久久| 久热精品在线观看视频| 欧美成人自拍| 99一区二区三区| 蜜桃av.网站在线观看| 亚洲欧美变态国产另类| 日本妇乱大交xxxxx| 中文字幕在线观看不卡视频| av在线免费观看不卡| 亚洲国产精品第一区二区三区| 久久久一本精品99久久精品| 免费观看成人性生生活片| 日韩一区av在线| 亚洲男女视频在线观看| 欧美午夜久久久| 久久久久99精品成人| 国产成人免费在线视频| 逼特逼视频在线| 国产精品国产三级国产在线观看| 99www免费人成精品| 伊人久久av| 免费不卡在线观看av| 日韩一区免费视频| 在线观看亚洲专区| 青青草成人免费| 久久久不卡网国产精品一区| 超碰人人草人人| 国产精品呻吟| 三年中国中文在线观看免费播放| 国产精品香蕉| 国产精品一区二区三区成人| av伦理在线| 精品一区二区亚洲| 国产精品国产三级国产aⅴ| 岛国av一区二区三区| 日韩三级久久久| 久久综合九色综合欧美亚洲| 天天综合成人网| 亚洲一区日本| 精品人妻大屁股白浆无码| 久久av资源| 国产98在线|日韩| 欧美在线一级| 国产z一区二区三区| 激情av在线| 丝袜情趣国产精品| 视频二区在线| 欧美成人r级一区二区三区| 欧美成人一区二区视频| 精品久久久久久中文字幕一区奶水| www.99re6| 久久久亚洲欧洲日产国码αv| 在线观看亚洲免费视频| 久久aⅴ国产欧美74aaa| 久久久久久久久久久免费视频| 午夜精品亚洲| 中文精品视频一区二区在线观看| 最新国产一区| 精品伦理一区二区三区| 深夜福利一区| 亚洲在线第一页| 国产欧美在线观看免费| 国产91网红主播在线观看| 18video性欧美19sex高清| 久久成人人人人精品欧| 日本视频在线免费观看| 一区二区三区无码高清视频| 视频午夜在线| 亚洲女人初尝黑人巨大| 亚洲精品18p| 欧美成人一区二区三区片免费 | 日韩欧美二区三区| 中文字幕一区二区三区四区免费看 | 中国一级大黄大黄大色毛片| 日韩成人精品一区| 亚洲国产精品一区二区第一页| 久久av超碰| 欧美影视一区二区| 国产麻豆一区二区三区精品视频| 鲁丝片一区二区三区| 欧美激情久久久久久久久久久| 国产精选在线观看91| 国产一区福利| 久久久综合香蕉尹人综合网| 亚洲成人一品| 欧美系列一区| 日本欧美肥老太交大片| 亚洲人成网站在线观看播放| 日韩一区自拍| 国产精品88久久久久久妇女| 午夜久久黄色| 成 年 人 黄 色 大 片大 全| 免费永久网站黄欧美| 国产三区在线视频| 日韩电影一二三区| 五月花丁香婷婷| 国产高清在线观看免费不卡| caopor在线| 久久网站最新地址| 在线观看免费黄色网址| 亚洲欧美日本韩国| 久久午夜无码鲁丝片| 精品久久久久久| 成人免费视频国产免费| 欧美高清hd18日本| 亚洲av综合色区无码一二三区| 亚洲精品456在线播放狼人| 黄色软件在线观看| 久久视频在线看| 182在线播放| 全亚洲最色的网站在线观看| 日韩午夜视频在线| 国产高清自拍一区| 国产一区二区欧美| 国产精品一区在线免费观看| 99精品欧美| av网站在线不卡| 成人综合在线网站| 亚洲理论片在线观看| 亚洲婷婷国产精品电影人久久| 久久免费视频精品| 91精品福利在线| 亚洲精品久久久久久久久久| 亚洲免费成人av电影| 看黄网站在线| 欧美中文字幕在线| 疯狂欧洲av久久成人av电影 | 丝袜视频国产在线播放| 中文字幕亚洲欧美日韩2019| 欧美人与禽性xxxxx杂性| 欧美专区在线视频| 欧美9999| 日韩av免费电影| 黄色亚洲在线| 91制片厂毛片| 99re这里只有精品首页| 午夜成人亚洲理伦片在线观看| 亚洲电影一级黄| 一本一道精品欧美中文字幕| 精品爽片免费看久久| www在线视频| 国产精品99一区| 婷婷亚洲精品| 粉嫩av一区二区三区天美传媒| 久久婷婷丁香| 欧美在线一级片| 自拍偷拍国产精品| 免费看av在线| 亚洲欧美日韩网| 牛牛精品一区二区| 岛国视频一区免费观看| 亚欧美无遮挡hd高清在线视频| 日韩av播放器| 99精品视频在线观看免费| 日韩女优一区二区| 欧美日韩dvd在线观看| 韩国三级在线观看久| 91精品国产自产91精品| 蜜桃在线一区| 国产又黄又爽免费视频| 免费成人你懂的| 亚洲黄色小说视频| 欧美性xxxx18| 亚洲 小说区 图片区 都市| 国模精品视频一区二区三区| 日本精品视频| 久久免费一级片| 精品一区二区在线观看| 快灬快灬一下爽蜜桃在线观看| 一本久久精品一区二区| 三级做a全过程在线观看| 午夜精品久久久久久久白皮肤 | 亚洲激情电影在线| 天堂va蜜桃一区二区三区漫画版 | 亚洲色图.com| 一个人看的www日本高清视频| 国产午夜精品美女视频明星a级| 亚洲男人av| 欧美精品欧美精品| 久色成人在线| 色欲AV无码精品一区二区久久| 欧美在线色视频| 999在线视频| 国产日韩专区在线| 91精品啪在线观看国产81旧版| 亚洲日本黄色片| 夜夜爽夜夜爽精品视频| 好吊视频一二三区| 91av在线免费观看视频| 亚洲精品国产动漫| mm1313亚洲国产精品无码试看| 国产日产欧产精品推荐色 | 美女一区二区视频| 5566中文字幕| 精品欧美一区二区三区精品久久| 黄色成人在线网| 免费观看成人高| 男女男精品视频| av激情在线观看| 亚洲成年人在线| 在线免费日韩片| 午夜精品区一区二区三| 国产一区二区在线影院| 国产性猛交普通话对白| 日韩高清不卡av| 99久久伊人| 成人黄色片免费| 91蜜桃在线免费视频| 中文字幕免费观看视频| 久久国产精品亚洲| 久久亚洲黄色| av网站在线不卡| 亚洲午夜久久久| 大片免费播放在线视频| 成人黄色片网站| 国产日韩一区| 黄色国产在线播放| 欧美不卡一区二区| 日韩性xxx| japanese在线视频| 久久综合丝袜日本网| 一起草av在线| 91地址最新发布| 91精品蜜臀一区二区三区在线| 黄色a一级视频| 欧美一级日韩免费不卡| 中文字幕在线高清| 99中文字幕在线观看| 久久在线免费观看| av天堂一区二区三区| 日本欧美爱爱爱| 欧美激情亚洲| 精品熟妇无码av免费久久| 亚洲成在人线av| 91精品一区| 国产a级片免费观看| 一二三四区精品视频| 尤物网在线观看|