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

冪等性設計:震驚!吃一碗粉竟付了兩碗的錢?

開發 架構
在多年的工作過程中,我面試過很多候選人,我經常會結合候選人的工作,考察其在冪等性設計上的思考。因為冪等性是一個大家一定會碰到的點,其中的細節很能反映候選人的嚴謹性和技術能力。

?這是一篇絕對細節的避坑指南,是可以救命的那種,極富實踐意義。一共有十多張圖,強烈推薦你收藏、細讀。

我們從一個故事開始:

話說有一天,支付組的小王開了一上午的會,終于在12點半的時候結束了。饑腸轆轆的他掏出了手機準備點外賣,突然,他想起半個小時后還有個會。得了,外賣肯定來不及了,只能下樓隨便吃點了。

下樓的路上,小王想起前幾天聽同事說,馬路對過開了一家新的嗦粉店。那家的粉不貴,也不好吃。小王一想,這家人肯定不多,滿足我快速就餐的需求,就這家了!

剛到門口小王就震驚了,原以為只有一兩個人,沒想到,居然一個人都沒有!小王咽了咽口水,看了看時間,咱們賭一把這東西吃了不拉肚子吧。于是就坐下了。

點了碗菜單上的招牌“招牌炒粉”。上菜果然很快,味道也是“名副其實”,沒想到的是,這家店居然開通了小王公司研發的支付工具。吃完后,小王就用自己負責的支付工具做了支付。剛做完支付,小王收到兩條銀行扣款通知,各扣了18塊錢。納尼?!難道是銀行重復發了消息?小王點進自己的支付賬單,看到了毛骨悚然的一幕,居然扣了兩次錢!

小王心想,完了,肯定是冪等性出問題了。于是顧不上退款,趕緊就跑回了公司。因為小王擔心,明天他可能就一碗粉都吃不上了!

01什么是冪等性

所以,我們今天就來聊聊冪等性這個話題。冪等性設計可以說是系統設計中最重要的一點,設計不好分分鐘就發生資損。輕則一年白干,重則卷鋪蓋走人,更重則公司倒閉。

我們先解釋一下“冪等性”這個詞。

用大白話來說就是:“同一個動作無論重復多少次,結果都是一樣的”。這里要注意的是“結果”兩個字。一個動作可能帶來多個結果,所以冪等性是針對其中的一個結果的。

我們拿洗碗舉例:你洗了一個碗,然后放在水池邊,過一會兒忙完了回到水池邊又看到這個碗,但是你忘記了之前是否洗過(或者你不確定中間是否又被人使用過),保險起見你就是再洗一次。

那么對于碗來說,洗碗就是具備冪等性的。一個碗你洗一次、兩次、n次,結果都是一樣的,就是變干凈了。但對于洗潔精來說,洗碗就不具備冪等性。一個碗你洗的次數越多,洗潔精就越少。

用數學公式來說就是:f(x) = f(f(x))。比如,計算絕對值就具備冪等性,abs(x) = abs(abs(x))。?

回到開頭的例子。你吃了一碗粉,然后使用某支付工具支付。app往后端服務器發起了一筆支付請求,但是因為超時,app沒有拿到這個支付結果,于是重試了一次。假設兩次請求都到達了服務器但是沒有做好冪等設計,就會扣兩次錢,就出現了“吃一碗粉,付兩碗錢”的結果。

這種事情如果出現多了,各種投訴及舉報分分鐘就可以讓公司閉門歇業。

你也許會說,只要不發起重試就好了!那如果你是提供了一個支付接口呢?如果支付系統是收到了上游訂單系統的異步消息然后進行支付,消息重發了呢?

你也許想到了自己系統的冪等性設計,你也許想到了一些最耳熟能詳的方法論,但是相信我,好的冪等性設計遠沒有你想象的那么簡單。

很多的冪等性設計都是存在漏洞的。甚至在大廠,冪等性設計都是一個重點話題。

02操作分類與冪等性

在具體講設計之前,我們先聊下操作的分類以及對應的冪等性問題。

所有的操作無外乎CURD四種類型(CURD = Create Update Read Delete)。

【Read】讀操作一般來說是天然具備冪等性的。

【Delete】刪除操作也是天然具備冪等性,無論你帶不帶where條件,執行一次和執行一百次結果是一樣的。

