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

分布式事務(wù)的 6 種解決方案,寫得非常好!

共 6075字,需瀏覽 13分鐘

 ·

2021-07-24 18:24

c05ae4ddcaf67e1db3ae8f56166e0beb.webpe953b9644a671e222b2b3bd9f264d363.webp

戳這里,加關(guān)注哦~

介紹

在分布式系統(tǒng)、微服務(wù)架構(gòu)大行其道的今天,服務(wù)間互相調(diào)用出現(xiàn)失敗已經(jīng)成為常態(tài)。如何處理異常,如何保證數(shù)據(jù)一致性,成為微服務(wù)設(shè)計過程中,繞不開的一個難題。在不同的業(yè)務(wù)場景下,解決方案會有所差異,常見的方式有:

  1. 阻塞式重試;
  2. 2PC、3PC 傳統(tǒng)事務(wù);
  3. 使用隊列,后臺異步處理;
  4. TCC 補償事務(wù);
  5. 本地消息表(異步確保);
  6. MQ 事務(wù)。

本文側(cè)重于其他幾項,關(guān)于 2PC、3PC 傳統(tǒng)事務(wù),網(wǎng)上資料已經(jīng)非常多了,這里不多做重復(fù)。

阻塞式重試

在微服務(wù)架構(gòu)中,阻塞式重試是比較常見的一種方式。偽代碼示例:

m?:=?db.Insert(sql)

err?:=?request(B-Service,m)

func?request(url?string,body?interface{}){
??for?i:=0;?i<3;?i?++?{
????result,?err?=?request.POST(url,body)
????if?err?==?nil?{
????????break
????}else?{
??????log.Print()
????}
??}
}

如上,當(dāng)請求 B 服務(wù)的 API 失敗后,發(fā)起最多三次重試。如果三次還是失敗,就打印日志,繼續(xù)執(zhí)行下或向上層拋出錯誤。這種方式會帶來以下問題

  1. 調(diào)用 B 服務(wù)成功,但由于網(wǎng)絡(luò)超時原因,當(dāng)前服務(wù)認(rèn)為其失敗了,繼續(xù)重試,這樣 B 服務(wù)會產(chǎn)生 2 條一樣的數(shù)據(jù)。
  2. 調(diào)用 B 服務(wù)失敗,由于 B 服務(wù)不可用,重試 3 次依然失敗,當(dāng)前服務(wù)在前面代碼中插入到 DB 的一條記錄,就變成了臟數(shù)據(jù)。
  3. 重試會增加上游對本次調(diào)用的延遲,如果下游負(fù)載較大,重試會放大下游服務(wù)的壓力。

第一個問題:通過讓 B 服務(wù)的 API 支持冪等性來解決。

第二個問題:可以通過后臺定時腳步去修正數(shù)據(jù),但這并不是一個很好的辦法。

第三個問題:這是通過阻塞式重試提高一致性、可用性,必不可少的犧牲。

阻塞式重試適用于業(yè)務(wù)對一致性要求不敏感的場景下。如果對數(shù)據(jù)一致性有要求的話,就必須要引入額外的機制來解決。

異步隊列

在解決方案演化的過程中,引入隊列是個比較常見也較好的方式。如下示例:

m?:=?db.Insert(sql)

err?:=?mq.Publish("B-Service-topic",m)

在當(dāng)前服務(wù)將數(shù)據(jù)寫入 DB 后,推送一條消息給 MQ,由獨立的服務(wù)去消費 MQ 處理業(yè)務(wù)邏輯。和阻塞式重試相比,雖然 MQ 在穩(wěn)定性上遠(yuǎn)高于普通的業(yè)務(wù)服務(wù),但在推送消息到 MQ 中的調(diào)用,還是會有失敗的可能性,比如網(wǎng)絡(luò)問題、當(dāng)前服務(wù)宕機等。這樣還是會遇到阻塞式重試相同的問題,即 DB 寫入成功了,但推送失敗了。

理論上來講,分布式系統(tǒng)下,涉及多個服務(wù)調(diào)用的代碼都存在這樣的情況,在長期運行中,調(diào)用失敗的情況一定會出現(xiàn)。這也是分布式系統(tǒng)設(shè)計的難點之一。

TCC 補償事務(wù)

在對事務(wù)有要求,且不方便解耦的情況下,TCC 補償式事務(wù)是個較好的選擇。

TCC 把調(diào)用每個服務(wù)都分成 2 個階段、 3 個操作:

  • 階段一、Try 操作:對業(yè)務(wù)資源做檢測、資源預(yù)留,比如對庫存的檢查、預(yù)扣。
  • 階段二、Confirm 操作:提交確認(rèn) Try 操作的資源預(yù)留。比如把庫存預(yù)扣更新為扣除。
  • 階段二、Cancel 操作:Try 操作失敗后,釋放其預(yù)扣的資源。比如把庫存預(yù)扣的加回去。

TCC 要求每個服務(wù)都實現(xiàn)上面 3 個操作的 API,服務(wù)接入 TCC 事務(wù)前一次調(diào)用就完成的操作,現(xiàn)在需要分 2 階段完成、三次操作來完成。

比如一個商城應(yīng)用需要調(diào)用 A 庫存服務(wù)、B 金額服務(wù)、C 積分服務(wù),如下偽代碼:

