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

1次給女朋友的轉(zhuǎn)賬讓我明白了“分布式事務(wù)”

開發(fā) 架構(gòu) 分布式
前兩天發(fā)了工資,第一反應(yīng)是想著要給遠(yuǎn)方的女朋友一點驚喜!于是打開了平安銀行的 App 給女朋友轉(zhuǎn)點錢!填寫上對方招商銀行卡的卡號、開戶名,一鍵轉(zhuǎn)賬!搞定!

前兩天發(fā)了工資,***反應(yīng)是想著要給遠(yuǎn)方的女朋友一點驚喜!于是打開了平安銀行的 App 給女朋友轉(zhuǎn)點錢!填寫上對方招商銀行卡的卡號、開戶名,一鍵轉(zhuǎn)賬!搞定!

[[270009]]

圖片來自包圖網(wǎng)

在我點擊的那瞬間,就收到了 App 的賬戶變動的提醒,并且出現(xiàn)了圖一所示的提示界面:“處理中,正在等待對方銀行返回結(jié)果…”。

嗯!畢竟是跨行轉(zhuǎn)賬嘛,等個幾秒也正常!腦海開始浮現(xiàn)出女朋友收到轉(zhuǎn)賬后驚喜與感動的畫面!

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

剛剛都已經(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ù)機制會讓 A 賬戶扣款和 B 賬戶到賬的兩個操作要么同時成功,如果有一個操作失敗,則多個操作同時回滾。

這就是事務(wù)的原子性,為了保證事務(wù)操作的原子性,就必須實現(xiàn)基于日志的 REDO/UNDO 機制!

但是,僅有原子性還不夠,因為我們的系統(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ù)的強一致,也稱為線性一致性,是指在分布式環(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ū)容錯性:如果集群中的機器被分成了兩部分,這兩部分不能互相通信,系統(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)該是:

  • A 銀行對轉(zhuǎn)出賬戶執(zhí)行檢查校驗,進(jìn)行金額扣減。
  • A 銀行同步調(diào)用 B 銀行轉(zhuǎn)賬接口。
  • B 銀行對轉(zhuǎn)入賬戶進(jìn)行檢查校驗,進(jìn)行金額增加。
  • B 銀行返回處理結(jié)果給A銀行。

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

我們先看看這樣的設(shè)計存在的主要問題:

  • 同步調(diào)用遠(yuǎn)程接口,如果接口比較耗時,會導(dǎo)致主線程阻塞時間較長。
  • 流量不能很好控制,A 銀行系統(tǒng)的流量高峰可能壓垮 B 銀行系統(tǒng)(當(dāng)然 B 銀行肯定會有自己的限流機制)。
  • 如果“第 1 步”剛執(zhí)行完,系統(tǒng)由于某種原因宕機了,那會導(dǎo)致 A 銀行賬戶扣款了,但是 B 銀行沒有收到接口的調(diào)用,這就出現(xiàn)了兩個系統(tǒng)數(shù)據(jù)的不一致。
  • 如果在執(zhí)行“第 3 步”后,B 銀行由于某種原因宕機了而無法正確回應(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è)計了一個方案,流程如下:

  • A 銀行對賬戶進(jìn)行檢查校驗,進(jìn)行金額扣減。
  • 將對 B 銀行的請求異步寫入隊列,主線程返回。
  • 啟動后臺程序從隊列獲取待處理數(shù)據(jù)。
  • 后臺程序?qū)?B 銀行接口進(jìn)行遠(yuǎn)程調(diào)用。
  • B 銀行對轉(zhuǎn)入賬戶進(jìn)行檢查校驗,進(jìn)行金額增加。
  • B 銀行處理完成回調(diào) A 銀行接口通知處理結(jié)果。

通過上面的圖我們能看到,引入消息隊列后,系統(tǒng)的復(fù)雜性瞬間提升了,雖然彌補了我們***種方案的幾個不足點,但也帶來了更多的問題。

比如消息隊列系統(tǒng)本身的可用性、消息隊列的延遲等等!并且,這樣的設(shè)計依然沒有解決我們面臨的核心問題,數(shù)據(jù)的一致性!

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

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

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

