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

面試官:分布式事務的 6 種解決方案,你能說幾種

共 7656字,需瀏覽 16分鐘

 ·

2021-08-19 01:19

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

介紹

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

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

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

阻塞式重試

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

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()
    }
  }
}

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

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

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

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

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

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

異步隊列

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

m := db.Insert(sql)

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

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

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

TCC 補償事務

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

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

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

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

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

    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 服務 API 檢查并保留資源,都返回成功了再提交確認(Confirm)操作;如果 C 服務 Try 操作失敗后,則分別調(diào)用 A、B、C 的 Cancel API 釋放其保留的資源。

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

空釋放

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

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

時序

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

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

調(diào)用失敗

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

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

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

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

本地消息表

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

具體做法是在本地事務中插入業(yè)務數(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è)務 SQL 在同一個事務中去執(zhí)行,要么成功,要么失敗。

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

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

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

配合服務調(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)用其他服務的例子,沒有 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ù)中要判斷當前消息任務是否存在過久,比如一直重試了一小時,還是失敗,就考慮發(fā)郵件、短信、日志告警等方式,讓人工介入。

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

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

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

獨立消息服務

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

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

如下示例場景:

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

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

MQ 事務

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

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

總結

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

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

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

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

程序汪資料鏈接

歡迎添加程序汪個人微信 itwang007  進粉絲群或圍觀朋友圈

瀏覽 44
點贊
評論
收藏
分享

手機掃一掃分享

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

手機掃一掃分享

分享
舉報

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