????m?:=?db.Insert(sql)
????aResult,?aErr?:=?A.Try(m)
?bResult,?bErr?:=?B.Try(m)
?cResult,?cErr?:=?C.Try(m)
?if?cErr?!=?nil?{
??A.Cancel()
??B.Cancel()
????C.Cancel()
?}?else?{
??A.Confirm()
??B.Confirm()
??C.Confirm()
?}

代碼中分別調(diào)用 A、B、C 服務(wù) API 檢查并保留資源,都返回成功了再提交確認(rèn)(Confirm)操作;如果 C 服務(wù) Try 操作失敗后,則分別調(diào)用 A、B、C 的 Cancel API 釋放其保留的資源。

TCC 在業(yè)務(wù)上解決了分布式系統(tǒng)下,跨多個服務(wù)、跨多個數(shù)據(jù)庫的數(shù)據(jù)一致性問題。但 TCC 方式依然存在一些問題,實際使用中需要注意,包括上面章節(jié)提到的調(diào)用失敗的情況。

空釋放

上面代碼中如果 C.Try() 是真正調(diào)用失敗,那下面多余的 C.Cancel() 調(diào)用會出現(xiàn)釋放并沒有鎖定資源的行為。這是因為當(dāng)前服務(wù)無法判斷調(diào)用失敗是不是真的鎖定 C 資源了。如果不調(diào)用,實際上成功了,但由于網(wǎng)絡(luò)原因返回失敗了,這會導(dǎo)致 C 的資源被鎖定,一直得不到釋放。

空釋放在生產(chǎn)環(huán)境經(jīng)常出現(xiàn),服務(wù)在實現(xiàn) TCC 事務(wù) API 時,應(yīng)支持空釋放的執(zhí)行。

時序

上面代碼中如果 C.Try() 失敗,接著調(diào)用 C.Cancel() 操作。因為網(wǎng)絡(luò)原因,有可能會出現(xiàn) C.Cancel() 請求會先到 C 服務(wù),C.Try() 請求后到,這會導(dǎo)致空釋放問題,同時引起 C 的資源被鎖定,一直得不到釋放。

所以 C 服務(wù)應(yīng)拒絕釋放資源之后的 Try() 操作。具體實現(xiàn)上,可以用唯一事務(wù)ID來區(qū)分第一次 Try() 還是釋放后的 Try()。

調(diào)用失敗

Cancel 、Confirm 在調(diào)用過程中,還是會存在失敗的情況,比如常見的網(wǎng)絡(luò)原因。

Cancel() 或 Confirm() 操作失敗都會導(dǎo)致資源被鎖定,一直得不到釋放。這種情況常見解決方案有:

  1. 阻塞式重試。但有同樣的問題,比如宕機、一直失敗的情況。
  2. 寫入日志、隊列,然后有單獨的異步服務(wù)自動或人工介入處理。但一樣會有問題,寫日志或隊列時,會存在失敗的情況。

理論上來講非原子性、事務(wù)性的二段代碼,都會存在中間態(tài),有中間態(tài)就會有失敗的可能性。

本地消息表

本地消息表最初是 ebay 提出的,它讓本地消息表與業(yè)務(wù)數(shù)據(jù)表處于同一個數(shù)據(jù)庫中,這樣就能利用本地事務(wù)來滿足事務(wù)特性。

具體做法是在本地事務(wù)中插入業(yè)務(wù)數(shù)據(jù)時,也插入一條消息數(shù)據(jù)。然后在做后續(xù)操作,如果其他操作成功,則刪除該消息;如果失敗則不刪除,異步監(jiān)聽這個消息,不斷重試。

本地消息表是一個很好的思路,可以有多種使用方式:

配合MQ

示例偽代碼:

?messageTx?:=?tc.NewTransaction("order")
?messageTxSql?:=?tx.TryPlan("content")

??m,err?:=?db.InsertTx(sql,messageTxSql)
??if?err!=nil?{
????return?err
??}

??aErr?:=?mq.Publish("B-Service-topic",m)
??if?aErr!=nil?{?//?推送到?MQ?失敗
????messageTx.Confirm()?//?更新消息的狀態(tài)為?confirm
??}else?{
????messageTx.Cancel()?//?刪除消息
??}
//?異步處理?confirm?的消息,繼續(xù)推送
func?OnMessage(task?*Task){
???err?:=?mq.Publish("B-Service-topic",?task.Value())
???if?err==nil?{
?????messageTx.Cancel()
???}
}

上面代碼中其 messageTxSql 是插入本地消息表的一段 SQL :

insert?into?`tcc_async_task`?(`uid`,`name`,`value`,`status`)?values?('?','?','?','?')

它和業(yè)務(wù) SQL 在同一個事務(wù)中去執(zhí)行,要么成功,要么失敗。

成功則推送到隊列,推送成功,則調(diào)用 messageTx.Cancel() 刪除本地消息;推送失敗則標(biāo)記消息為 confirm。本地消息表中 status 有 2 種狀態(tài) tryconfirm, 無論哪種狀態(tài)在 OnMessage 都可以監(jiān)聽到,從而發(fā)起重試。

本地事務(wù)保障消息和業(yè)務(wù)一定會寫入數(shù)據(jù)庫,此后的執(zhí)行無論宕機還是網(wǎng)絡(luò)推送失敗,異步監(jiān)聽都可以進行后續(xù)處理,從而保障了消息一定會推到 MQ。

而 MQ 則保障一定會到達(dá)消費者服務(wù)中,利用 MQ 的 QOS 策略,消費者服務(wù)一定能處理,或繼續(xù)投遞到下一個業(yè)務(wù)隊列中,從而保障了事務(wù)的完整性。