【Update】更新操作不具備天然的冪等性。例如:UPDATE 余額表 SET 余額=余額-1 WHERE 用戶=CodingBetterLife。這個語句執行一次扣一塊錢,執行了多次就反復扣。但是Update的問題是很好解決的,只需要在where條件中加上原始值就可以了。比如把上面的語句改為:UPDATE 余額表 SET 余額=余額-1 WHERE 用戶=CodingBetterLife and 余額=100。

【Create】新建操作也不具備天然冪等性。比如app重試支付請求,每次支付都會插入一條支付記錄,需要有唯一鍵來控制(這個我們后面細說,僅僅唯一鍵是不夠的)。

處理冪等性,最難的地方其實就在Create的部分。我們細細看來。

03冪等性如何設計

我們就拿開頭吃粉的例子來看看如何設計冪等性。我們上面提到,冪等性是針對其中一個結果的,我們討論的是針對支付結果的冪等性。因為結果冪等才是我們最關心的。

我們先一起確認下,冪等性設計的目標:

【目標1】無論是有意還是無意的重復支付請求,都不能出現扣兩次錢的情況。

【目標2】要能夠獲得正確的支付結果(必須能獲得,并且必須正確)。

開始我們的設計之旅:

(我們會從應對app支付的重復請求,過渡到一個支持重試的支付服務設計)

吃完粉以后,你掏出手機進行支付,整個過程如下所示:

圖片

99.99%的操作,都可以這樣順利地完成,但生活吧,意外總是不期而遇:

圖片

這種情況下,如果我們不做任何設計,自然就會重復支付。

要杜絕這種問題,最直接的思路就是:不要重試!不要重試!不要重試!(學一下三體)

針對【意外1】:app可以設計成點擊后將按鈕失效。

針對【意外2】和【意外3】:可以關閉相關的重試功能。

這是采用了“逃避”的思路,也就是不要讓問題發生。但這真不是你能控制的。況且,一旦整個架構體系變得復雜,你很難評估是不是某個點會有重試的邏輯。

所以,解決冪等性問題,不能依賴別人“不重試”,而要以“肯定會重試”作為前提條件來設計。

但這并不是說所有的邏輯可以在后端完成,app側起碼要做一個基本的改造,那就是每次用戶的點擊請求,會生成唯一一個ID,并且把這個ID一路帶下來。

圖片

然后,后端可以這樣來設計:

注意:從這里開始,我們的后端設計不僅應對“不小心”的重復支付,更針對故意的調用方重試。你也可以理解為我們在做一個“支付服務”的設計。

圖片

(方案1)

此時,如果原始請求超時異常,然后重試的話,會被攔截,如下圖:

圖片

據我了解,大部分冪等的設計都是這種方式,你可以對比下你的系統。

但這樣設計會有個不容易想到的嚴重缺陷,看下圖:

圖片

這種情況非常嚴重。你可以想象,如果調用方認為失敗,但其實支付成功,會是什么結果?!

這里的關鍵問題在于:需要控制在任何時刻,任何一個唯一鍵請求,只有一個線程在執行。所以,我們需要在業務檢驗之前,就做一個分布式鎖,保證只有一個線程處理支付。

這里我們有兩個方案。

第一個方案是:將落支付流水的動作提到業務檢驗之前。如下圖:

圖片

(方案2)

這個方案的問題在于,會有很多業務校驗失敗的流水在庫中。這無論對檢索的性能還是存儲的成本來說,都是一個需要考慮的點。

另外,所有的請求直接落庫,對數據庫壓力很大。例如有黑產用高并發掃你的接口,你不先做一次黑名單檢查直接落庫,對db來說風險極高,可能會橫向影響其他業務。

如果你認為沒有這種場景,并且有很多廢流水沒問題,這個方案是可以的。事實上,有些銀行的接口就是這么設計的。

如果你不想有那么多廢流水,你可以采用第二個方案,那就是在業務檢驗前加一個分布式鎖。同時,如果分布式鎖獲取失敗,則查一下流水庫,返回流水狀態。如下圖:

圖片

(方案3)

上述方案采用的是redis分布式鎖,也可以使用db的冪等表來實現。

但是,這個方案是有問題的。

