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

事物消息的實(shí)現(xiàn)-RocketMQ知識(shí)體系6

開(kāi)發(fā) 前端
RocketMQ提供了事務(wù)消息的功能,采用2PC(兩段式協(xié)議)+補(bǔ)償機(jī)制(事務(wù)回查)的分布式事務(wù)功能,通過(guò)消息隊(duì)列 RocketMQ 版事務(wù)消息能達(dá)到分布式事務(wù)的最終一致。

[[411281]]

分布式事務(wù)是指事務(wù)的參與者、支持事務(wù)的服務(wù)器、資源服務(wù)器以及事務(wù)管理器分別位于不同的分布式系統(tǒng)的不同節(jié)點(diǎn)之上。例如在大型電商系統(tǒng)中,下單接口通常會(huì)扣減庫(kù)存、減去優(yōu)惠、生成訂單 id, 而訂單服務(wù)與庫(kù)存、優(yōu)惠、訂單 id 都是不同的服務(wù),下單接口的成功與否,不僅取決于本地的 db 操作,而且依賴第三方系統(tǒng)的結(jié)果,這時(shí)候分布式事務(wù)就保證這些操作要么全部成功,要么全部失敗。本質(zhì)上來(lái)說(shuō),分布式事務(wù)就是為了保證不同數(shù)據(jù)庫(kù)的數(shù)據(jù)一致性。

目前解決分布式事物的解決方案有seata,lcn 等。

RocketMQ 分布式事物實(shí)現(xiàn)

RocketMQ提供了事務(wù)消息的功能,采用2PC(兩段式協(xié)議)+補(bǔ)償機(jī)制(事務(wù)回查)的分布式事務(wù)功能,通過(guò)消息隊(duì)列 RocketMQ 版事務(wù)消息能達(dá)到分布式事務(wù)的最終一致。

首先,我們要知道什么是半事物消息和消息回查:

  • 半事務(wù)消息:

暫不能投遞的消息,發(fā)送方已經(jīng)成功地將消息發(fā)送到了消息隊(duì)列 RocketMQ 版服務(wù)端,但是服務(wù)端未收到生產(chǎn)者對(duì)該消息的二次確認(rèn),此時(shí)該消息被標(biāo)記成“暫不能投遞”狀態(tài),處于該種狀態(tài)下的消息即半事務(wù)消息。

  • 消息回查:

由于網(wǎng)絡(luò)閃斷、生產(chǎn)者應(yīng)用重啟等原因,導(dǎo)致某條事務(wù)消息的二次確認(rèn)丟失,消息隊(duì)列 RocketMQ 版服務(wù)端通過(guò)掃描發(fā)現(xiàn)某條消息長(zhǎng)期處于“半事務(wù)消息”時(shí),需要主動(dòng)向消息生產(chǎn)者詢問(wèn)該消息的最終狀態(tài)(Commit 或是 Rollback),該詢問(wèn)過(guò)程即消息回查。

【交互流程】

事務(wù)消息發(fā)送步驟如下:

  1. 發(fā)送方將半事務(wù)消息發(fā)送至消息隊(duì)列 RocketMQ 版服務(wù)端。
  2. 消息隊(duì)列 RocketMQ 版服務(wù)端將消息持久化成功之后,向發(fā)送方返回 Ack。確認(rèn)消息已經(jīng)發(fā)送成功,此時(shí)消息為半事務(wù)消息。
  3. 發(fā)送方開(kāi)始執(zhí)行本地事務(wù)邏輯。
  4. 發(fā)送方根據(jù)本地事務(wù)執(zhí)行結(jié)果向服務(wù)端提交二次確認(rèn)(Commit 或是 Rollback),服務(wù)端收到 Commit 狀態(tài)則將半事務(wù)消息標(biāo)記為可投遞,訂閱方最終將收到該消息;服務(wù)端收到 Rollback 狀態(tài)則刪除半事務(wù)消息,訂閱方將不會(huì)接受該消息。