配合服務(wù)調(diào)用

示例偽代碼:

?messageTx?:=?tc.NewTransaction("order")
?messageTxSql?:=?tx.TryPlan("content")

??body,err?:=?db.InsertTx(sql,messageTxSql)
??if?err!=nil?{
????return?err
??}

??aErr?:=?request.POST("B-Service",body)
??if?aErr!=nil?{?//?調(diào)用?B-Service?失敗
????messageTx.Confirm()?//?更新消息的狀態(tài)為?confirm
??}else?{
????messageTx.Cancel()?//?刪除消息
??}
//?異步處理?confirm?或?try?的消息,繼續(xù)調(diào)用?B-Service
func?OnMessage(task?*Task){
??//?request.POST("B-Service",body)
}

這是本地消息表 + 調(diào)用其他服務(wù)的例子,沒有 MQ 的引入。這種使用異步重試,并用本地消息表保障消息的可靠性,解決了阻塞式重試帶來的問題,在日常開發(fā)中比較常見。

如果本地沒有要寫 DB 的操作,可以只寫入本地消息表,同樣在 OnMessage中處理:

messageTx?:=?tc.NewTransaction("order")
messageTx?:=?tx.Try("content")
aErr?:=?request.POST("B-Service",body)
//?....

消息過期

配置本地消息表的 TryConfirm 消息的處理器:

TCC.SetTryHandler(OnTryMessage())
TCC.SetConfirmHandler(OnConfirmMessage())

在消息處理函數(shù)中要判斷當(dāng)前消息任務(wù)是否存在過久,比如一直重試了一小時,還是失敗,就考慮發(fā)郵件、短信、日志告警等方式,讓人工介入。

func?OnConfirmMessage(task?*tcc.Task)?{
if?time.Now().Sub(task.CreatedAt)?>?time.Hour?{
??? err := task.Cancel()??//?刪除該消息,停止重試。
???//?doSomeThing()?告警,人工介入
????return
?}
}

Try 處理函數(shù)中,還要單獨判斷當(dāng)前消息任務(wù)是否存在過短,因為 Try狀態(tài)的消息,可能才剛剛創(chuàng)建,還沒被確認(rèn)提交或刪除。這會和正常業(yè)務(wù)邏輯的執(zhí)行重復(fù),意味著成功的調(diào)用,也會被重試;為盡量避免這種情況,可以檢測消息的創(chuàng)建時間是否很短,短的話可以跳過。

重試機制必然依賴下游 API 在業(yè)務(wù)邏輯上的冪等性,雖然不處理也可行,但設(shè)計上還是要盡量避免干擾正常的請求。

獨立消息服務(wù)

獨立消息服務(wù)是本地消息表的升級版,把本地消息表抽離成一個獨立的服務(wù)。所有操作之前先在消息服務(wù)添加個消息,后續(xù)操作成功則刪除消息,失敗則提交確認(rèn)消息。

然后用異步邏輯去監(jiān)聽消息,做對應(yīng)的處理,和本地消息表的處理邏輯基本一致。但由于向消息服務(wù)添加消息,無法和本地操作放到一個事務(wù)里,所以會存在添加消息成功,后續(xù)失敗,則此時的消息就是個無用消息。

如下示例場景:

??err?:=?request.POST("Message-Service",body)
??if?err!=nil?{
????return?err
??}
??aErr?:=?request.POST("B-Service",body)
??if?aErr!=nil?{
????return?aErr
??}

這個無用的消息,需要消息服務(wù)去確認(rèn)這個消息是否執(zhí)行成功,沒有則刪除,有繼續(xù)執(zhí)行后續(xù)邏輯。相比本地事務(wù)表 tryconfirm ,消息服務(wù)在前面多了一種狀態(tài) prepare。

MQ 事務(wù)

有些 MQ 的實現(xiàn)支持事務(wù),比如 RocketMQ 。MQ 的事務(wù)可以看作獨立消息服務(wù)的一種具體實現(xiàn),邏輯完全一致。

所有操作之前先在 MQ 投遞個消息,后續(xù)操作成功則 Confirm 確認(rèn)提交消息,失敗則Cancel刪除消息。MQ 事務(wù)也會存在 prepare狀態(tài),需要 MQ 的消費處理邏輯來確認(rèn)業(yè)務(wù)是否成功。

總結(jié)

從分布式系統(tǒng)實踐中來看,要保障數(shù)據(jù)一致性的場景,必然要引入額外的機制處理。

TCC 的優(yōu)點是作用于業(yè)務(wù)服務(wù)層,不依賴某個具體數(shù)據(jù)庫、不與具體框架耦合、資源鎖的粒度比較靈活,非常適用于微服務(wù)場景下。缺點是每個服務(wù)都要實現(xiàn) 3 個 API,對于業(yè)務(wù)侵入和改動較大,要處理各種失敗異常。開發(fā)者很難完整處理各種情況,找個成熟的框架可以大大降低成本,比如阿里的 Fescar。

本地消息表的優(yōu)點是簡單、不依賴其他服務(wù)的改造、可以很好的配合服務(wù)調(diào)用和 MQ 一起使用,在大多業(yè)務(wù)場景下都比較實用。缺點是本地數(shù)據(jù)庫多了消息表,和業(yè)務(wù)表耦合在一起。文中本地消息表方式的示例,來源于作者寫的一個庫,有興趣的同學(xué)可以參考下 https://github.com/mushroomsir/tcc