如果原始請求在搶到分布式鎖以后異常中斷了(例如服務器重啟)。重試的請求都只能獲得“訂單不存在”的狀態。但是訂單不存在有可能是因為中斷,有可能是因為原始請求還沒有走到落數據庫這一步。對于調用方來說不敢直接認為失敗。

我們看下圖:

圖片

這種情況下,我們往往會給到調用方一個約定。約定:如果原始請求后超過一段時間(例如1小時,以下都以1小時舉例)重試,依然獲取到訂單不存在,則可以認定為失敗!服務端要保證1小時內,原始請求一定執行完(無論是成功、失敗、還是異常終止)。?

圖片

到這里總該萬事大吉了吧?

沒錯,到這里確實就可以了。很多大廠都是這么設計的。?

但是,這里有一個問題。那就是,對于調用方來說,如果服務端發生異常中斷(例如機器重啟)的情況,他只能等到約定的1小時后換號重新支付。

不要小看換號這個事情。調用方對一筆支付換號重試是高危操作,一旦換號,所有的冪等都失效。所以,如果調用方想要盡量保證支付成功,同時忌諱換號來做重試。該怎么辦呢?

上面的方案中,之所以需要換號,是因為我們的分布式鎖不會釋放。那么,我們如果1小時后刪除冪等,就可以做原號重試了。如下圖:

圖片

(方案4)

不同于換號重試的是,原號重試依然在支付流水數據庫層面有冪等控制,不會重復支付。這樣,我們就實現了不換號重試的功能。

我們來總結一下,我們一共有三種方案來實現冪等,我們匯總如下圖:

圖片

這三個方案有自己的使用場景,我最后來說一下:

【方案2】如果你確保沒有惡意請求給數據庫帶來壓力,并且接受大量廢流水,可以直接使用這個方案。同時確保整個“從流水入庫到支付完成”在一個事務中。如果不在一個事務中,會存在支付異常時支付流水懸掛的問題。需要通過補償的方式推進。這個點我們此文不細講了。如果有問題可以公眾號給我留言。

【方案3】如果你可以要求調用方接受一段時間后換號重試。你可以使用這個方案。

【方案4】如果你的調用方無法接受換號重試,你可以選擇這個方案。

事實上,【方案3】和【方案4】是大廠的最佳實踐。你可以在設計自己系統時酌情參考。當然,有一些變種的實現,但原理上和核心環節上的設計是一致的。?

你現在再回頭看看方案1,是不是就深刻體會到,冪等性設計并沒有那么容易吧。

04結尾

到這里,我們就把冪等性問題講完了。

在多年的工作過程中,我面試過很多候選人,我經常會結合候選人的工作,考察其在冪等性設計上的思考。因為冪等性是一個大家一定會碰到的點,其中的細節很能反映候選人的嚴謹性和技術能力。

對于架構來說,“異步”和“重試”是我們常用且重要的設計思路,而這兩者都需要嚴格考慮“冪等性”。

所以,千萬不要讓你的用戶發生“吃一碗粉付兩碗錢”的情況,不然,也許沒幾天,你自己連一碗粉都付不起了。

建議你可以收藏本文,在你需要做系統或者架構設計的時候,拿出來做個參考。

本文轉載自微信公眾號「 CodingBetterLife??」,作者「 趙志強 」,可以通過以下二維碼關注。

轉載本文請聯系「 ?CodingBetterLife??」公眾號。

責任編輯:武曉燕 來源: CodingBetterLi
相關推薦

2015-10-29 09:16:34

寒冬創業投資

2018-01-23 10:52:50

程序員技能互聯網

2022-04-08 14:48:51

運營商5G移動通信

2017-10-27 13:56:08

無人新零售人工智能

2025-03-17 08:07:11

2021-04-14 17:18:27

冪等性數據源MySQL

2020-11-04 10:19:37

流量防控阿里

2022-05-23 11:35:16

jiekou冪等性

2024-03-13 15:18:00

接口冪等性高并發

2021-01-20 07:16:07

冪等性接口token

2022-01-04 12:08:46

設計接口

2024-11-01 09:28:02

2025-02-23 08:00:00

冪等性Java開發

2009-03-05 10:53:00

2020-05-25 09:22:57

Linux 命令行

2018-09-27 10:26:12

物聯網

2025-07-10 02:00:00