事務(wù)消息回查步驟如下:

  1. 在斷網(wǎng)或者是應(yīng)用重啟的特殊情況下,上述步驟 4 提交的二次確認(rèn)最終未到達(dá)服務(wù)端,經(jīng)過(guò)固定時(shí)間后服務(wù)端將對(duì)該消息發(fā)起消息回查。
  2. 發(fā)送方收到消息回查后,需要檢查對(duì)應(yīng)消息的本地事務(wù)執(zhí)行的最終結(jié)果。
  3. 發(fā)送方根據(jù)檢查得到的本地事務(wù)的最終狀態(tài)再次提交二次確認(rèn),服務(wù)端仍按照步驟 4 對(duì)半事務(wù)消息進(jìn)行操作。

總體而言RocketMQ事務(wù)消息分為兩條主線:

  • 發(fā)送流程:發(fā)送half message(半消息),執(zhí)行本地事務(wù),發(fā)送事務(wù)執(zhí)行結(jié)果
  • 定時(shí)任務(wù)回查流程:MQ定時(shí)任務(wù)掃描半消息,回查本地事務(wù),發(fā)送事務(wù)執(zhí)行結(jié)果

源碼相關(guān)

Producer發(fā)送事務(wù)半消息的(prepare)

在本地應(yīng)用發(fā)送事務(wù)消息的核心類是TransactionMQProducer,該類通過(guò)繼承DefaultMQProducer來(lái)復(fù)用大部分發(fā)送消息相關(guān)的邏輯,這個(gè)類的代碼量非常少只有100來(lái)行,下面是這個(gè)類的sendMessageTransaction方法

這里的transactionListener就是上面所說(shuō)的消息回查的類,它提供了2個(gè)方法:

  • executeLocalTransaction

執(zhí)行本地事務(wù)

  • checkLocalTransaction

回查本地事務(wù)

接著看DefaultMQProducer.sendMessageInTransaction()方法:

該方法主要做了以下事情

  • 給消息打上事務(wù)消息相關(guān)的tag,用于broker區(qū)分普通消息和事務(wù)消息
  • 發(fā)送半消息(half message)
  • 發(fā)送成功則由transactionListener執(zhí)行本地事務(wù)
  • 執(zhí)行endTransaction方法,告訴 broker 執(zhí)行 commit/rollback。

執(zhí)行本地事務(wù)

Producer 半事務(wù)消息發(fā)送成功后,會(huì)調(diào)用transactionListener.executeLocalTransaction方法執(zhí)行本地事務(wù)。只有半消息發(fā)送成功后,才會(huì)執(zhí)行本地事務(wù),如果半消息發(fā)送失敗,則設(shè)置回滾。

結(jié)束事務(wù)(commit/rollback)

本地事務(wù)執(zhí)行后,則調(diào)用this.endTransaction()方法,根據(jù)本地事務(wù)執(zhí)行狀態(tài),去提交事務(wù)或者回滾事務(wù)。

如果半消息發(fā)送失敗或本地事務(wù)執(zhí)行失敗告訴服務(wù)端是刪除半消息,半消息發(fā)送成功且本地事務(wù)執(zhí)行成功則告訴服務(wù)端生效半消息

Broker端處理事務(wù)消息

Broker端通過(guò)SendMessageProcessor.processRequest()方法接收處理 Producer 發(fā)送的消息 最后會(huì)調(diào)用到SendMessageProcessor.sendMessage(),判斷消息類型,進(jìn)行消息存儲(chǔ)。

存儲(chǔ)半消息

代碼 prepareMessage(msgInner) :

在這一步,備份消息的原主題名稱與原隊(duì)列ID,然后取消事務(wù)消息的消息標(biāo)簽,重新設(shè)置消息的主題為:RMQ_SYS_TRANS_HALF_TOPIC,隊(duì)列ID固定為0。與其他普通消息區(qū)分開(kāi),然后完成消息持久化。

到這里,Broker 就初步處理完了 Producer 發(fā)送的事務(wù)半消息。

半消息事務(wù)回查

兩段式協(xié)議發(fā)送與提交回滾消息,執(zhí)行完本地事務(wù)消息的狀態(tài)為UNKNOW時(shí),結(jié)束事務(wù)不做任何操作。通過(guò)事務(wù)狀態(tài)定時(shí)回查得到發(fā)送端的事務(wù)狀態(tài)是rollback或commit。