MQ 事務(wù)和獨立消息服務(wù)的優(yōu)點是抽離出一個公共的服務(wù)來解決事務(wù)問題,避免每個服務(wù)都有消息表和服務(wù)耦合在一起,增加服務(wù)自身的處理復(fù)雜性。缺點是支持事務(wù)的 MQ 很少;且每次操作前都先調(diào)用 API 添加個消息,會增加整體調(diào)用的延遲,在絕大多數(shù)正常響應(yīng)的業(yè)務(wù)場景下,是一種多余的開銷。

來源:cnblogs.com/mushroom/p/13788039.html

最后給大家送下福利,大家可以關(guān)注Java核心技術(shù)公眾號,在后臺回復(fù)?“福利”可以獲取一份我整理的最新Java面試題資料。

最近好文分享

1、25000 字詳解 23 種設(shè)計模式,這么簡單!2、Mybatis 框架下 SQL 注入攻擊的 3 種方式

3、實現(xiàn)單例模式的 9 種方法,你知道幾種?4、Java 項目構(gòu)建基礎(chǔ),“ 三個統(tǒng)一” 天下!

5、王者榮耀中一個個英雄是怎么被產(chǎn)生的?
6、深入理解 Java 的 3 種工廠模式,必須知道!

……更多請掃碼關(guān)注???Java核心技術(shù)一個分享Java核心技術(shù)干貨的公眾號
點擊閱讀原文獲取面試題~
瀏覽 54
點贊
評論
收藏
分享

手機掃一掃分享

分享
舉報
評論
圖片
表情
推薦
點贊
評論
收藏
分享

手機掃一掃分享

分享
舉報

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