這個流水表需要怎么用呢?我們在“第 1 步”進(jìn)行扣款時,同時往流水表寫入一條操作流水,狀態(tài)為“待處理”。

并且這兩個操作必須是原子的,也就是說必須通過本地事務(wù)保證這兩個操作要么同時成功,要么同時失敗!

這就保證了只要轉(zhuǎn)賬扣款成功,必定會記錄一條狀態(tài)為“待處理”的轉(zhuǎn)賬流水。

如果在這一步失敗了,那自然就是轉(zhuǎn)賬失敗,沒有后續(xù)操作了。如果這步操作后系統(tǒng)宕機了導(dǎo)致沒有將消息成功寫入消息隊列(也就是“第2步”)也沒關(guān)系,因為我們的流水?dāng)?shù)據(jù)已經(jīng)持久化了!

這時候我們只需要加入一個后臺線程進(jìn)行補償,定期的從轉(zhuǎn)賬流水表中讀取狀態(tài)為“待處理”且***更新的時間距當(dāng)前時間大于某個閾值的數(shù)據(jù),重新放入消息隊列進(jìn)行補償。

這樣,就保證了消息即使丟失,也會有補償機制!B 銀行在處理完轉(zhuǎn)賬請求后會回調(diào) A 銀行的接口通知轉(zhuǎn)賬的狀態(tài),從而更新 A 銀行流水表中的狀態(tài)字段!這樣就***解決了上一個方案中的兩個不足點。

系統(tǒng)設(shè)計圖如下:

到目前為止,我們很好的解決了消息丟失的問題,保證了只要 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)圖如下:

所以,我們這里最核心的就是 A 銀行通過本地事務(wù)保證日志記錄+后臺線程輪詢保證消息不丟失。

B 銀行通過本地事務(wù)保證日志記錄從而保證消息不重復(fù)消費!B 銀行在回調(diào) A 銀行的接口時會通知處理結(jié)果,如果轉(zhuǎn)賬失敗,A 銀行會根據(jù)處理結(jié)果進(jìn)行回滾。

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

作者:蘇靜

簡介:有過多年大型互聯(lián)網(wǎng)項目的開發(fā)經(jīng)驗,對高并發(fā)、分布式、以及微服務(wù)技術(shù)有深入的研究及相關(guān)實踐經(jīng)驗。經(jīng)歷過自學(xué),熱衷于技術(shù)研究與分享!格言:始終保持虛心學(xué)習(xí)的態(tài)度!

 

責(zé)任編輯:武曉燕 來源: 17coding 技術(shù)博客
相關(guān)推薦

2019-06-25 14:44:11

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

2020-08-14 09:04:34

分布式事務(wù)

2022-05-19 12:14:22

分布式開發(fā)框架

2018-11-23 09:25:00

TCC分布式事務(wù)

2023-01-26 00:22:01

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

2022-06-27 08:21:05

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

2017-10-24 11:39:29

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

2021-01-19 05:43:33

分布式2PC3PC

2022-06-21 08:27:22

Seata分布式事務(wù)

2017-07-26 15:08:05

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

2022-08-03 20:18:58

機器學(xué)習(xí)算法分析數(shù)據(jù)

2021-10-20 18:49:29

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

2020-01-02 09:14:23

Kubernetes內(nèi)部容器

2021-10-11 19:30:02

分布式事務(wù)CAP

2022-11-24 17:34:04

TCC分布式

2019-10-10 09:16:34

Zookeeper架構(gòu)分布式

2019-11-19 11:29:50

Python數(shù)據(jù)標(biāo)系

2021-03-11 16:45:29

TCP程序C語言

2009-06-19 15:28:31

JDBC分布式事務(wù)

2021-09-29 09:07:37

分布式架構(gòu)系統(tǒng)
點贊
收藏

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