通過(guò)TransactionalMessageCheckService線程定時(shí)去檢測(cè)RMQ_SYS_TRANS_HALF_TOPIC主題中的消息,回查消息的事務(wù)狀態(tài)。

  • RMQ_SYS_TRANS_HALF_TOPIC

prepare消息的主題,事務(wù)消息首先先進(jìn)入到該主題。

  • RMQ_SYS_TRANS_OP_HALF_TOPIC

當(dāng)消息服務(wù)器收到事務(wù)消息的提交或回滾請(qǐng)求后,會(huì)將消息存儲(chǔ)在該主題下。

Broker處理END_TRANSACTION

當(dāng)Producer或者回查定時(shí)任務(wù)提交/回滾事務(wù)的時(shí)候,Broker如何處理事務(wù)消息提交、回滾命令的?其核心實(shí)現(xiàn)如下:

  • 根據(jù)commitlogOffset找到消息
  • 如果是提交動(dòng)作,就恢復(fù)原消息的主題與隊(duì)列,再次存入commitlog文件進(jìn)而轉(zhuǎn)到消息消費(fèi)隊(duì)列,供消費(fèi)者消費(fèi),然后將原預(yù)處理消息存入一個(gè)新的主題RMQ_SYS_TRANS_OP_HALF_TOPIC,代表該消息已被處理
  • 回滾消息,則直接將原預(yù)處理消息存入一個(gè)新的主題RMQ_SYS_TRANS_OP_HALF_TOPIC,代表該消息已被處理。

整體實(shí)現(xiàn)流程

如果消費(fèi)端消費(fèi)失敗了怎么辦?

如果有消息消費(fèi)失敗了,則將失敗的消息回傳給broker,即重新寫(xiě)入commitLog文件,消費(fèi)者將重新消費(fèi);如果消息回傳的時(shí)候,consumer和broker之間網(wǎng)絡(luò)斷開(kāi),則consumer會(huì)調(diào)用submitConsumeRequestLater()方法,在consumer端進(jìn)行重新消費(fèi),如果仍然消費(fèi)失敗,會(huì)不斷重試直到達(dá)到默認(rèn)的16次,你可以使用msg.getReconsumeTimes()方法來(lái)獲取當(dāng)前重試次數(shù),如果重試次數(shù)足夠多之后仍然無(wú)法消費(fèi)成功,必須通過(guò)工單、日志等方式進(jìn)行人工干預(yù)以讓producer事務(wù)進(jìn)行回退處理。

Producer發(fā)送半消息失敗

可能由于網(wǎng)絡(luò)或者mq故障,導(dǎo)致 Producer 訂單系統(tǒng) 發(fā)送半消息(prepare)失敗。

這時(shí)訂單系統(tǒng)可以執(zhí)行回滾操作,比如“訂單關(guān)閉”等,走逆向流程退款給用戶。

半消息發(fā)送成功,本地事務(wù)執(zhí)行失敗

如果訂單系統(tǒng)發(fā)送的半消息成功了,但是執(zhí)行本地事務(wù)失敗了,如更新訂單狀態(tài)為“已完成”。

這種情況下,執(zhí)行本地事務(wù)失敗后,會(huì)返回rollback給 MQ,MQ會(huì)刪除之前發(fā)送的半消息。 也就不會(huì)調(diào)用優(yōu)惠券系統(tǒng)了。

半消息發(fā)送成功,沒(méi)收到MQ返回的響應(yīng)

假如訂單系統(tǒng)發(fā)送半消息成功后,沒(méi)有收到MQ返回的響應(yīng)。

這個(gè)時(shí)候可能是因?yàn)榫W(wǎng)絡(luò)問(wèn)題,或者其他異常報(bào)錯(cuò),訂單系統(tǒng)誤以為發(fā)送MQ半消息失敗,執(zhí)行了逆向回滾流程。

但這個(gè)時(shí)候其實(shí)mq已經(jīng)保存半消息成功了,那這個(gè)消息怎么處理?

這個(gè)時(shí)候MQ的后臺(tái)消息回查定時(shí)任務(wù)TransactionalMessageCheckService會(huì)每隔1分鐘掃描一次半消息隊(duì)列,判斷是否需要消息回查,然后回查訂單系統(tǒng)的本地事務(wù),這時(shí)MQ就會(huì)發(fā)現(xiàn)訂單已經(jīng)變成“已關(guān)閉”,此時(shí)就要發(fā)送rollback請(qǐng)求給mq,刪除之前的半消息。