国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频 99自拍| 国产美女被爽到高潮免费A片软件| 大香蕉精品欧美色综合2025 | 欧美日韩一区二区三区| www黄色视频| 精东影业秘国产传媒| 2025AV天堂网| 高潮AV在线观看| 只有精品| 中文字幕在线观看二区| 蜜桃久久av一区| 天堂网2025| 台湾中文字幕网| 在线不卡中文字幕| 3D精品啪啪一区二区三区| 亚洲va欧美va天堂v国产综合| 亚洲AV无码第一区二区三区蜜桃| 國產美女AV操逼網站| 伊人大香蕉网| 黄色电影免费在线观看| 色情五月| 狠狠撸在线| 黄色综合| 欧美9999| 国产又爽又黄免费网站校园里| 欧美国产激情| 天天操b| 亚洲日韩av在线| 做爱无码| 国产精品久久久久久久久久久久久久| 亚洲精品无码视频在线观看| 日本视频一区二区三区| 色五月av| 丰满人妻一区二区| 日韩一区二区在线视频| 国产凹凸视频| 91av无码| 精品一区二区久久久久久久网站| 91久久精品视频| 无码一区二区在线观看| 一级黄色毛片视频| 色综合综合色| 18禁网站免费| 伊人视频在线观看| 91视频18| 亚洲日韩中文无码| 水蜜桃网址| 老欧性老太色HD大全| 国产一区免费| 日韩中文字幕av| 一级片在线观看视频| 亚洲第二页| 黑人av在线| 91日韩欧美| 日韩黄色电影在线观看| 亚洲成人无码在线| 91熟女视频| 成人黄色在线视频| ⅴA日本成人| 国产精品免费av在线| 女色综合| 欧美在线国产| 欧美操日本| 山东乱子伦视频国产| 鲁鲁鲁鲁鲁鲁鲁777777| 狠狠做深爱婷婷久久综合一区 | 欧美大香蕉视频| 中文字幕日韩人妻| 日韩免费AV| 色就是色欧美| 高清无码学生妹| 免费的黄色A片| 伊人丁香| 亲子乱婬-一级A片| 大香蕉久久精品| 一级黄色电影免费在线观看| 天天激情站| www久久99| 十八禁视频在线观看网站.www| 大香蕉在线伊人| 欧美久久视频| 亚洲无码精品久久| 99视频热| 成人网站免费在线| 久久一级片| 欧洲天堂在线视频网站| www.伊人大香蕉| 黄片视频在线免费播放| 亚洲Aⅴ| 69国产精品视频免费观看| 爱爱免费看片| 国产亚洲久一区二区三区| 日本精品中文字幕| 中文一线二线视频| 国产精品久久久久久久9999| 亚洲高清国产欧美综合s8| 三级无码| 久久久久久久久久国产精品免费观看-百度 | 成人国产欧美日韩在线视频| AV电影在线观看| 天天摸天天操| 97欧美精品人妻系列| 免费一级无码婬片A片APP直播| 伊人东京热| 免费无码一区二区三区| 1级毛片| 成人在线中文字幕| 一级免费黄色电影| 午夜福利大香蕉| mm131亚洲国产精品久久| 亚洲视频综合网| 久久免费小视频| 免费无码视频在线观看| 影音先锋国产在线| 日本免费一区二区三区| 走光无码一区二区三区| 操嫩逼| 国产在线观看不卡| 成人网站视频在线免费观看| 69式荫蒂被添全过程| 无码av无码AV| 做爱网站在线观看| 亚洲无码专区在线| 成人做爰黄片视频免费| 日韩成人无码一区二区| 精品欧美乱码久久久久久| 欧美性爱A片| 芳芳的骚逼| 宅男视频| 国产精品高潮呻吟久久| 亚洲中文字幕成人| 成人午夜精品福利免费| 婷婷一区二区三区| 亚洲色香蕉| 日韩免费在线播放| 国产黄片免费视频| 日韩一a| 午夜啪啪视频| 日本性欧美| 国产视频久久久| 91ncom| 水果派解说A∨无码区| 人人插人人操| 91麻豆精品91久久久ios版| 国产精品日韩高清北条麻衣| A视频免费在线观看| 午夜福利无码视频| 99色在线| 激情成人五月天| 丁香五月天激情网| 强奸乱伦制服丝袜| 狠狠操在线观看| 99在线精品视频在线观看| 亚洲AⅤ| 欧美AAA黄片| 加勒比无码人妻| 婷婷六月激情| 嫩BX区二区三区的区别| 久久久久久久久免费视频| 免费看无码网站成人A片| 国产精品乱| 大色AV| 操美女一区二区| 777777国产77777777| 久久精品内射| 日韩中文字幕视频在线观看| 逼特逼视频网站| 成人网站视频在线观看| 国产日韩一区二区三区| 91AV久久| 亚洲性爱视屏| 日本A级视频| 日韩乱伦AV| 青娱乐精品在线视频| 无码人妻精品一区二区50| 亚洲无码专区在线| 欧洲精品视频在线观看| 中文字幕人妻丝袜二区电影| 暴操美女网站| 黄色激情网站| 欧美激情五月天| 插菊花综合网站| 另类性爱视频| 91三级片在线播放| 色香蕉视频在线观看| 成人黄片免费看| 午夜亚洲福利| 大香蕉伊人视频在线观看| h在线| www.天天干| 暗呦网一区二区三区| 无码骚逼| 极品av| 国产成人无码精免费视频| 日韩主播在线| 美妇肥臀一区二区三区-久久99精品国| 五月久久婷婷| av香蕉| 日日99| 国产精品2| 国家一级A片| 三级A片| 国产成人AⅤ| 亚洲色婷婷综合| 亚欧三级| 无码精品一区二区在线| 成人网站在线看。| 亚洲视频在线观看网站| 一区二区国产视频| 亚洲理论在线| AV电影免费看| 你懂的在线视频| 久草99| 国产女同性系列| 日韩无码高清一区| 精品国产天线2024| 免费在线观看A| 欧美精品一级| 久久久久中文字幕| 99久久综合国产精品二区| 日韩精品你懂的| 国产激倩都市一区二区三区欧美| 日韩欧美不卡| 蜜臀久久99精品久久久晴天影视| 苍井空一区二区| 毛片视频免费观看| 九九九成人网| 国产成人亚洲综合A∨婷婷| 无码人妻在线| 天天舔天天干| 国产乱子伦一区二区三区免看 | 秋霞久久日| 日韩在线观看免费| 日日夜夜精品| 一级无码专区| 国产午夜男女性爱| 色欲影视插综合一区二区三区| 亚洲成人视频在线观看| 99久久精品国产毛片| 欧美日韩三级| 黄色激情网站| 中文字幕在线观看辣文| 日韩无码中文字幕| 丹麦电影《下午》| 一级AV| 欧美日韩中文字幕在线观看| 在线观看中文字幕av| 天天爽日日澡AAAA片| 91免费观看视频| 日韩人妻精品中文字幕免费 | 免费高清无码在线| 天堂成人网站| 国产农村乱婬片A片AAA图片| 中文字幕乱码视频| 91三级片在线观看| 亚洲色操| A黄色视频| 国产成人无码AⅤ片免费播放| 午夜福利大香蕉| 天堂av在线免费观看| 久久婷婷国产麻豆91天堂| 国产裸体网站| 欧美成人毛片一级A片| 无码人妻精品一区二区三区蜜臀百度| 亚洲爱爱网| 亚洲日本视频| 欧美一级特黄A片免费看视频小说 东北嫖老熟女一区二区视频网站 国产丨熟女丨国产熟女视频 | 熟妇在线| 97在线观看免费视频| 欧美人妻视频| 国产成人午夜| 欧美99| 91黄色毛片| 亚洲欧美日韩不卡| 精品人妻一区二区乱码一区二区| 国产精品视频久久久久| 亚洲色图15| 亚洲成人无码视频在线观看| 亚洲成人无码网站| 国产女人18毛片水18精| 亚洲人网站| 美女被操网站| 亚洲中文字幕av天堂| 久久久国产一区二区三区| 人成视频免费观看| 奥门黄片| 五月婷婷丁香在线| 色呦呦中文字幕| 日韩黄色电影在线观看| 丝瓜视频污APP| 中文字幕午夜福利| 91精品国产综合久久久蜜臀图片| 少妇一级婬片内射视频| 国产成人无码Av片在线公司| 手机在线看A片| 26∪u∪成人网站| 免费黄色大片| 色av影音先锋无吗一区| 亚洲综合中文字幕在线播放| 影音先锋男人你懂的| 欧美视频a| 欧美色色色色色色| 中文有码| 五月天婷婷色播| 亚洲AV无码乱码国产| 免费日韩毛片| 久久精品国产99精品国产亚洲性色 | 色色天堂| 精品国产自| 妞干网国产| 中文字幕在线码| 日韩大香蕉视频| 自拍偷拍无码| 国产激情欧洲在线观看一区二区三区 | 99在线视频免费观看| 4444操| 三须三级久久三级久久18| 日韩不卡电影| 免费在线看a| 三级片久久| 亚洲国产成人av| 久久aaaa| 日韩欧美A片| 日韩无码高清视频| 69AV网站| 中文在线观看免费视频| 九九成人电影| 日本操B久久| 欧美色图自拍| 日韩午夜电影| 久久99久久99久久99国内少妇精品| 天天天日天天天操| 操逼123首页| 大地影院资源官网| 男女操逼网站| 在线免费观看av片| 人人干人人干人人干| 在线观看高清无码视频| 一級免費网站| 色婷婷久综合久久一本国产AV| 97精品在线视频| 欧美色综合| 毛片A片免费看| 欧美高清无码视频| 青青草视频在线观看| 尹人大香蕉网| 乱子伦国产精品一区二区| 人妻精品| AAA久久久| 久草精品视频| 无码免费观看| 五月婷婷导航| 西西444www无码精品| 久久亚洲福利视频| 亚洲AV无码秘翔田| 暗呦网一区二区三区| 久久久婷婷五月亚洲国产精品| 成人免费网站在线| 亚洲v视频| 中文无码99| wwwsesese| 国产第1页| 蜜桃免费网站| 激情五月天丁香| 色婷婷一区二区三区四区五区精品视 | 国产女人18毛片18精品| 成人久久大香蕉| 人人看人人摸人人搞| 大香蕉一区| 免费视频爱爱| 操BBBB| 国产成人A∨| 日日干综合| 大香蕉国产| 天天干天天天天| 精品1234| 91人妻人人澡人人爽人人精品一| 在线免费看A片| 人妻丝袜中出北条麻妃| 亚洲日韩欧美成人| 成人无码在线播放| 日韩亚洲精品中文字幕| 99自拍视频| 黄色大片免费网站| 琪琪色视频| 蜜桃视频成人版网站| 一区二区三区四区视频在线| 成人三级黄色| 蜜桃视频网址| 黄片视频免费| 亚洲AV秘成人久久无码海归| 欧美国产精品| 中文字幕成人影片| 国产久久久久久| 超碰97人妻| 操逼一区二区| 午夜久| 国产日皮视频| 91人妻人人澡人人爽人人DVD| 国产在线a| 秋霞精品一区二区三区| 亚洲天堂网在线视频| 欧美曰皮免费看| 99久久99久久久精品棕色圆| 懂色中国闺密偷情懂色AV| 国产三级片AV| 亚洲无码门| 91精品在线观看视频| 日韩精品成人专区无码| 日韩爱爱爱| 爱精品视频| 成人精品三级麻豆| 一区无码视频| 国产熟妇婬乱A片免费看牛牛| 爱爱中文字幕| 久草中文视频| 阿v视频在线观看| 少妇免费视频| 国产成人精品无码区在线| 日韩欧美视频| 三级片高清无码| 啪视频网站国产馆| 亚洲av免费在线| 五月丁香成人电影| 操逼一级片| 国产三级黄色| www.91av| 在线日韩AV| 蝌蚪窝视频网| 日本欧美亚洲| 91久九九| 国产又爽又黄免费视频网站| 国产乱伦内射| 青青草手机视频在线| 91精品国产综合久久蜜臀使用方法| 无码高清视频在线观看| 国产久久久久久| 熟女老阿V8888AV| 久久舔| 天堂在线中文| 屁屁影院CCYYCOM发布地| 婷婷操逼| 男人日女人视频| www.无码视频| 制服丝袜人妻| 久久精品黄色| 天天综合网久久| 成人三级在线观看| 无码人妻在线播放| se99av| 国产成人精品一区二区三区| 欧美aaa在线| 亚洲熟女一区二区三区妖精| 亚洲精品无码中文字幕| 在线观看国产一级片| 国产免费一区二区三区四区六区在线| 国产成人ab| 天堂网影音先锋| 九九九免费视频| 九色PORN视频成人蝌蚪自拍| 东北骚妇大战黑人视频| 伊人毛片| 综合一区二区三区| 美女av网站| 亚洲中文字幕在线观看视频网站| 日日干天天射| 狠狠干天天操| 麻豆黄片| 亚洲天天操| 黄色片一区二区| 日韩成人无码精品| 色多多毛片| 波多野结衣无码电影| 超碰91人人操| 欧美一级在线观看| 四川少扫搡BBBBB搡B| 久久综合在线| 黄频在线免费观看| 国产v片| 日韩无码人妻一区二区| 亚洲AV成人电影| 精品国产乱码久久久久夜深人妻| 欧美在线一区二区三区| 国产成人无码AⅤ片免费播放| 精品一区二区三区无码| 免费看日韩毛片| 日韩无码网址| 青青色在线观看| A视频免费在线观看| 国产成人Av| 人妻无码在线视频| 日本精品人妻| 一本道精品在线| 国产主播精品在线| 免费a级毛片| 呦小BBBB小小BBBB| 夜色视频网| 毛片A片免费看| 五月影院| 欧美A∨| 蜜桃av在线| 一区二区三区网站| 国语精品自拍| www黄片视频| 黄色成人网站在线观看| 日韩中文字幕一区| 91资源超碰| 欧美日韩亚洲一区二区| 精品秘一区性综合三区| 国产成人精品视频免费看| 伊人网综合| 一级a一级a爱片免费视频| 激情五月天黄色| 天天躁夜夜躁av| 天天干天天操天天拍| 婷婷激情五月综合| 操逼视频免费观看| 成人日韩无码| 亚洲天堂综合网| 午夜操逼网| 啪啪啪免费视频| 日韩日批| 中文字幕在线播放av| 先锋影音资源站av每日资源在线| 99热超碰| 91久久国产| www.91n| 中文无码一区二区三区| 日本成人黄色电影| 亚洲视频福利| 激情白浆| 青娱乐一级无码| 精品无码一区二区三区四区五区| 国产91在线中日| 色多多毛片| 欧美视频在线观看| 91av在线看| 欧美日批| 欧美性爱福利| 免费乱伦视频| 欧美日韩在线视频观看| 国产操逼电影| 国内久久婷婷| 欧美日韩中文字幕在线视频| 99精品视频网站| 狠狠狠狠狠狠操| 狼人综合视频| 夜夜操夜夜撸| 欧美A级黄片| 日屄在线观看| 熟女一区二区三区| 人妻无码A| 色色色色色色网站| 色香蕉视频在线观看| 青草网| 日韩成人片| 国产777| 另类老妇奶性生BBwBB| 婷婷色图| 在线观看高清无码| 亚洲网站在线观看| 色交视频| 日韩一级黄片| 韩国精品久久久| 色色网欧美| 一本一道久久a久久精品综合| 欧美城综合在线观看网| 欧美黄色站| 四虎国产精品成人久久| 成人先锋AV| 成人黄色大香蕉| 青青草视频免费看| 免费无码一区二区三区四区五区 | 欧美色网| 中文字幕成人| 久久嫩草精品久久久久精| 久久黄色免费看| 99久久综合九九| 午夜亚洲AV永久无码精品麻豆| 爱爱免费视频| 91偷拍与自偷拍精品无码| 亚洲视频观看| 成人三级片网| 九九视频网| 亚洲AV无码精品久久一区二区 | AV中文无码| 午夜福利区| 久久精品偷拍视频| 欧美午夜黄片| 18禁网站禁片免费观看| 欧美三级精品| 天天操天天拍| 日韩第一区| 2025中文在线观看最好看的电影| 亚洲精品乱码久久久久久蜜桃欧美| 免费看V片| 中文字幕乱码中文乱码图片| 黄色免费无码| 亚洲字幕在线观看| 欧美丰满老熟妇XXXXX性| 亚洲综合免费观看高清| 无码视频免费在线观看| mm131亚洲国产精品久久| 黄色大片中国一级片-免费看特一级片-亚洲黄色AV | 西西444www| 国产91在线视频| 天天爽夜夜爽精品成人免费| 日本少妇中文字幕| 97人人爽人人爽人人爽人人爽| 日本中文字幕中文翻译歌词| 久操福利视频| 操逼五月天| 69视频在线观看| 日本一区二区三| 国产免费啪啪视频| 激情无码精品| 91丨九色丨熟女丰满| 日本无码专区| 伊人成人网站| 五月天亚洲无码| 国产香蕉视频在线播放| 无码中文字幕在线视频| 欧美天堂在线观看| 国产AV天堂| 国产精品乱码毛片在线人与| 国产免费啪啪视频| 国产欧美日韩在线视频| 国产成人亚洲综合A∨婷婷| 国产一区二区三区四区视频| 中文字幕网在线| 超碰人人人人人人人人| 日韩午夜片| 中文字幕2025年最好看电视剧| 午夜AV在线| 看免费黄色录像| www.热久久| 高清无码视频网站| 日本少妇高潮喷水XXXXXXX| 中文资源在线a中文| 天天做天天爱| 夜夜操狠狠操| 国产成人性爱| 这里只有精品视频| 国产美女在线观看| 久久婷婷六月综合| 在线观看欧美日韩视频| 黄色三级A片| 97香蕉久久国产超碰青草专区| 天堂素人约啪| 性爱小说视频| 亚洲日韩国产AV无码无码精品| 国产三级片视频在线观看| 秋霞理伦| 肏屄视频免费观看| A片在线免费播放| 无码免费毛片一区二区三区古代| 国产又爽又黄免费网站校园里| 天天操天天射天天爽| 狠狠色婷婷777| 亚洲高清无码在线观看| 成人免费视频一区二区三区| 国产免费一区二区| 欧一美一伦一A片| 黄色理论片| 夜夜撸视频| 日韩专区中文字幕| 亚洲精品一区二三区不卡| www.黄色在线| 在线观看国产一区| 六月丁香欧美综合| 喷水视频在线观看| 国产成人亚洲日韩| 欧美久久一区| 亚洲www.| 妞干网国产| 欧美强开小嫩苞| 亚洲欧洲自拍| 丝袜足交在线| 色五月婷婷丁香五月| 久久在线免费视频| www.天天射视频| 2019人人操| 中文字幕在线免费看| 国产成人无码一区二区在线观看 | 伊人久久电影| 深爱开心激情| 成人无码视频在线观看| 91大熟女91大腚女人| 91欧美精品| 国产精品无码毛片| 黄色A片免费看| 欧美aaa| 婷婷五月影院| 性欧美XXXX| 亚洲成av人无码| 国产成人A∨| 国产资源在线观看| 成人无码自拍| 久色国产| 大香蕉久久精品| 国内自拍第一页| 国产精品人妻无码久久久郑州天气网 | 精品码产区一区二亚洲国产| 韩国av在线| 伊人青青操| 乱伦91| 激情五月俺也去| 中文字幕在线免费观看视频| a片在线观看免费| 国产伦子伦一级A片免费看小说| 国产精品美女久久久久久久久| 超碰99在线观看| 日韩毛片在线免费观看| 极品无码| 一区四区视频| 亚洲vs无码秘蜜桃少妇| 国产午夜精品一区二区三区四区| 国产乱轮视频| 欧美成在线视频| 韩国毛片| 国产精品久久久久久久久久久久久久久| 一级操逼视频| 色综合久久久无码中文字幕999| 日本操B久久| 国产精品免费人成人网站酒店| 四川少妇搡bbbb搡bbbb| 高清AV在线| 加勒比久久88| 九九偷拍| 欧美熟妇高潮流白浆| 中文字幕成人电影| 国产成人无码Av片在线公司| 88AV在线播放| 欧美日韩一区二区三区四区五区六区| 老司机av| 欧美日韩性色无码免费| 久草视频播放| AV无码资源| 黄片福利| 亚洲日韩在线中文字幕| 中文字幕永久在线5| 日本欧美视频| 国产成人精品免高潮在线观看| 中文字幕无码不卡| 人人摸人人插| 国产3p绿帽骚妻视频| 欧美在线中文字幕| 午夜福利成人网站| 男女视频网站在线观看| 成人午夜福利网站| 麻豆成人网| 猫咪亚洲AV成人无码电影| 婷婷在线观看视频| 99久热在线精品视频| 久久久www成人免费毛片| 99视频在线播放| 国产熟女露脸普通话对白| 3D精品啪啪一区二区免费| 特级西西人体WWWww| 久久私拍| 婷婷丁香五月花| 高清一区二区三区| 国产精品福利小视频| 日韩中文字幕视频在线| 久久三级片| 7777影视电视剧在线观看官网| 国产无码高清在线观看| 91黄色毛片| 四虎AV| 在线看一区| 尹人大香蕉网| 最新版本日本亚洲色| 亚洲免费视频播放| 91亚洲精品视频在线| 欧美成人精品A片免费一区99| 中文字幕在线观看亚洲| 国产精品成人在线观看| 蜜臀精品色无码蜜臀AV| 久久人搡人人玩人妻精AV香蕉| 人妖毛片| 亚洲综合在线观看视频| 黄色片网站视频| 开心四房播播第四婷婷| 中文字幕乱视频| 韩国中文无码| 超碰97人人爱| 黄色大片中国一级片-免费看特一级片-亚洲黄色AV | 手机成人在线视频| 色撸撸在线视频| 亚州一级二级| 无码天堂| 无码视频观看| 日韩天堂网| 另类欧美| 成人五月天黄色电影| 91九色丨国产丨爆乳| 亚洲精品视频免费看| 自拍天堂| 亚洲欧美高清视频| 亚洲日本黄色网址| 亚洲精品蜜桃| 亚洲黄片免费在线观看| 免费在线观看黄片视频| 一级片操逼| 九九九在线观看视频| 人人看人人摸人人操| 性无码一区二区三区无码免费| AV黄色片| 国产成人综合电影| 麻豆911精一区二区| youjizzcom日本| 青娱乐国产在线| 无码人妻精品一区二区三| 99久久婷婷国产综合精品漫| 国产白丝精品91爽爽久久| 黄色a在线| 精品欧美片在线观看步骤| 日本在线免费观看| 日韩午夜| 亚洲无码专区在线观看| 中文区中文字幕免费看| 一级a黄色片| 菊花综合网| 成年人在线观看| 无码aa| 国产视频无码| 久热国产精品| 成人久久久久一级大黄毛片中国 | 亚洲精品国产AV婷婷| 国产黄色Av| 欧美大胆a| 亚洲中文字幕播放| 色高清无码免费视频| 亚洲婷婷五月| 日韩中文字幕av| 一二三四在线视频| h网站在线| 手机成人在线视频| 国产AA片| 久久熟女嫩草成人片免费| 国产亚洲精品久久久久久桃色| 一本久道无码| 欧美色图色就是色| 国产精品精品| av黄色网| 精品国产成人| 无码在线视频免费观看| 日本久久久久久久久视频在线观看 | 国产高清在线视频| 东京热这里只有精品| 俺去啦在线| 亚洲欧美性爱视频| 草莓视频在线播放| 国内精品久久久久| 97午夜福利| 3d动漫精品H区XXXXX区| 91精品在线观看视频| 91麻豆免费视频| 成人欧美精品| 亚洲精品美女| 天堂av在线免费观看| 三级成人在线| 丁香五月激情在线| 操美女视频网站| 青娱乐免费视频| 国产毛片毛片| 亚洲无码一卡二卡| 亚洲视频五区| 一级a看片在线观看| 日韩无码中文字幕视频| 免费二区| 亚洲AV无码永久精品| 开心老牛熟| av免费网址| 亚洲精品无码中文字幕| 九九色九九| 丝袜美腿亚洲综合| 91丨熟女丨首页| 一区二区三区四区久久| 天天色天天干天天日| 无码人妻一区二区| 嫩草视频在线观看| 免费一区二区三区四区| 亚洲成人视频| 欧美亚洲成人精品| 国产精品日韩欧美| 国产精品色婷婷| 瑟瑟免费视频| 中国美女一级黄片| 亚洲日韩国产成人精品久久| 免费操逼电影| 天堂网AV在线| A片视频免费观看| 欧美天堂在线观看| 日韩免费高清视频| 大香蕉操逼| 躁BBB躁BBB躁BBBBBB日| 三级片在线观看网站| 大香蕉伊人青青草| 999久久久精品|