2022-05-01 21:43:38

SQL設計模式

2023-05-09 09:35:22

點贊
收藏

51CTO技術棧公眾號

亚洲午夜久久久影院伊人| 日本成人激情视频| 欧美高清精品一区二区| 欧美videos另类精品| 不卡的看片网站| 国产成人一区二区三区| 欧美激情图片小说| 亚洲尤物av| 91精选在线观看| 91猫先生在线| 很黄的网站在线观看| 成人sese在线| 成人国产精品av| 中文字幕亚洲乱码熟女1区2区| 日本激情一区| 亚洲国产毛片完整版| 九色porny自拍| 爱搞国产精品| 亚洲免费观看高清完整版在线观看 | 国产亚洲高清视频| 色妞欧美日韩在线| 国产艳俗歌舞表演hd| 欧洲美女精品免费观看视频| 亚洲妇熟xx妇色黄| 艳色歌舞团一区二区三区| 欧洲成人一区二区三区| 久久精品国产精品亚洲红杏| 97在线观看免费| 国产一区二区视频在线观看免费| 西野翔中文久久精品国产| 欧美一区二区三区免费视频| 可以在线看的黄色网址| 俺来俺也去www色在线观看| 国产精品精品国产色婷婷| 精品一区在线播放| 成人高潮片免费视频| 免费观看成人av| 欧美亚洲国产日韩2020| 久久久久久欧美精品se一二三四| 国产精品99在线观看| 亚洲三级av在线| 国产麻豆xxxvideo实拍| 1313精品午夜理伦电影| 制服.丝袜.亚洲.另类.中文| 在线免费观看av的网站| 88xx成人永久免费观看| 精品国产乱码久久久久久天美| 免费国产成人看片在线| 日本不卡三区| 国产精品你懂的| 色视频一区二区三区| 青青草视频在线观看| av高清不卡在线| 国产精品久久久久久久小唯西川 | 色成人免费网站| 欧美性色19p| 欧美极品欧美精品欧美图片| 国产调教在线| 午夜精品成人在线视频| 国产精品久久久久久久乖乖| 毛片网站在线看| 一二三区精品视频| 久久久久免费看黄a片app| 99爱在线观看| 欧美日韩中文在线| 日韩手机在线观看视频| 欧美人体一区二区三区| 欧亚一区二区三区| 视频二区在线播放| 大胆国模一区二区三区| 日韩一级二级三级精品视频| 佐佐木明希电影| 国产欧美三级电影| 亚洲精品一区中文字幕乱码| 90岁老太婆乱淫| 成人在线一区| 欧美插天视频在线播放| 免费观看一级视频| 亚洲免费中文| 国产精品成人免费电影| ,亚洲人成毛片在线播放| 国产一区二区日韩精品| 国产精品9999久久久久仙踪林| 日批免费在线观看| 久久九九久久九九| 中文字幕剧情在线观看一区| 国产第一页在线| 欧美性极品xxxx做受| 一区二区三区入口| 精品国产亚洲一区二区三区在线| 欧美草草影院在线视频| 亚洲一区二区观看| 国产精品久久久久无码av| 欧美二区在线播放| 中文字幕高清在线免费播放| 精品综合久久久久久8888| 国产高清自拍一区| aiai在线| 婷婷中文字幕综合| 五月天av在线播放| 亚洲成aⅴ人片久久青草影院| 中文字幕亚洲激情| 国产一级二级三级| 日韩—二三区免费观看av| 亚洲综合成人婷婷小说| 你懂的视频在线播放| 亚洲色图欧美激情| 美女福利视频在线| 日韩一区免费| 中国china体内裑精亚洲片| 精品肉丝脚一区二区三区| 首页国产欧美久久| 国产精华一区二区三区| 老司机免费在线视频| 色综合欧美在线| 性猛交╳xxx乱大交| 日韩成人激情| 欧美一级淫片播放口| 国产成人精品一区二区无码呦| 久久久精品国产免费观看同学| 黄色网在线视频| 岛国一区二区| 亚洲国产日韩欧美在线图片| 日韩黄色免费观看| 免费观看久久久4p| 欧美男人的天堂| 国产精品xx| 欧美不卡一二三| 日韩精品一区二区亚洲av性色| 日韩在线观看一区二区| 国产在线精品一区二区三区| gogo在线高清视频| 欧美伦理视频网站| 亚洲色图欧美色| 日韩高清不卡一区二区| 久久综合伊人77777麻豆| av在线私库| 精品国产髙清在线看国产毛片| 老熟妇高潮一区二区三区| 国产日韩一区| 精品国产乱码久久久久久蜜柚 | 99久久婷婷| 国产精品免费久久久久久| 四虎影院在线域名免费观看| 亚洲成人tv网| 在线免费观看a级片| 一本色道久久| 久久综合精品一区| 自拍偷拍亚洲视频| 亚洲偷欧美偷国内偷| 青青青国产在线 | 国产精品嫩草影院俄罗斯| 久久精品国产一区二区| 在线不卡日本| 麻豆精品一区| 久久久久久久久久久av| 黄色www视频| 黑人巨大精品欧美一区二区| 好吊色视频一区二区三区| 亚洲精品资源| 日本一区二区三区免费看| 精品欧美日韩精品| 中文字幕日韩精品有码视频| 一级黄色小视频| 国产精品一区二区三区四| 麻豆9191精品国产| 天天人人精品| 91视频亚洲| 色综合久综合久久综合久鬼88| 亚洲精品97久久中文字幕无码| 亚洲国产精品久久一线不卡| 一本色道综合久久欧美日韩精品| 久久裸体视频| 伊人久久婷婷色综合98网| 国产欧美视频在线| 97在线日本国产| 国产在线视频网| 欧美日韩国产成人在线免费| 国产黄色的视频| 成+人+亚洲+综合天堂| 国产黄色特级片| 国产精品精品| 国产一区二区三区四区五区在线 | 91久久久久久久久| 蜜桃传媒在线观看免费进入 | 国产一二三四视频| 国产成人在线免费观看| 免费看一级大黄情大片| 日韩1区2区| 国产高清自拍99| 亚洲日本在线观看视频| 欧美www在线| 国产经典自拍视频在线观看| 欧美一区二区视频观看视频| 国产无码精品在线观看| 国产精品久久久久一区二区三区共| 99精品视频免费版的特色功能| 国产欧美大片| 一区二区三区一级片| 欧美调教网站| 亚洲精品日产aⅴ| 美女100%一区| 欧美激情在线观看| 午夜视频在线看| 国产婷婷色综合av蜜臀av| 国产欧美日韩成人| 91久久国产最好的精华液| 久久亚洲精品大全| 国产精品另类一区| 五十路六十路七十路熟婆| 狠狠色综合播放一区二区| 日本精品一区在线观看| 欧美在线黄色| 亚洲国产一区二区在线| 福利在线视频导航| 九九国产精品视频| 国产91在线视频观看| 欧美精品91| 在线成人av电影| 区一区二视频| 免费看成人午夜电影| swag国产精品一区二区| 国产原创欧美精品| 日本精品在线一区| 欧美专区福利在线| 成人影院在线视频| 欧美激情国产日韩精品一区18| 色综合久久影院| 在线看日韩欧美| 成人在线免费电影| 亚洲一级黄色av| 久草在现在线| 亚洲精品中文字幕女同| 天堂在线资源8| 精品国内二区三区| 亚洲AV无码精品色毛片浪潮| 91精品国模一区二区三区| 一区二区视频免费| 欧美日韩在线综合| 中文字幕在线观看高清| 欧美系列日韩一区| 天天天天天天天干| 色视频成人在线观看免| 久久青青草视频| 欧美性猛xxx| 中文字幕xxxx| 欧美伊人精品成人久久综合97| 特级毛片www| 在线免费视频一区二区| 一级久久久久久| 欧洲精品一区二区| 中文字幕一区二区久久人妻| 欧美日韩成人综合天天影院| 伊人网av在线| 欧美军同video69gay| 国产精品人妻一区二区三区| 欧美精品在线一区二区| 99久久精品国产一区色| 日韩欧美在线网站| 亚洲精品字幕在线观看| 亚洲国产精品久久久久久| 午夜国产在线视频| 国产亚洲精品综合一区91| 草碰在线视频| 欧美xxxx做受欧美.88| 91探花在线观看| 日韩av电影在线播放| 国产精品久久久久久久久免费高清| 国产精品一区二区性色av| 国产精久久久| 国产精品永久入口久久久| 蜜桃一区二区三区| 亚洲三级一区| 狠狠综合久久av一区二区老牛| 黄色大片中文字幕| 丝袜诱惑制服诱惑色一区在线观看| 性欧美亚洲xxxx乳在线观看| 国产成人精品亚洲精品色欲| 亚洲第一区第一页| 高清美女视频一区| 久久夜色精品亚洲噜噜国产mv | 久久久久久亚洲精品中文字幕| 九九热最新视频| 欧美亚洲一区二区在线观看| 97人妻一区二区精品免费视频| 欧美成人aa大片| 激情小视频在线观看| 不卡中文字幕av| 亚洲黄色中文字幕| 91中文精品字幕在线视频| 老牛精品亚洲成av人片| 伊人久久青草| 久久久久久久欧美精品| www.日本久久| 久久久夜色精品亚洲| 婷婷伊人五月天| 色欧美片视频在线观看| 成人h动漫精品一区二区无码| 亚洲网站在线播放| 免费毛片在线看片免费丝瓜视频| 国产精品igao视频| silk一区二区三区精品视频| 亚洲一区二区三区精品在线观看| 亚洲高清毛片| 加勒比av中文字幕| 久久在线观看免费| 欧美国产日韩在线观看成人| 在线观看亚洲成人| 欧美一区二区黄片| 久久亚洲精品成人| 日韩成人影音| 精品国产乱码久久久久久久软件 | 日韩精品成人在线观看| 日产中文字幕在线精品一区| 亚洲高清毛片| 青娱乐国产精品视频| 国产精品情趣视频| 99久久久久久久久| 亚洲国产天堂久久综合网| 在线观看男女av免费网址| 国产精品日韩在线一区| 偷窥自拍亚洲色图精选| 成年女人18级毛片毛片免费| 国产在线精品一区在线观看麻豆| 久久久久亚洲av成人无码电影 | 懂色av蜜臀av粉嫩av喷吹| 日韩av一区在线| 精灵使的剑舞无删减版在线观看| 91精品国产综合久久久久久蜜臀 | 卡一精品卡二卡三网站乱码| 欧美另类videosbestsex日本| 久久机这里只有精品| 国产伦理片在线观看| 福利微拍一区二区| 五月婷婷久久久| 亚洲少妇屁股交4| 人人干视频在线| 国产91精品精华液一区二区三区| 91禁男男在线观看| 欧美亚州韩日在线看免费版国语版| 四虎精品成人免费网站| 91精品国产91久久久久| 精品国产一区二区三区不卡蜜臂| h无码动漫在线观看| 国产99久久久国产精品 | 亚洲一区二区三区四区在线免费观看| 91在线观看喷潮| 久久伊人精品一区二区三区| 成人在线啊v| www.激情网| 成人激情免费电影网址| 日本最新中文字幕| 日韩电影中文字幕在线| 综合久久2023| 亚洲精品一区二| 精品一区二区在线视频| www.av免费| 3atv一区二区三区| 日韩另类在线| 久久艹中文字幕| 日韩中文字幕亚洲一区二区va在线 | 久久久国产视频91| 欧美成人精品一级| 日韩 欧美 视频| 91丝袜美腿高跟国产极品老师| 无码人妻一区二区三区免费| 中文字幕av一区二区三区谷原希美| 欧洲成人一区| 国产一二三四五| 成人免费高清在线| 欧美brazzers| 超在线视频97| 欧美福利在线播放网址导航| 十八禁视频网站在线观看| 国产精品无遮挡| www.国产视频| 欧美综合第一页| 国产精品毛片久久| 国产 xxxx| 欧美午夜精品久久久久久孕妇 | 日韩免费不卡av| 99国产**精品****| 岛国大片在线免费观看| 精品久久久久久国产91| 在线免费黄色| 国产91视觉| 喷水一区二区三区| 国产亚洲精品女人久久久久久| 亚洲天堂av电影| 国产欧美88| 欧美一级黄色影院| 亚洲综合在线观看视频| 国产原创av在线| av免费观看久久| 美日韩一区二区| 91porny在线| 欧美xxxx综合视频| 青青草原综合久久大伊人精品| 性猛交╳xxx乱大交| 欧美三级日韩三级国产三级|