如果commit/rollback失敗了

這個(gè)其實(shí)也是通過(guò)定時(shí)任務(wù)TransactionalMessageCheckService,它會(huì)發(fā)現(xiàn)這個(gè)消息超過(guò)一定時(shí)間還沒(méi)有進(jìn)行二階段處理,就會(huì)回查本地事務(wù)。

小結(jié)

消息隊(duì)列RocketMQ分布式事務(wù)消息不僅可以實(shí)現(xiàn)應(yīng)用之間的解耦,又能保證數(shù)據(jù)的最終一致性。同時(shí),傳統(tǒng)的大事務(wù)可以被拆分為小事務(wù),不僅能提升效率,還不會(huì)因?yàn)槟骋粋€(gè)關(guān)聯(lián)應(yīng)用的不可用導(dǎo)致整體回滾,從而最大限度保證核心系統(tǒng)的可用性。在極端情況下,如果關(guān)聯(lián)的某一個(gè)應(yīng)用始終無(wú)法處理成功,也只需對(duì)當(dāng)前應(yīng)用進(jìn)行補(bǔ)償或數(shù)據(jù)訂正處理,而無(wú)需對(duì)整體業(yè)務(wù)進(jìn)行回滾。

從RocketMQ事務(wù)型消息鏈路體現(xiàn)了面向失敗的設(shè)計(jì)思路,也體現(xiàn)了事務(wù)型系統(tǒng)的嚴(yán)謹(jǐn)性,在第二階段的消息沒(méi)有送達(dá)的時(shí)候,broker會(huì)主動(dòng)請(qǐng)求producer端去做check,producer做完check后會(huì)將事務(wù)的狀態(tài)再次返回。雖然說(shuō)實(shí)現(xiàn)最終一致的方案有很多,但是事務(wù)型消息是比較優(yōu)雅實(shí)現(xiàn)方式之一。

本文轉(zhuǎn)載自微信公眾號(hào)「小汪哥寫(xiě)代碼」,可以通過(guò)以下二維碼關(guān)注。轉(zhuǎn)載本文請(qǐng)聯(lián)系小汪哥寫(xiě)代碼公眾號(hào)。

 

責(zé)任編輯:武曉燕 來(lái)源: 小汪哥寫(xiě)代碼
相關(guān)推薦

2021-07-13 11:52:47

順序消息RocketMQkafka

2021-07-08 07:16:24

RocketMQ數(shù)據(jù)結(jié)構(gòu)Message

2021-07-07 15:29:52

存儲(chǔ)RocketMQ體系

2021-07-09 07:15:48

RocketMQ數(shù)據(jù)結(jié)構(gòu)kafka

2021-07-16 18:44:42

RocketMQ知識(shí)

2025-07-08 08:51:45

2021-07-12 10:25:03

RocketMQ數(shù)據(jù)結(jié)構(gòu)kafka

2023-07-18 09:03:01

RocketMQ場(chǎng)景消息

2021-07-07 07:06:31

Brokerkafka架構(gòu)

2015-07-28 17:52:36

IOS知識(shí)體系

2017-06-22 13:07:21

2012-03-08 11:13:23

企業(yè)架構(gòu)

2017-02-27 16:42:23

Spark識(shí)體系

2017-04-03 15:35:13

知識(shí)體系架構(gòu)

2021-07-05 06:26:08

生產(chǎn)者kafka架構(gòu)

2021-07-08 05:52:34

Kafka架構(gòu)主從架構(gòu)

2015-07-16 10:15:44

web前端知識(shí)體系

2020-09-09 09:15:58

Nginx體系進(jìn)程

2020-10-26 08:34:18

知識(shí)體系普適性

2020-03-09 10:31:58

vue前端開(kāi)發(fā)
點(diǎn)贊
收藏

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