国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频 国产AV18岁| 夜夜福利| 免费在线观看亚洲| 1024大香蕉| 亚洲人人色| 日韩成人视屏| 国产婷婷久久Av免费高清| 亚洲骚妇| 欧美亚洲| 精品少妇人妻| 亚洲无码黄片| 欧美大香蕉在线视频| 在线中文字幕AV| 不卡无码高清| 日本一本在线| 国产成人自拍视频在线观看| AV无码一区二区| 国产又粗又黄| h网站在线看| 国产婬片lA片www777| 宅男噜| 91色五月| 青娱乐国产精品| 日本黄色的视频| 草比网| 日本高清视频九区| 伊人青草视频9| 久久高清免费视频| 偷拍三区| 欧美色图在线视频| 国产大鸡巴| 亚洲高清无码在线| 欧美精品黄片| 久久av一区二区三区| 51黄片库| 米奇色色| 欧美级毛片一进一出| 国模精品无码一区二区免费蜜桃| 欧美熟妇精品一级A片视色| 91成人免费电影| 91成人小电影| 亚洲日韩在线观看视频| 91操B| 日逼黄色| 91美女网站| 日本A片视频| 懂色av,蜜臀AV粉嫩av| 亚洲午夜成人| 成人AV毛片| 涩久久| av水果派| 天天干女人| 影音先锋亚洲资源| 五月天黄色网| 91香蕉在线| 久热在线视频| 懂色Av| 欧美国产日韩综合在线观看170 | av电影在线免费观看| 国产精品白浆| 五月天激情av| av一区在线观看| 国产免费久久久| 欧美69p| 黄页av| 成人毛片AV无码| 69成人天堂无码免费| 99久久影院| 内射婷婷| 成人免费视频一区二区| 蜜桃久久久亚洲精品| 狠狠色狠狠干| 美女天天肏| 精品国产AⅤ麻豆| 91人妻无码精品一区二区| 亚洲成人免费网站| 欧美精品久久久久久| 99激情| 久久三级视频| 色吧综合网| 无码人妻丰满熟妇精品区| 欧美日本一区二区三区| 最新日韩中文字幕| 亚洲福利网| 日韩av无码电影| 精品伊人久久| 在线国产福利| AA毛片| 国产情侣在线视频| 欧美日韩性爱| 久久水蜜桃| 亚洲人妻中文字幕| 天天色天天日| 久久精品国产亚洲AV麻豆痴男| 在线亚洲免费观看| 91偷拍与自偷拍精品无码| 秘蜜桃色一区二区三区在线观看| 天堂中文在线播放| 欧美高潮视频| 国产jk在线| 青娱乐久久| 2025国产精品| A在线观看| 狼友视频在在观看| 3D精品啪啪一区二区免费| 亚洲天堂女人| 嫩BBB搡BBBB搡BBBB-百度| 国产一级片免费| 成人AV片导航| 91免费看片| www.国产视频| 亚洲天堂无码在线| 亚洲免费精品视频| 日韩中文字幕区| 怡红院一区二区| www.91熊猫成人网| 伊人色播| 豆花视频logo进入官网| 久久99深爱久久99精品| 天天射综合| 毛片黄色片| 亚洲三级AV| 久久久久久久久久成人| 成人欧美在线观看| 91人人妻人人澡人人爽人人| 九九视频免费在线观看| 亚洲色色频| 一道本视频在线| 亚洲黄v| 狠狠干狠狠艹| 中文字幕在线国产| 成人网站在线观看视频| 免费毛片网站| 午夜影院操| 欧美日韩人妻高清中文| 一区二区在线免费观看| 亚洲无码手机在线观看| 色色色99| 黄片av| 天天搞天天色| 99久久久精品久久久久久| 校园春色av| 午夜蜜桃人妻一区二区| 伊人99热| 欧美日韩有码视频网址大全| av在线观看网站| 欧美日韩国产免费观看成人片 | 外国一级片| 五月天干美女| 韩日成人| 性欧美欧美巨大69| 亚洲日本国产| 91偷拍网| 国内成人精品网站| 麻豆天美蜜桃91| 国产精品无码激情| 中文字幕第315页| 日韩中文字幕AV| 2025精品精品视频| 午夜精品在线观看| 日韩免费精品视频| 3344在线观看免费下载视频 | 日本无码一区二区三区| 国内成人精品网站| 内射一区二区| 日韩av小电影| 五月开心激情网| 亚洲免费视频观看| 怡春院日韩| 亚洲精品麻豆| 欧一美一色一伦一A片| 操逼影视| 欧美成人图片视频在线| 先锋资源国产| 精品蜜桃秘一区二区三区在线播放 | 黄色片在线视频| 黄片视频在线播放| 台湾成人综合网| 日本超碰| 大地资源第三页在线观看免费播放最新 | a视频免费看| 欧美成人怡红院| 欧美日韩精品久久久免费观看 | 97人人爽人人爽人人爽| 亚洲第一视频在线观看| 欧美视频免费在线观看| 色婷婷天天操天天干| 亚洲成人黄色在线| 亚洲一级毛| 军人妓女院BD高清片在线播放| 黑人AV| 精品久草| 天堂一区在线观看| 亚洲精品偷拍| 国产综合亚洲精品一区二| 精品无码一区二区三区在线| 国产精品93333333| 天天操天天操天天操| gogogo免费高清在线偷拍| 免费无码蜜臀在线观看| 天天日天天干天天干| 国产高清一区二区三区| 无码高清在线观看| 亚洲无码久久网| 一本色道久久综合无码人妻软件| 黄片小视频| 尤物一区二区| 亚洲日逼网| 天天干天天日天天色| 操逼视频网| 92自拍| 先锋影音在线| 色综合久久88色综合天天99| 激情久久五月天| 国产免费一级特黄A片| 99视频久久| 亚洲成人中文字幕| 欧美三级视频在线| 国产成人免费做爰视频| 视频一区中文字幕| 97人妻一区二区精品免费视频| 河南熟妇搡BBBB搡BBBB| 亚洲精品蜜桃| 中文亚洲精品字幕电影| 人妻av无码| 人人摸人人干人人操| 日韩AV无码免费| 三级毛片在线| 国产在线导航| 激情另类| A片免费网址| 国产特级毛片| 91九色精品女同系列| 乱子伦国产精品视频一级毛| 日本不卡一区二区三区| 天天操天天操天天操天天| 综合网插菊花| 日韩美女视频19| 91蜜臀在线| 51妺嘿嘿午夜福利在线| 天天射日日干| A视频免费| 88AV在线播放| 久久久久9999| 成人A片网| 国产在线中文字幕| 翔田千里无码流出两部| 色哟哟在线观看| 国产精品成人免费精品自在线观看 | 色婷婷五月天| www免费视频| 亚洲无码专区在线| 免费操逼网址| 西西人体44www大胆无码| 黄色视频网站在线| 久草香蕉| A在线免费观看| 午夜福利100| 久本草精品| 亚洲色综合| 大香蕉亚洲网| 深夜福利18| 特黄视频| 免费黄色片子| 九九精品热| 精品久久久999| 国产精品秘久久久久久1-~/\v7-/ 囯产精品一区二区三区线一牛影视1 | 人妻超碰在线| 久热在线精品视频| 91无码人妻| 精品一区二区三区四区五区六区七区八区九区 | 97精品视频在线观看| 一区无码| 亚洲秘无码一区二区三区| 中文字幕AV在线观看| 国产精品探花熟女| 精品无码人妻一区二区| 亚洲福利影院| 东京热91| 国产视频导航| 日韩无码视频一区二区| 亚洲成人小说| 国产高清激情| 欧美日韩在线视频播放| 欧美aa片| 日韩精品久久久| 99热精品在线| 91九色TS另类国产人妖| 日韩欧美久久| 先锋影音成人资源| 特极西西444WWW大胆无码| 毛片性爱视屏| 91丨PORNY丨丰满人妻网站| 色综合视频| 亚洲v区| 先锋影音资源站| 91精品婷婷国产综合久久蝌蚪 | 伊人综合成人网| 午夜成人鲁丝片午夜精品| 国产免费一区二区三区网站免费| 狼人一区二区| 亚洲视频无码| 国产无码三级| 无码高清在线播放| 日韩无码链接| 无码中文字幕在线观看| 国产做爰XXXⅩ久久久骚妇| 米奇色色| 中国精品77777777| 青青草成人网| 欧美日韩综合网| 成人无码网站| 北条麻妃免费视频| 特黄aaaaaaaa真人毛片| 91精品国产综合久久久蜜臀粉嫩| 日韩人妻在线视频| 人与鲁牲交| 色色色五月| 亚洲三级片免费观看| 人成视频在线| 免费无码婬片A片AA片| 99免费在线观看视频| 日韩人妻无码网站| 凹凸熟女凹凸BBWBBW| 在线观看免费黄| AV在线影院| 欧美操B在线| 国产91精品在线观看| 西西www444无码大胆| 亚洲无码成人网| 中文字幕在线播放AV| 日本欧美黄色| 3D动漫精品啪啪一区二区| 欧美一级特黄A片免费| 五月婷婷啪| 国产17c精品视频一二三区| 国产免费黄色视频网站| 天堂操逼| 中文字幕国产综合| 色色视频网站| 大鸡吧操视频| 欧美黄色电影网站| 就要操逼| 国产高清在线| 四个熟妇搡BBBB搡BBBB| 99久久爱re热6在播放| 亚洲美女免费视频| 操一线天逼| 国产综合久久777777麻豆| 大BBBw大BBBW另类| 性久久久久久| 国产第五页| 在线观看黄色片| 亚洲最新无码| 懂色av| 色综合激情| AAA三级视频| 欧美婷婷五月天| 五月天色婷婷丁香| 亚洲免费高清视频| eeuss久久| 日韩综合在线| 91av免费在线观看| 69av天堂| 肏屄视频免费观看| 国产日韩一区二区三免费高清| 水蜜桃视频网| 黄色A片免费观看| 欧美猛男的大鷄巴| 中文字幕无码日韩| gogogo免费高清在线偷拍 | 午夜视频在线播放| 亚洲黄色在线免费观看| 无码国产精品一区二区免费式直播| 大香蕉98| 亚洲Japanese办公室制服 | 色网在线| 亚洲一区二区三区在线视频| 老司机精品在线观看| 亚洲无码精品久久| 亚洲中文字幕成人| 人人看人人摸人人操| 黄色精品网站| 日韩精品影视| 中文字幕人妻一区| 伊人成人免费视频| 天天日天天爽| 怡春院AV| 亚洲影院第一页在线观看| 蜜桃久久久| 操逼毛片视频| 青娱乐黄片| 国产精品国产三级国产专业不 | 豆花在线视频| 五月天激情啪啪| 操逼的网站| 97精品一区二区三区A片| 欧美狼友| 麻豆国产精品| 丁香五月婷婷基地| 日本老妇操屄视频| 日本激情视频| 国产又爽又黄视频| 成人无码视频| 婷婷成人综合| 国产激情综合在线| 日韩视频中文字幕| 欧美中文字幕在线播放| 2017天天射| 亚洲狠狠干| 91AV在线电影| 国产精品黑人ThePorn| 六月婷婷综合| 成人无码免费看| 国产乱伦影片| 中文字幕第五页| 日本中文字幕亚洲| 欧美成人精品A片免费一区99 | 成人三级黄色| 无码一区二区三区四| 精品黄色电影| 西西4444WWW无视频| 伊人天天干| 天堂网亚洲| 国产在线观看97| 无码一区二区三区在线| 坏男人内射老太太| 亚洲午夜AV| 日韩无码一级| 蜜桃毛片| 在线观看一级片| 欧美黄色电影在线观看| 四川婬妇BBw搡BBBB搡| 影音先锋三级资源| 日本AI高清无码在线观看网址| 日韩综合另类| 学生妹一级片内射视频| 黄色视频在线免费观| 免费高清无码在线观看| 永久精品| 亚洲三级国产| 国产77777| 精品欧美视频| 久久久久久久艹| 欧美footjob高跟脚交| 国产成人免费观看| 特级西西444www无码视频免费看 | 午夜在线观看视频| 伊人成人网视频| 91成人免费视频| 人人射视频| 青青草视频偷拍| 欧美视频色| 欧美手机在线视频| 婷色五月天| 亚洲欧美日韩成人| 国产激情都市一区二区三区欧美| 激情AV| 久久国产一区二区三区| 成人视频黄片| 91视频网| 人人澡人人添人人爽人人| 人操人操人操| 女人的天堂网| 国产精品一二| 国产乱妇乱子伦视频免费观看让女人| 四虎福利| 色欲成人AV| 欧美在线天堂| 天天夜夜人人| 黄色操逼大片| 免费毛片观看| 亚洲欧美视频| 农村乱子伦毛片国产乱| 学生妹毛片视频| 免费一级A| 国产色五月视频| 熟女人妻人妻の视频| 波多野结衣一级婬片A片免费下载| 91麻豆电影| 国内成人精品网站| 99热精品在线播放| 国产无遮挡又黄又爽| 日逼视| 操日视频| 国产无码一区| 七十路の高齡熟妇无码| 日本做爱视频| 天堂网资源| 午夜免费性爱视频| 亚洲一级黄色| 国内精品卡一卡二卡三| 日韩精品成人av| 日韩AV免费在线播放| 羞羞色院91蜜桃| 黄色网在线| 国产秘精品一区二区三区免费| 97久久超碰| 免费的一级A片| 亚洲中文在线视频| 黄片视频在线免费观看| 91在线无码视频| 日韩操逼网| www.777av| 亚洲高清电影| 激情a| 91探花秘在线播放| 成人色色网| 欧美日韩免费视频| a视频免费看| 激情视频免费看| 亚洲无码高清在线观看| 日韩在线观看一区| 91成人在线电影| 狠狠做深爱婷婷久久综合一区| 国产激情艹逼| 亚洲激情五月天| 婷婷五月天网| 欧美国产高清| 亚洲欧美日韩免费| 俺也去网| 亚洲成人777| 久久色在线视频| 久久无码电影| 日本黄色小视频| 亚洲AV成人片色在线观看高潮 | 欧美一区二区三区精品| 2024AV在线| 国产成人精品国内自产拍免费看 | 午夜人妻无码| 99热精品在线| 精品视频| 国产色网站| www.re99| 99色亚洲| 99热99在线| 大香蕉这里只有精品| 丰满人妻一区二区三区46| 黄网在线观看视频| 91麻豆精品成人一区二区| 国产三级91| 亚洲黄片大全| 作爱网站| 91亚洲日韩| 热无码av| 一区在线观看| 91久久国产| а天堂中文在线资源| 人人妻人人超| 五月丁香六月色| 五月天深爱激情网| 操逼麻豆| 超碰中文字幕| 欧美日韩性爱视频| 成人视频在线观看黄色18| 在线激情网站| 亚洲AV成人一区二区三区不卡| 久久艹骚逼| 91丨豆花丨成人熟女| 久久青草视频| 91丨九色丨东北熟女| 加勒比精品在线| 中文字字幕在线中文| 午夜久久视频| 国产精品美女久久久| 黄色av免费看| 日本成人不卡视频| 免费在线观看黄| 人人操AV| 青青草原成人| 黄色国产AV| 91香蕉在线视频| 亚洲精品麻豆| www.大香蕉伊人| 成人a片在线免费观看| 欧美丝袜脚交xxxxBH| 丰滿老婦BBwBBwBBw| 日韩AV免费看| 天堂在线无码| 亚洲不卡在线观看| 狼人一区二区| 五月网婷婷| 走光无码一区二区三区| 国产资源网| 仙踪林777777野大粗| 91熟女丰满原味| 五月丁香啪| 亚洲中文字幕在线免费观看视频 | 欧美二区三区| 日韩高清区| 人人夜夜人人| 中国精品77777777| 狠狠干2022| 国产男女无套免费| 91人妻一区二区三区| 四虎激情| 熟女少妇网站| 99re6热在线精品视频功能| 成人片天天看片欧美一级| 久久大香蕉视频| 天天色色| 无码精品ThePorn| 91大片| 欧美1区| 在线中文字幕av| 俄女兵一级婬片A片| 国产精品一卡| 三级麻豆| 影音先锋成人资源网| 国产一级a毛一级a做免费图片| 免费一级A片在线播放| 激情深爱五月天| 欧美中文字幕在线播放| 成人精品视频在线| 插逼视频网站| 人人干人人干人人干| 91精品久久久久久久久久| 一本一本久久a久久精品牛牛影视 91无码人妻精品一区二区蜜桃 | 最近日本中文字幕中文翻译歌词| 黄色视频免费网站| 荫蒂添到高潮免费视频| 久久群交| 欧美乱伦内射| 成人无码91| 欧美成人电影在线观看| 超碰在线人妻| 免费在线观看A| 黄色视频日本免费| 好男人WWW社区在线视频夜恋| 九九热这里有精品| 新中文字幕| 欧美人妻无码| 亚洲无码一卡二卡| 欧美高潮视频| 丁香六月综合激情| 亚洲视频网站在线观看| 强伦轩人妻一区二区三区四区| 中文无码日本一级A片人| 中文一区| 综合中文字幕| 秋霞中文字幕| 国产AV黄色| 中文字幕一区二区三区四虎在线 | 美国高清无码| 黄片www.| 狠狠撸综合| 91大神在线免费观看| 久久av一区二区三区观看| 99精品视频在线免费观看| 操逼免费视频网站| 国产精品国产三级国产AⅤ中文| 在线视频福利导航| 日韩动态视频| 香蕉视频成人在线| 久久一区二区三区四区五区 | 偷拍内射| 国产最新AV| 国产日韩欧美91| 超碰在线人妻| 人妻无码一区二区三区| 久久久青草| 91丨露脸丨熟女抽搐| 欧美老熟女18| 免费内射视频| 天天日天天射天天干| 人妻AV在线| 毛片国产| a无码| 91大神久久| 国产精品可站18| 中文字幕精品综合| 欧美熟妇擦BBBB擦BBBB| 中文字幕日韩有码| 亚洲人成人无码.www粉色| 伊人操逼| 亚洲字幕在线观看| www.俺也去| 黄骗免费网站| 国产成人毛片| 国产a级毛片| 性欧美亚洲| 中文字幕有码在线播放| 亚洲日韩精品在线视频| 围内精品久久久久久久久白丝制服 | 七十路の高齢熟妇无码| 99这里只有精品视频| 日韩一区二区视频| 美女网站黄| 亚州一级成人片| 免费AV资源在线观看| 免费av播放| 九九热这里有精品| 久操视频免费在线观看| 97午夜福利| 亚洲日韩在线观看视频| 丁香五月欧美| 天天射综合| 黄网| 国产波霸爆乳一区二区| 鲁一鲁在线视频| 伊人综合影院| 成人日批视频| 靠逼久久| 韩国无码人妻| 69AV视频| 999久久久久| 大香蕉在线播| 亚洲二区视频| 精品乱子伦一区二区三区在线播放| 国产精品福利小视频| 嫩草在线视频| 日韩一二区| 越南熟女| 黄色a片在线观看| 91成人视频免费观看| 免费无码蜜臀在线观看| 嫰BBB槡BBBB槡BBBB| 亚洲精品一二三区| 操逼大全| 国产欧美一区二区人妻喷水| 91色五月| 黄色生活片| 免费黄色视频在线| 欧美中文日韩| 日本黄色免费| 亚洲视频一区| 无码日韩成人| 午夜老司机福利一二三区| 亚洲AV无码成人专区| 亚洲欧美日本在线观看| 日韩人妻精品无码制服| 麻豆三级电影| 黄色视频日韩| 精品尤物在线| 免费无码国产在线55| 黄片无码在线观看| 国产一级a爱做片免费☆观看| 夜夜骚AV一二三区无码| 成人av影院| 久久久久久久久久久久高清毛片一级| 久久九九热| 日本国产精品| 午夜国产码网站码| 日韩视频免费观看高清完整版在线观 | 亚洲中文字幕影院| 国产精品久久久久久久久久王安宇| 国产精品久久久| 亚洲精品成人无码熟妇在线| 少婦揉BBBB揉BBBB揉| 毛片成人网| 亚洲xxxxx| 亚洲视频在线观看免费| 操B五月天| 欧美一二三| WWW色色| 免费的操逼视频| 亚洲久久久| 亚洲小电影在线观看| 欧美亚洲国产一区二区三区| 国产一区二区免费| 国产精品一卡| 国产精品美女| 苍井空在线播放| 精品av在线观看| 大香蕉伊人AV| 乱婬妺妺躁爽A片| 亚洲va在线∨a天堂va欧美va | 日韩精品视频在线| 日韩操逼图| 欧美日韩字幕| 无码秘人妻一区二区三-百度| 日韩综合精品中文字幕66| 天干天干天夜夜操| 色呦呦视频| 国产在线观看91| 欧美熟妇精品黑人巨大一二三区| 亚洲四区| 成人三级片视频| 婷婷综合一区| 无码成人A片在线观看| 亚洲中文字幕第一页| 国产精品自拍一区| 亚洲三级无码在线| 综合一区二区三区| 少妇无码视频| 亚洲一二区| 黑人亚洲娇小videos∞| 超碰97在线免费观看| 亚洲日韩久久| 亚洲国产成人精品综合99| 91妻人人澡人人爽人人精品| 精品久久99| 亚洲专区免费| 久久久女女女女999久久| 婷婷五月天激情电影| 日韩亚洲视频| 日韩无码久久久| 亚洲国产成人精品激情在线| 久久人妻精品| 福利在线播放| 精品久久国产| 欧美一级性爱在线观看| 福利逼站| 亚洲精品蜜桃| 91国产视频在线播放| 亚洲AV秘无码不卡在线观看| 欧美一级性爱视频| 人妖黄片| 西西444WWW无码视频软件功能介绍 | 亚洲激情一区| 日韩AV电影在线观看| 少妇69p| 在线观看www视频| 国产又爽又黄免费视频免费| 久久91久久久久麻豆精品| 另类老妇奶性生BBwBBw偷拍| 伊人性爱网| 黄色在线免费观看| A片欧美| 熟女人妻在线| а√最新版天堂中文在线| 亚洲无码中文人妻| 成人污污视频| 91亚洲国产AⅤ精品一区二区| 好吊视频一区二区三区| 蜜桃性视频| 日本黄色录像| 色五月在线| 四库影库| 国产老熟女久久久| 久久一道本| 国产精品AV片| 99热综合在线| 亚洲女人被黑人巨大进入| 影音先锋无码AV| 在线播放国产精品| 亚洲无码一区二区在线观看| A片观看视频| 韩国无码一区二区| 91狠狠色丁香婷婷综合久久| 香蕉av在线观看| 免费黄色成人| 老熟女-ThePorn| 亚洲无码高清在线观看视频| 国产91白丝在线播放| HEZ-502搭讪绝品人妻系列 | 逼逼影院| 国产黄在线观看| 香蕉成人视频| 口工视频| 中国一级A片| 欧美性爱高清| 亚洲精选一区二区三区| 亚洲资源在线观看| 最新日韩中文字幕| 内射视频在线免费观看| 影音先锋自拍| 欧美在线A片| 男人天堂色| 日逼视频| 伊人成人在线视频观看| 欧美日韩综合| 日本不卡一区二区三区四区| 成年视频网站| 北条麻妃无码在线播放| 国产女人18| 中文字幕福利视频| 一本一道久久综合狠狠躁牛牛影视 | 色噜噜狠狠一区二区三区300部| 最新日韩无码| 中文字幕在线观看辣文| 人人艹在线| 97人人草| 亚洲无吗在线播放| 在线观看视频免费无码免费视频 | 日皮在线观看| 无码天堂| 蜜臀久久99精品| 操碰人人| 麻豆传媒av| 色妞视频| 好吊一区二区三区| 91大奶熟女| 99视频热| 国产精品探花熟女| 青青草手机在线观看| 毛片一区| 久久久69| 国产爱搞| 二区三区在线观看| 成人精品三级麻豆| 淫秽视频免费看| 国产成人无码一区二区在线观看 | 黄色日本视频| 一本之道高清数码大全| 青青草亚洲| 国产一区免费观看| 免费肏逼视频| 亚洲精品无码视频| 国产A片电影|