国产一区二区精品久| 五月婷婷在线视频| 在线日韩视频| 亚洲男人天堂2019| 成人性生交免费看| 日本无删减在线| av漫画网站在线观看| 亚洲国产婷婷| 国产一区免费电影| 成人自拍视频网| 日韩视频免费在线播放| 最新中文字幕亚洲| 国产成人av影院| 成人午夜在线| 一级黄色大毛片| www.国产在线播放| 欧美日韩国产综合新一区 | 91老司机在线| 99久久99久久精品国产| 99久久香蕉| 欧美性色欧美a在线播放| 国产制服91一区二区三区制服| 四虎在线观看| 国产一区二区三区免费在线观看| 91av在线播放| 欧美黑人猛猛猛| 青青草国产免费一区二区下载| 精品乱人伦一区二区三区| 一区二区三区国产免费| 成人bbav| 一区二区三区日韩精品| 一本久道久久综合| 免费观看成年在线视频网站| 国产经典欧美精品| 国产欧美 在线欧美| 五月天婷婷激情| 亚洲东热激情| 色综合视频一区中文字幕| 潮喷失禁大喷水aⅴ无码| 亚洲v天堂v手机在线| 精品国产一区二区在线观看| 国产又粗又长又爽又黄的视频| 自拍偷自拍亚洲精品被多人伦好爽| 亚洲高清久久久| 美女黄色片网站| 三区四区电影在线观看| 国产亚洲欧美日韩俺去了| 精品无人区一区二区三区竹菊| 精品久久在线观看| 激情综合色综合久久综合| 国产精品女主播| 四虎影院在线免费播放| 噜噜爱69成人精品| 欧美做受高潮电影o| 日韩欧美性视频| 99精品国产福利在线观看免费| 欧美激情图片区| 免费在线观看亚洲| 欧美日韩一区二区国产| 欧美大胆a视频| 日本黄色小说视频| 欧美日韩国产精品一区二区亚洲| 欧美成人免费一级人片100| 精品国产精品国产精品| 夜间精品视频| 欧美精品在线看| 国产少妇在线观看| 亚洲国产高清一区| 欧美夜福利tv在线| 中文字幕在线天堂| 六月丁香婷婷久久| 成人写真福利网| www视频在线| 成人免费高清在线| 蜜桃传媒视频第一区入口在线看| 青青草观看免费视频在线| 久久久久久久久久看片| 亚洲一卡二卡三卡四卡无卡网站在线看| 第一福利在线| 亚洲三级电影全部在线观看高清| 水蜜桃在线免费观看| 激情图片在线观看高清国产| 天天爽夜夜爽夜夜爽精品视频| avav在线看| 国产精品成人国产| 欧美成人三级电影在线| 添女人荫蒂视频| 久久高清精品| 色综合视频网站| 九九精品免费视频| 国产一区二区三区四区五区入口| 国产亚洲精品美女久久久m| 日本1级在线| 亚洲天堂av老司机| 国产原创中文在线观看| 国产在线|日韩| 日韩欧美在线123| 国产精品毛片一区二区| 亚洲天堂一区二区三区四区| 亚洲 日韩 国产第一| 久久久久久久亚洲| 国产精品99久| 日韩欧美视频第二区| 羞羞的视频在线看| 日本久久一区二区三区| 真实乱偷全部视频| 国产一区二区精品久| 欧美极品少妇xxxxⅹ免费视频| 无码人妻精品一区二区三区9厂| 久久精品免费观看| 鲁丝一区鲁丝二区鲁丝三区| 欧美日本一道| 欧美午夜激情小视频| 久久久久久久久久毛片| 久久99久久人婷婷精品综合| 欧美激情18p| 羞羞色院91蜜桃| 99久久免费精品| 麻豆md0077饥渴少妇| 欧美成人黑人| 亚洲黄在线观看| 青青草手机在线观看| 免费在线观看成人| 欧美精品二区三区四区免费看视频| 色呦呦在线看| 欧美精品久久久久久久久老牛影院| 黄色国产在线观看| 亚洲视频久久| 亚洲自拍在线观看| 日本在线免费| 欧美亚日韩国产aⅴ精品中极品| av天堂一区二区| 中文字幕一区二区三区乱码图片| 国产精品久在线观看| 性感美女福利视频| 亚洲不卡av一区二区三区| 中文字幕在线视频一区二区| 视频在线不卡免费观看| 国产精品电影网| 精品影院一区| 日韩欧美a级成人黄色| 在线黄色免费网站| 亚洲激情影院| 国产91免费视频| 污污在线观看| 日韩亚洲欧美高清| 欧美精品xxxxx| 国产乱码精品一区二区三区五月婷| 亚洲一区二区三区午夜| 日韩av一级| 中文字幕欧美视频在线| 国产精品尤物视频| 中文字幕精品一区二区精品绿巨人| 无码人妻h动漫| 日韩有码一区| 国产成人福利视频| 福利片在线看| 欧美日韩精品欧美日韩精品| 国产成人在线网址| 激情欧美一区二区三区在线观看| 日本精品免费视频| 日韩一区免费| 国内精品小视频在线观看| 日本黄色不卡视频| 精品久久久久久中文字幕| 91视频啊啊啊| 日韩精品免费视频人成| 日韩国产精品一区二区| 久久99国产精品二区高清软件| 日韩在线国产精品| 99国产在线播放| 亚洲国产成人va在线观看天堂| 精品人妻在线视频| 久久久亚洲一区| 亚洲在线视频一区二区| 日韩视频在线直播| 97涩涩爰在线观看亚洲| 黄色电影免费在线看| 欧美日韩亚洲综合一区二区三区| 少妇视频一区二区| 福利一区福利二区| 人妻熟女一二三区夜夜爱| 成人同人动漫免费观看| 91在线观看欧美日韩| 超碰成人av| 自拍偷拍亚洲在线| 国产成人三级在线观看视频| 一本大道av伊人久久综合| 亚洲国产精品一区二区久久hs| 国产激情一区二区三区| 黄色片视频在线免费观看| 青草国产精品| 国产精品国色综合久久| 在线看欧美视频| 欧美男插女视频| 久草福利在线| 日韩免费视频一区| 瑟瑟视频在线免费观看| 亚洲一二三专区| 女教师淫辱の教室蜜臀av软件| 成人免费va视频| 日韩一区二区三区不卡视频| 激情亚洲成人| 正在播放91九色| 美女毛片一区二区三区四区最新中文字幕亚洲| 国产精品老女人视频| 国产精品国精产品一二| 深夜福利一区二区| 无码精品人妻一区二区三区影院| 3751色影院一区二区三区| 日日夜夜综合网| 亚洲精品视频在线| 欧美午夜激情影院| 99国产一区二区三精品乱码| 一级黄色片在线免费观看| 日韩av一级电影| 免费 成 人 黄 色| 欧美搞黄网站| 亚洲人成人77777线观看| 亚洲a级精品| 成人片在线免费看| 国产在线不卡一区二区三区| 国产98色在线| 午夜影院在线观看国产主播| 欧美激情喷水视频| 国产美女在线观看| 精品国产欧美一区二区五十路 | 激情丁香综合五月| 成年网站在线播放| 久久中文在线| 黄在线观看网站| 尹人成人综合网| 国产经典久久久| 91成人精品| 中文字幕精品一区日韩| 日韩国产欧美一区二区| 欧美一区二区三区四区在线观看地址 | 色777狠狠狠综合伊人| 欧美伦理一区二区| 日韩精品福利一区二区三区| 国产一区二区三区高清视频| www.久久99| 91亚洲精品一区| 99视频这里有精品| 亚洲xxxx视频| 日韩视频一二区| 91精品国自产在线观看| 欧美国产亚洲精品| 99re热精品| 97久久精品| 国产一区不卡在线观看| 久久男人av| 久久久久久久有限公司| 台湾色综合娱乐中文网| 日本一区网站| 日韩一区二区三区免费播放| 亚洲一区三区电影在线观看| 66久久国产| 粉嫩av一区二区三区天美传媒| 伊人成综合网| 男人天堂a在线| 亚洲麻豆视频| 国产三区在线视频| 青青草国产精品97视觉盛宴| 亚洲美女爱爱视频| 国产91精品在线观看| 日本一卡二卡在线| 久久久久久久久久久久久夜| 亚洲一级片在线播放| 亚洲色图视频免费播放| 免费在线观看国产精品| 欧美三级免费观看| 中文字幕在线播出| 91精品国产综合久久蜜臀| 刘亦菲毛片一区二区三区| 日韩精品黄色网| 五月婷婷在线视频| 久久久久国产视频| 免费欧美电影| 91精品在线影院| 国产亚洲精品美女久久| 欧美性xxxx69| 影视一区二区| 免费毛片小视频| 麻豆免费精品视频| 逼特逼视频在线观看| 久久久不卡影院| 欧美人禽zoz0强交| 91久久一区二区| 国产夫妻自拍av| 亚洲美女性生活视频| 黄色网址在线免费观看| 高清欧美性猛交| a屁视频一区二区三区四区| 国产精品我不卡| av中文字幕一区二区| 给我免费播放片在线观看| 日韩在线一二三区| 国产精品果冻传媒| 国产欧美日韩在线| 日韩欧美视频在线免费观看| 欧美精品九九99久久| 亚洲人成色777777精品音频| 久久精品99久久香蕉国产色戒| 天堂av在线| av在线不卡观看| 欧美限制电影| 免费看一级大黄情大片| 国产尤物一区二区| 谁有免费的黄色网址| 亚洲国产日韩av| av一区二区三区四区电影| 久久精品国产露脸对白| 99中文字幕一区| 日韩电影免费在线观看网站| 亚洲午夜精品久久久久久久久久久久| 777久久久精品一区二区三区| 深夜福利视频网站| 日韩精品一级中文字幕精品视频免费观看| 日韩国产欧美区| 欧美三级理论片| 天天干天天做天天操| 91超碰国产精品| 热re99久久精品国产99热| 国产一区视频在线观看免费| 中文字幕在线综合| 91热门视频在线观看| 国产一级在线观看视频| 日韩一区二区视频| 麻豆av在线免费看| 国产精品亚洲一区二区三区| 一区二区三区四区在线看 | 日韩理论在线| 国产精品欧美激情在线观看| 成人激情黄色小说| 久久成人国产精品入口| 欧美一区二区三区在线观看视频| freemovies性欧美| 国产精品成人观看视频国产奇米| 香蕉久久精品日日躁夜夜躁| 无码中文字幕色专区| 成人av高清在线| 久久午夜无码鲁丝片| 欧美成人精品福利| 婷婷在线播放| 翡翠波斯猫1977年美国| 欧美私人啪啪vps| 男人的天堂免费| 亚洲国产日韩综合久久精品| 午夜精品一区二区三| 色综合视频网站| 精品嫩草影院| 日韩av黄色网址| 久久精品这里都是精品| 夜夜躁日日躁狠狠久久av| 这里只有视频精品| 伦一区二区三区中文字幕v亚洲| 亚洲欧美成人一区| 久久99久久99| 免费网站看av| 亚洲国产精品va在线观看黑人| av在线加勒比| 欧美日韩精品综合| 蜜桃视频在线观看一区| 久草福利资源在线| 日韩丝袜情趣美女图片| 2020国产在线| 日本不卡二区| 黄网站免费久久| 久久久久亚洲av片无码下载蜜桃| 精品国产91洋老外米糕| 日本蜜桃在线观看视频| 日韩理论片在线观看| 精品一二三四区| 国产亚洲第一页| 亚洲欧美中文字幕| 日本一区二区三区中文字幕| 免费看日本黄色| 久久久美女毛片| 亚洲天堂网视频| 欧美极度另类性三渗透| 久久99视频| 午夜福利123| 午夜久久久影院| lutube成人福利在线观看| 999在线观看免费大全电视剧| 国产亚洲在线| 99热这里只有精品4| 欧美精品一区二区精品网| 91另类视频| 欧美一级视频在线播放| 欧美韩国日本不卡| 亚洲AV午夜精品| 国产精品国产福利国产秒拍| 欧美黄色一区二区| 成人性生交大片免费看无遮挡aⅴ| 91精品国产综合久久精品| 亚洲午夜天堂| 久久久成人精品一区二区三区| a级精品国产片在线观看|