自由日本语亚洲人高潮| free性护士videos欧美| 欧美资源在线| 久久视频在线视频| 欧美xxxxx精品| 欧美va视频| 亚洲一区自拍偷拍| 日产中文字幕在线精品一区| 国产又黄又粗又猛又爽| 亚洲人成人一区二区三区| 中文字幕av一区中文字幕天堂| 五月天六月丁香| 欧美xx视频| 一区二区三区在线影院| 欧美高清视频一区| 国产成人精品免费看视频| 免费看的黄色欧美网站| 久久999免费视频| 亚洲性猛交xxxx乱大交| 日韩一区网站| 欧洲一区二区av| 2018中文字幕第一页| 在线视频婷婷| 国产亚洲女人久久久久毛片| 99国精产品一二二线| 亚洲av无码乱码国产精品fc2| 欧美fxxxxxx另类| 一区二区三区精品99久久| 少妇精品无码一区二区| 亚洲综合视频| 欧亚一区二区三区| 日韩中文字幕三区| 国语对白在线刺激| 亚洲欧美日韩电影| 亚洲免费视频一区| 玖玖综合伊人| av电影天堂一区二区在线观看| 成人深夜直播免费观看| 国产黄色免费视频| 另类国产ts人妖高潮视频| 欧美精品xxx| 国产av无码专区亚洲av毛网站| 国产一区二区观看| 亚洲欧美国产精品va在线观看| 精品1卡二卡三卡四卡老狼| 亚洲狼人综合| 在线播放欧美女士性生活| 国产视频在线视频| 色综合一本到久久亚洲91| 懂色av影视一区二区三区| 无码av天堂一区二区三区| av网址在线免费观看| 国产精品久久久久久久久快鸭| 欧美三级网色| 国产在线观看网站| 国产亚洲成年网址在线观看| 久久人人九九| 青青草在线免费视频| 91丨九色丨蝌蚪富婆spa| 国产在线精品一区二区三区| 丰满人妻一区二区三区免费视频| 国产成人啪免费观看软件| 3d动漫啪啪精品一区二区免费| 亚洲最大成人av| 精品一区二区三区欧美| 91久久久久久久| 999国产精品视频免费| 国产乱子伦视频一区二区三区| 亚洲aⅴ男人的天堂在线观看 | 国产大片一区| www.日韩不卡电影av| 国产精品成人69xxx免费视频| 亚洲成人av| 欧美第一页在线| 日韩高清精品免费观看| 亚洲一区二区三区免费在线观看| 欧美综合第一页| 波多野结衣黄色| 国产一区中文字幕| 国产精品国模大尺度私拍| 特黄视频在线观看| 国产日韩亚洲欧美综合| 制服国产精品| 超碰在线最新网址| 色综合视频在线观看| 亚洲最大成人在线观看| 国产欧美88| 亚洲级视频在线观看免费1级| 性少妇bbw张开| 日韩一区欧美| 欧美激情乱人伦一区| 亚洲免费在线视频观看| 美日韩一区二区三区| 999精品视频一区二区三区| 色哟哟在线观看| 中文字幕一区二区三区蜜月| 免费的av在线| 欧美日韩美女| 日韩一区二区免费在线电影| 中出视频在线观看| 久久国产影院| 韩国国内大量揄拍精品视频| 中文字字幕在线中文| 精品亚洲aⅴ乱码一区二区三区| 成人在线免费网站| 成年在线观看免费人视频| 一区二区三区毛片| 尤蜜粉嫩av国产一区二区三区| 6080成人| 日韩视频免费中文字幕| 97超碰人人干| 国产伦精品一区二区三区在线观看| 久久久com| 欧美人体视频xxxxx| 91成人免费网站| 国模私拍在线观看| 亚洲精品在线观看91| 国产不卡一区二区在线播放| 丰满人妻一区二区三区四区53 | 精品一区二区影视| 免费看国产精品一二区视频| 丝袜国产在线| 欧美日韩国产中文| 9.1成人看片免费版| 国产一区二区中文| 91亚洲精品久久久| 永久免费av片在线观看全网站| 五月天欧美精品| 亚洲精品一区二区18漫画| 色综合天天爱| 国产精品com| 免费观看成年在线视频网站| 亚洲高清在线精品| 在线观看一区二区三区视频| 97视频精品| 国产精品久久久久久亚洲影视| 午夜av免费在线观看| 亚洲国产一区二区三区| 波多野结衣免费观看| 99精品小视频| 国产日产亚洲精品| 在线观看国产原创自拍视频| 色呦呦一区二区三区| www.自拍偷拍| 国产亚洲毛片| 久热国产精品视频一区二区三区| 91www在线| 亚洲国产精品久久| 国产精品19乱码一区二区三区| 韩国理伦片一区二区三区在线播放| 亚洲国产午夜伦理片大全在线观看网站 | 欧美激情视频一区二区三区不卡| 国产三级视频在线播放| 日韩毛片一二三区| 五月天开心婷婷| 97精品国产一区二区三区| 成人久久一区二区三区| 国产福利在线播放麻豆| 制服丝袜在线91| 粉嫩av性色av蜜臀av网站| 国产在线一区观看| 成人高清dvd| 国产欧美一区二区三区米奇| 97免费中文视频在线观看| 五月婷婷深深爱| 在线视频你懂得一区| 东京热无码av男人的天堂| 国内精品国产三级国产a久久| 国产人妻互换一区二区| 综合欧美亚洲| 91高清免费视频| 激情福利在线| 在线综合+亚洲+欧美中文字幕| 中文字幕在线有码| 成人动漫中文字幕| 国产a视频免费观看| 日韩精品中文字幕第1页| 91亚洲精品在线| 91破解版在线观看| 亚洲性夜色噜噜噜7777| 国产精品无码在线播放| 午夜精品久久久久久久久| 国产伦精品一区二区三区妓女| 免费在线成人网| 大陆极品少妇内射aaaaaa| 色狼人综合干| 成人激情在线播放| 激情国产在线| 中文字幕亚洲欧美在线| 亚洲精品无amm毛片| 一本色道a无线码一区v| 免费在线观看黄色小视频| 成人国产在线观看| 中文久久久久久| 亚洲国产美女| 亚洲午夜精品一区二区三区| 国产精品sss在线观看av| 国产高清在线不卡| 波多野结衣在线高清| 综合av色偷偷网| 欧性猛交ⅹxxx乱大交| 精品视频免费在线| 日本一级黄色录像| 亚洲欧美经典视频| 受虐m奴xxx在线观看| 国产精品一二一区| 少妇一级淫免费放| 国产精品婷婷| 青草网在线观看| 成人嘿咻视频免费看| 国产偷久久久精品专区| 亚洲精品成a人ⅴ香蕉片| 69久久夜色精品国产69| 国产鲁鲁视频在线观看特色| 亚洲欧美综合精品久久成人| www.com欧美| 欧美日韩国产另类不卡| 黄色一级片免费在线观看| 一区二区三区91| 天天爽天天爽天天爽| 久久精品亚洲精品国产欧美| 国产精品亚洲一区二区无码| 另类综合日韩欧美亚洲| 日韩在线xxx| 怡红院精品视频在线观看极品| 伊人狠狠色丁香综合尤物| 亚洲精品小区久久久久久| caoporn国产精品免费公开| 日韩一级特黄| 国产精品日韩av| 欧美三级精品| 日本欧美一二三区| 1区2区3区在线| 欧美精品videos性欧美| 1024在线播放| 久久这里只有精品99| 久草免费在线| 俺也去精品视频在线观看| 在线免费看a| 自拍偷拍亚洲在线| 日韩在线观看www| 日韩午夜在线视频| 色老头视频在线观看| 色偷偷偷综合中文字幕;dd| 国产福利小视频在线观看| 亚洲女成人图区| 激情综合闲人网| 一区国产精品视频| caoporn国产精品免费视频| 国产亚洲视频在线| 在线观看麻豆| www.久久色.com| 好吊日视频在线观看| 日韩在线一区二区三区免费视频| 亚洲乱亚洲乱妇| xxx成人少妇69| caopeng在线| 久久久久久久久亚洲| 成年男女免费视频网站不卡| 97人人做人人爱| 日韩大尺度黄色| 国产成人短视频| 激情小说亚洲| 91在线看www| 91精品导航| 精品国产乱码一区二区三区四区| 欧美福利在线播放网址导航| 免费中文日韩| 日韩av密桃| 公共露出暴露狂另类av| 在线欧美三区| 成人在线看视频| 国产综合色精品一区二区三区| 污免费在线观看| 99re成人精品视频| 国产成人免费观看网站| 亚洲欧美日韩综合aⅴ视频| 九九九免费视频| 狠狠久久亚洲欧美专区| 自拍偷拍福利视频| 日韩欧美一二三四区| 亚洲欧美日本在线观看| 中文字幕精品在线| 免费电影网站在线视频观看福利| 欧美亚洲国产精品| 久久亚洲人体| 精品乱码一区二区三区| 欧美亚洲国产激情| 男人天堂新网址| 日韩精品每日更新| 久久无码专区国产精品s| 国产亚洲制服色| 精品一级少妇久久久久久久| 色爱区综合激月婷婷| 精品欧美在线观看| 亚洲女人被黑人巨大进入| 成人在线免费看片| 日本久久91av| 亚洲无线观看| 婷婷久久伊人| 伊人久久大香线蕉综合热线 | 国产999精品久久久久久| 日本xxxxxxxxx18| 亚洲一区二区三区视频在线播放 | 欧美精选午夜久久久乱码6080| 五月天激情婷婷| 美女久久久久久久久久久| 久久99久久99精品免观看软件| 91观看网站| 日韩成人激情| 丰满人妻中伦妇伦精品app| 婷婷激情成人| 欧美在线一二三四区| 精品国产999久久久免费| 亚洲欧美激情四射在线日| 色呦呦呦在线观看| 国产精品网站视频| 影视先锋久久| 国产va亚洲va在线va| 国产一区二区三区香蕉| 国产毛片欧美毛片久久久| 午夜精品福利一区二区三区av| 国产精品伦理一区| 国产亚洲欧洲高清一区| 亚洲性色av| 国产一区在线免费观看| 欧美日韩亚洲一区二区三区在线| 在线观看免费av网址| 日本一区二区免费在线观看视频 | 乱一区二区三区在线播放| 国内精品久久久久久久影视麻豆 | 日韩精品视频在线观看视频| 久草热8精品视频在线观看| 中文字幕av久久爽一区| 狠狠躁夜夜躁人人爽天天天天97 | 久久女同性恋中文字幕| 黄色小视频在线免费看| 日韩欧美国产成人一区二区| 三级外国片在线观看视频| 国产精品网红福利| 成人一区不卡| 三上悠亚av一区二区三区| 国产亲近乱来精品视频| 日韩人妻精品中文字幕| 亚洲精品在线看| 欧美日韩大片| 日本一区视频在线播放| 午夜亚洲视频| 久久精品国产亚洲av久| 91精品91久久久中77777| 免费福利在线观看| 国产精品第3页| 久久在线电影| 日韩成人精品视频在线观看| 国产精品第四页| 国产精品爽爽久久久久久| 久久久精品一区二区| 久久的色偷偷| wwwwww欧美| 91亚洲大成网污www| 国产区一区二区三| 在线中文字幕日韩| japansex久久高清精品| 免费看欧美一级片| 99精品一区二区三区| 手机在线看片1024| 中文字幕在线看视频国产欧美| 国产精品99久久久久久董美香 | 噜噜噜久久亚洲精品国产品小说| 少妇大叫太粗太大爽一区二区| 日本道精品一区二区三区| 91大神在线网站| 亚洲一区二区自拍| 国产精品人人爽人人做我的可爱 | 亚洲欧美日韩在线不卡| 不卡的日韩av| 青青久久av北条麻妃海外网| 久久免费大视频| 白嫩情侣偷拍呻吟刺激| 一本大道av一区二区在线播放| 自拍视频在线| 国产欧美日韩伦理| 三级一区在线视频先锋| www.99re6| 亚洲高清在线观看| 国产综合色在线观看| 无码日本精品xxxxxxxxx| xf在线a精品一区二区视频网站| 中文字幕永久在线观看| 久久综合色影院| 制服丝袜日韩| 女教师高潮黄又色视频| 色先锋久久av资源部| 国产婷婷视频在线 | 美女欧美视频在线观看免费| 国产精品视频成人| 最新亚洲激情| 三上悠亚在线观看视频| 亚洲精品第一页| 亚洲欧美专区|