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

談一談消息隊列

開發 前端
本篇文章聊聊消息隊列相關的東西,內容局限于我們為什么要用消息隊列,消息隊列究竟解決了什么問題,消息隊列的選型。

[[382159]]

 本文轉載自微信公眾號「SH的全棧筆記」,作者SH。轉載本文請聯系SH的全棧筆記公眾號。

本篇文章聊聊消息隊列相關的東西,內容局限于我們為什么要用消息隊列,消息隊列究竟解決了什么問題,消息隊列的選型。

為了更容易的理解消息隊列,我們首先通過一個開發場景來切入。

不使用消息隊列的場景

首先,我們假設A同學負責訂單系統的開發,B、C同學負責開發積分系統、倉儲系統。我們知道,在一般的購物電商平臺上,我們下單完成后,積分系統會給下單的用戶增加積分,然后倉儲系統會按照下單時填寫的信息,發出用戶購買的商品。

那問題來了,積分系統、倉儲系統如何感知到用戶的下單操作?

你可能會說,當然是訂單系統在創建完訂單之后調用積分系統、倉儲系統的接口了

OK,直接調用接口的方式在目前來看沒有什么問題。于是B、C同學就找到A同學,說讓他在訂單完成后,調用一下他們的接口來通知一下積分系統和倉儲系統,來給用戶增加積分、發貨。A同學想著,就這兩個系統,應該還好,OK我給你加了。

但是隨著系統的迭代,需要感知訂單操作的系統也越來越多,從之前的積分系統、倉儲系統2個系統,擴充到了5個。每個系統的負責同學都需要去找A同學,讓他人肉的把對應系統的通知接口加上。然后就因為加了這一個接口,又需要把訂單重新發布一遍。

這對A同學來說實際上是很痛苦的一件事情,因為A同學有自己的任務、排期,一有新系統就需要去添加通知接口,發布服務,會打亂A的開發計劃,增加開發量。同時還需要去梳理在開發期間,新增的代碼到底能不能夠上線。一旦不能上線,但是又沒有檢查到,上線就直接炸了

而且,如果5個系統如果有哪個需要額外的字段,或者是更新了接口什么的,都需要麻煩A同學修改。5個系統就這樣跟A系統強耦合在了一起。

除此之外,整個創建訂單的調用鏈因為同步調用這5個系統的通知接口而加長,這減慢了接口的響應速度,降低了用戶側的購物、下單體驗。前面的至少影響的還是內部的員工,但是現在直接是影響到了用戶,明顯是不可取的方案。

可以看到,整個的調用鏈路加長了,更別提,在同步調用中,如果其余的系統發生了錯誤,或者是調用其他系統的時候出現了網絡抖動,核心的下單流程就會被阻塞住,甚至會在下單的界面提示提示用戶出錯,整個的購物體驗又被拉低了一個檔次。更何況,在實際的業務中,調用鏈比這個長的多。

可能有人會說了, 這不就是個同步調用問題嘛?訂單系統的核心邏輯,我還是采用同步來處理,但是后續的通知我采用異步的方式,用線程池去處理,這樣調用鏈路不就恢復正常了?

就單純對于減少鏈路來說,的確可行。但是如果某一個流程失敗了呢?難道失敗就失敗了嗎?我下單成功了不漲積分?該給我發的貨甚至沒有發貨?這合理嗎?

同時,失敗了訂單系統是不是要去處理呢?否則因為其他的系統拉垮了整個主流程,誰還來你這買東西呢?

那有什么辦法,既能夠減少調用的鏈路,又能夠在發生錯誤的時候重試呢?歸根結底,核心思想就是像增加積分、返優惠券的流程不應該和主流程耦和在一起,更不應該影響主流程。

試想,我們能不能在訂單系統完成自己的核心邏輯之后,把訂單創建的消息放到一個隊列中去,然后訂單系統就返回給用戶下單成功的結果了。然后其他的系統從這個隊列中收到了下單成功的消息,就各自的去執行各自的操作,例如增加積分、返優惠券等等操作。

后續如果有新的系統需要感知訂單創建的消息,直接去訂閱這個隊列,消費里面的消息就好了?這雖然跟真實的消息的隊列有些出入,但其思路是完成吻合的。

為什么需要消息隊列

通過上面的例子,我們大致就能夠理解為什么要引入消息隊列了,這里簡單總結一下。

異步

對于實時性不是很高的業務,例如給用戶發送短信、郵件通知,調用第三方的接口,都可以放到消息隊列里去。因為相對于核心訂單流程來說,短信、郵件晚一些發送,對用戶來說影響不是很大。同時還可以提升整個鏈路的響應時間。

削峰

假設我們有服務A,是個無狀態的服務。通過橫向擴展,它可以輕松抗住1w的并發量,但是這N個服務實例,底層訪問的都是同一個數據庫。數據庫能抗住的并發量是有限的,如果你的機器足夠好的話,可能能夠抗住5000的并發,如果服務A的所有請求全部打向數據庫,會直接把數據打掛。

解耦

像上文舉的例子,訂單系統在創建了訂單之后需要通知其他的所有系統,這樣一來就把訂單系統和其余的系統強耦合在了一起。后續的可維護性、擴展性都大大降低了。

而通過消息隊列來關聯所有系統,可以達到解耦的目的。

像上圖這種模式,如果后續再有新系統需要感知訂單創建的消息,只需要去消費「訂單系統」發送到MQ中的消息即可。同樣,訂單系統如果需要感知其余系統的某些事件,也只是從MQ中消費即可。

通過MQ,達成服務之間的松耦合,服務內的高內聚,提升了服務的自治性。

消息隊列選型

已知的消息隊列有Kafka、RocketMQ、RabbitMQ和ActiveMQ。但是由于ActiveMQ現在用的公司比較少了,這里就不做討論,我們著重討論前三種。

Kafka

Kafka最初來自于LinkedIn,是用于做日志收集的工具,采用Java和Scala開發。其實那個時候已經有ActiveMQ了,但是在當時ActiveMQ沒有辦法滿足LinkedIn的需求,于是Kafka就應運而生。

在2010年底,Kakfa的0.7.0被開源到了Github上。到了2011年,由于Kafka非常受關注,被納入了Apache Incubator,所有想要成為Apache正式項目的外部項目,都必須要經過Incubator,翻譯過來就是孵化器。旨在將一些項目孵化成完全成熟的Apache開源項目。

你也可以把它想象成一個學校,所有想要成為Apache正式開源項目的外部項目都必須要進入Incubator學習,并且拿到畢業證,才能走入社會。于是在2012年,Kafka成功從Apache Incubator畢業,正式成為Apache中的一員。

Kafka擁有很高的吞吐量,單機能夠抗下十幾w的并發,而且寫入的性能也很高,能夠達到毫秒級別。但是有優點就有缺點,能夠達到這么高的并發的代價是,可能會出現消息的丟失。至于具體的丟失場景,我們后續會討論。

所以一般Kafka都用于大數據的日志收集,這種日志丟個一兩條無傷大雅。

而且Kafka的功能較為簡單,就是簡單的接收生產者的消息,消費者從Kafka消費消息。

RabbitMQ

RabbitMQ是很多公司對于ActiveMQ的替代方法,現在仍然有很多公司在使用。其優點在于能保證消息不丟失,同Kafka,天平往數據的可靠性方向傾斜必然導致其吞吐量下降。其吞吐量只能夠達到幾萬,比起Kafka的十萬吞吐來說,的確是較低的。如果遇到需要支撐特別高并發的情況,RabbitMQ可能會無法勝任。

但是RabbitMQ有比Kafka更多的高級特性,例如消息重試和死信隊列,而且寫入的延遲能夠降低到微妙級,這也是RabbitMQ一大特點。

但RabbitMQ還有一個致命的弱點,其開發語言為Erlang,現在國內精通Erlang的人不多,社區也不怎么活躍。這也就導致可能公司內沒有人能夠去閱讀Erlang的源碼,更別說基于其源碼進行二次開發或者排查問題了。所以就存在RabbitMQ出了問題可能公司里沒人能夠兜的住,維護成本非常的高。

之所以有中小型公司還在使用,是覺得其不會面臨高并發的場景,RabbitMQ的功能已經完全夠用了。

RocketMQ

RocketMQ來自阿里,同Kakfa一樣也是從Apache Incubator出來的頂級項目,用Java語言進行開發,單機吞吐量和Kafka一樣,也是十w量級。

RocketMQ的前身是阿里的MetaQ項目,2012年在淘寶內部大量的使用,在阿里內部迭代到3.0版本之后,將MetaQ的核心功能抽離出來,就有了RocketMQ。RocketMQ整合了Kafka和RabbitMQ的優點,例如較高的吞吐量和通過參數配置能夠做到消息絕對不丟失。

其底層的設計參考了Kafka,具有低延遲、高性能、高可用的特點。不同于Kafka的單一日志收集功能,RocketMQ被廣泛運用于訂單、交易、計算、消息推送、binlog分發等場景。

之所以能夠被運用到多種場景,這要歸功于RocketMQ提供的豐富的功能。例如延遲消息、事務消息、消息回溯、死信隊列等等。

  • 延遲消息 就是不會立即消費的消息,例如某個活動開始前15分鐘提醒用戶這樣的場景
  • 事務消息 其主要解決數據庫事務和MQ消息的數據一致性,例如用戶下單,先發送消息到MQ,積分增加了,但是訂單系統在發出消息之后掛了。這樣用戶并沒有下單成功,但是積分卻增加了,明顯是不符合預期的
  • 消息回溯 顧名思義,就是去消費某個Topic下某段時間的歷史消息
  • 死信隊列 沒有被正常消費的消息,首先會按照RocketMQ的重試機制重試,當達到了最大的重試次數之后,如果消費仍然失敗,RocketMQ不會立即丟掉這條消息,而是會把消息放入死信隊列中。放入死信隊列的消息會在3天后過期,所以需要及時的處理

消息隊列會丟消息嗎

在不使用消息隊列的場景中,我們吹了很多消息隊列的優點,但同時也提到了消息隊列可能會丟失消息,我們也可以通過參數的配置來使消息絕對不丟失。

那消息是在什么情況下丟失的呢?消息隊列中的角色可以分為3類,分別是生產者、MQ和消費者。一條消息在整個的傳輸鏈路中需要經過如下的流程。

生產者將消息發送給MQ,MQ接收到這條消息后會將消息存儲到磁盤上,消費者來消費的時候就會把消息返給消費者。先給出結論,在這3種場景下,消息都有可能會丟失。

接下來我們一步一步來分析一下。

生產者發送消息給MQ

生產者在發送消息的過程中,由于某些意外的情況例如網絡抖動等,導致本次網絡通信失敗,消息并沒有被發送給MQ。

MQ存儲消息

當MQ接收到了來自生產者的消息之后,還沒有來得及處理,MQ就突然宕機,此時該消息也會丟失。

即使MQ開始處理消息,并且將該消息寫入了磁盤,消息仍然可能會丟失。因為現代的操作系統都會有自己的OS Cache,因為和磁盤交互是一件代價相當大的事情,所以當我們寫入文件的時候會先將數據寫入OS Cache中,然后由OS調度,根據策略觸發真正的I/O操作,將數據刷入磁盤。

而在刷入磁盤之前,MQ如果宕機,在OS Cache中的數據就會全部丟失。

消費者消費消息

當消息順利的經歷了生產者、MQ之后,消費者拉取到了這條消息,但是當其還沒來得及處理的時候,消費者突然宕機了,這條消息就丟了(當然你如果沒有提交Offset的話,重啟之后仍然可以消費到這條消息)

原來我們以為用上了消息隊列,就萬無一失了,沒想到逐步分析下來能有這么多坑。任何一個步驟出錯都有可能導致消息丟失。那既然這樣,上文提到的可以通過參數配置來實現消息不會丟失是怎么一回事呢?

這里我們不去聊具體的MQ是如何實現的,我們來聊聊消息零丟失的實現思路。

消息最終一致性方案

涉及到的系統有訂單系統、MQ和積分系統,訂單系統為生產者,積分系統為消費者。

首先訂單系統發送一個訂單創建的消息給MQ,該消息的狀態為Prepare狀態,狀態為Prepare狀態的消息不會被消費者給消費到,所以可以放心的發送。

然后訂單系統開始執行自身的核心邏輯,你可能會說,訂單系統本身的邏輯執行失敗了怎么辦?剛剛的prepare消息不就成了臟數據?實際上在訂單系統的事務失敗之后,就會觸發回滾操作,就會向MQ發送消息,將該條狀態為Prepare的數據給刪除。

訂單系統核心事務成功之后,就會發送消息給MQ,將狀態為prepare的消息更新為commit。沒錯,這就是2PC,一個保證分布式事務數據一致性的協議。

眼尖的你可能發現了一個問題,我發送了prepare消息之后,還沒來得及執行本地事務,訂單系統就掛了怎么辦?此時訂單系統即使重啟也不會向MQ發送刪除操作,這個prepare消息不就是一直存在MQ中了?

先給出結論,不會。

如果訂單系統發送了prepare消息給MQ之后自己就宕機了,MQ確實會存在一條不會被commit的數據。MQ為了解決這個問題,會定時輪詢所有prepare的消息,跟對應的系統溝通,這條prepare消息是要進行重試還是回滾。所以prepare消息不會一直存在于MQ中。這樣一來,就保證了消息對于生產者的DB事務和MQ中消息的數據一致性。

再來看一種更加極端的情況,假設訂單系統本地事務執行成功之后,發送了commit消息到MQ,此時MQ突然掛了。導致MQ沒有收到該commit消息,在MQ中該消息仍然處于prepare狀態,這怎么辦?

同樣的,依賴于MQ的輪詢機制和訂單系統溝通,訂單系統會告訴MQ這個事務已經完成了,MQ就會將這條消息設置成commit,消費者就可以消費到該消息了。

接下來的流程就是消息被消費者消費了,如果消費者消費消息的時候本地事務失敗了,則會進行重試,再次嘗試消費這條消息。

 

責任編輯:武曉燕 來源: SH的全棧筆記
相關推薦

2019-11-12 08:40:03

RocketMQ架構

2022-02-14 22:22:30

單元測試Junit5

2021-07-28 20:12:17

WindowsHeap內存

2018-08-21 14:42:29

閃存存在問題

2022-07-04 10:51:27

數據中臺數據倉庫

2014-07-17 10:11:53

Android LAPI谷歌

2021-05-11 08:48:23

React Hooks前端

2011-07-28 09:22:56

Oracle WDPOracle數據庫

2021-11-23 09:45:26

架構系統技術

2017-11-21 14:32:05

容器持久存儲

2015-03-27 15:07:55

云計算IaaS平臺Docker

2016-07-08 13:33:12

云計算

2019-01-30 10:59:48

IPv6Happy EyebaIPv4

2021-03-15 22:42:25

NameNodeDataNode分布式

2018-09-05 15:15:58

來電顯示來電顯示欺詐身份

2020-11-20 10:22:34

代碼規范設計

2018-08-28 06:42:06

邊緣計算SDNMEC

2016-10-09 23:47:04

2020-06-19 15:32:56

HashMap面試代碼

2011-07-28 09:49:04

Oracle數據庫服務Oracle實例
點贊
收藏

51CTO技術棧公眾號

久久99精品久久只有精品| 午夜视频在线观看国产| 69夜色精品国产69乱| 9999热视频在线观看| 精品在线手机视频| 亚洲人成影院在线观看| 国产精品9999| 91免费视频网站在线观看| 国产女人18毛片18精品| 精品国产一区二区三区久久久樱花| 亚洲一区二区三区四区的 | 小早川怜子影音先锋在线观看| 国产一区二区三区不卡在线观看 | 久cao在线| 美国三级日本三级久久99| 日韩精品免费一线在线观看| 加勒比成人在线| 午夜精品一二三区| 久久精品青草| 欧美日韩国产综合视频在线观看| 日韩欧美99| 成人免费一级片| 免费a级人成a大片在线观看| 日韩av不卡一区二区| 亚洲理论在线a中文字幕| 日日鲁鲁鲁夜夜爽爽狠狠视频97| 欧美综合激情| 欧美图片第一页| 久草在线资源站资源站| 紧缚奴在线一区二区三区| 这里只有精品在线播放| 91蝌蚪视频在线观看| 黄色在线网站| 美腿丝袜一区二区三区| 久久色在线播放| 永久看看免费大片| 美洲精品一卡2卡三卡4卡四卡| 久久久高清一区二区三区| 国产精品1区2区在线观看| 国产精彩视频在线观看| 亚洲免费成人av在线| 欧美在线观看视频一区二区| 特级毛片在线免费观看| av在线免费在线观看| 狠狠噜噜久久| 日韩av有码在线| 蜜桃色一区二区三区| 国产色播av在线| 久久精品在线免费观看| 国产欧美一区二区视频 | 欧美性猛交xxxx免费看久久久| 麻豆91av| 一区二区三区免费在线| 国语精品一区| 九九热这里只有在线精品视| 亚洲国产成人精品视频| 欧美极品欧美精品欧美视频 | 国产精品丝袜一区| 91精品国产综合久久久久久丝袜| 国产黄色片视频| 国产精品自拍区| 777亚洲妇女| 亚洲熟妇国产熟妇肥婆| 91精品专区| 99视频有精品| 国产日产欧美a一级在线| 国产一级在线观看视频| 国精品一区二区三区| 久久久久久12| 51国产偷自视频区视频| 91精品综合| 欧美成人午夜免费视在线看片| 亚洲熟女乱综合一区二区三区 | 成人黄色免费网站在线观看| 久久久久久久国产视频| 欧美亚洲激情| 日韩av在线免费观看| 一级国产黄色片| 国产影视一区| 久久韩国免费视频| 精品无码人妻一区| 伊色综合久久之综合久久| 欧美三日本三级三级在线播放| 成年女人18级毛片毛片免费 | 久久久久久久久久久久久久久99| 日本在线播放不卡| 黄色av免费在线| 亚洲成人动漫精品| 国产视频一区二区视频| 国产美女精品视频免费播放软件| 在线区一区二视频| 免费看又黄又无码的网站| 欧美二三四区| 岛国精品视频在线播放| 99久久免费观看| 超碰在线caoporn| 亚洲国产精品精华液ab| 欧美在线观看黄| www红色一片_亚洲成a人片在线观看_| 亚洲一区二区三区三| 国产精品天天av精麻传媒| 欧美9999| 日韩午夜激情av| 亚洲一级片免费观看| 亚洲三级在线| 91精品在线观看入口| 国产精品入口麻豆| ccyy激情综合| 亚洲第一中文字幕在线观看| 色悠悠在线视频| 成人婷婷网色偷偷亚洲男人的天堂| 欧美精品免费播放| 无码人妻熟妇av又粗又大| 久久亚洲色图| 国产精品一二三视频| 亚洲视频在线观看免费视频| 精品综合久久久久久8888| 国产精品theporn88| 色呦呦视频在线| 国产成人啪午夜精品网站男同| 99精彩视频在线观看免费| а√中文在线资源库| 日本一区二区三区在线观看| 亚洲美女网站18| 含羞草www国产在线视频| 色综合久久综合网97色综合 | 亚洲精品一区中文| 男生裸体视频网站| 国产亚洲精品美女久久久久久久久久| 欧美精品在线免费播放| 亚洲一级片免费看| 国产丝袜美腿一区二区三区| 亚洲精品中文字幕在线| 在线能看的av网址| 亚洲国产三级网| 国产三级av在线播放| 日韩av有码| 欧美激情第6页| 天天操夜夜操视频| av福利精品导航| 成人性生活视频免费看| 亚洲一区二区三区在线免费| 欧美大秀在线观看| 国内精品久久久久久久久久久 | 中文字幕精品在线| 波多野结衣一区二区三区四区| 91麻豆成人久久精品二区三区| 日本一区免费在线观看| 日本三级一区| 欧美日韩mp4| 色www亚洲国产阿娇yao| 亚洲午夜av| 国产a一区二区| av在线理伦电影| 日韩av中文字幕在线免费观看| 日本五十熟hd丰满| 91蜜桃在线观看| 日韩精品一区二区三区不卡 | av免费播放网站| 午夜国产精品视频免费体验区| 欧美在线视频网站| 国产xxxxxx| 亚洲午夜一区二区三区| 99久久人妻精品免费二区| 免费日韩精品中文字幕视频在线| 成人h视频在线| 国产黄色小视频在线| 日韩西西人体444www| 国产五月天婷婷| 久久蜜桃av一区二区天堂 | 中文日韩在线| 91免费福利视频| 可以在线观看的av网站| 亚洲日本va在线观看| 久久久久久国产精品日本| 国内精品久久久久久久影视蜜臀 | 欧美超碰在线| 88xx成人精品| 国产a级免费视频| 亚洲国产精品尤物yw在线观看| 韩国无码一区二区三区精品| 日韩精品一卡二卡三卡四卡无卡| 91成人伦理在线电影| heyzo在线播放| 亚洲视频在线看| 全部毛片永久免费看| 久久99国产精品久久99果冻传媒| 九九久久九九久久| 久久久久伊人| 在线观看欧美成人| 久久久精品毛片| 亚洲免费在线看| 性欧美1819| 欧美美女视频| 99久久一区三区四区免费| 天堂√中文最新版在线| 久久精彩免费视频| 五月婷婷在线播放| 欧美日韩精品国产| 午夜精品久久久久99蜜桃最新版| 免费看日韩精品| 成人精品视频在线播放| 日韩国产专区| 蜜桃传媒视频第一区入口在线看| 精品国产三级| 国产精品久久久久9999| av中文字幕一区二区三区| 91高清在线观看| 国产真人做爰视频免费| 狂野欧美性猛交xxxx巴西| 亚洲高潮无码久久| 国产精品欧美三级在线观看| av观看久久| 自拍偷拍亚洲| 国产精品日韩精品| 欧美激情视频在线播放| 精品无人国产偷自产在线| av网站在线观看免费| 欧美日韩三级一区二区| 黄网在线观看视频| 亚洲午夜在线观看视频在线| 特一级黄色录像| 国产福利一区在线| 9l视频白拍9色9l视频| 性久久久久久| 黄色大片中文字幕| 国精品一区二区三区| 四虎影院一区二区| 欧美手机在线| 欧美午夜精品理论片a级大开眼界 欧美午夜精品久久久久免费视 | 久久久精品毛片| 欧美性猛交xxxx乱大交3| 国产午夜精品一区二区理论影院| 亚洲美女屁股眼交3| av最新在线观看| 中文字幕日韩欧美一区二区三区| 中文字幕日韩综合| 午夜精品久久久久99热蜜桃导演| 亚洲精品中文字幕在线| 日韩av二区| 亚洲在线播放电影| 国产精品xxxav免费视频| 777精品视频| 看黄在线观看| 国产91精品青草社区| 午夜视频成人| 亚洲成人网在线观看| 内射后入在线观看一区| 欧美影院一区二区| 日日夜夜操视频| 91国产成人在线| 久久这里只有精品9| 亚洲综合激情网| 久久亚洲无码视频| 国产三级一区二区| 色综合99久久久无码国产精品| 久久精品夜色噜噜亚洲aⅴ| 老头老太做爰xxx视频| 中文无字幕一区二区三区| 国产免费嫩草影院| 日韩美女啊v在线免费观看| 麻豆视频在线免费看| 91免费精品国自产拍在线不卡 | 中文字幕人成不卡一区| 午夜精品福利在线视频| 夜夜精品浪潮av一区二区三区| 久久久久成人精品无码| 亚洲高清免费视频| 天堂在线免费观看视频| 欧洲国内综合视频| 国产精品九九九九| 欧美视频中文字幕在线| 久草手机在线视频| 欧美日本在线观看| 性生交生活影碟片| 欧美日韩视频专区在线播放| 国产绿帽刺激高潮对白| 精品国产亚洲一区二区三区在线观看| 最近日韩免费视频| 日韩色在线观看| 涩爱av在线播放一区二区| 日韩精品影音先锋| 91在线公开视频| 欧美电影免费观看完整版| 午夜激情小视频| 社区色欧美激情 | 国产乱理伦片a级在线观看| 亚洲精品久久久久久久久久久久久| 瑟瑟在线观看| 久久不射电影网| 亚洲欧洲高清| 成人免费自拍视频| 少妇高潮一区二区三区| 国产伦精品一区二区三区四区免费| 自拍偷拍欧美日韩| 韩国成人动漫在线观看| 91久久偷偷做嫩草影院电| 蜜桃传媒视频麻豆第一区免费观看| 亚洲成av人片一区二区密柚| 欧美 日韩 国产 高清| 美洲天堂一区二卡三卡四卡视频| 中文字幕精品久久久| 亚洲同性gay激情无套| 午夜毛片在线观看| 日韩丝袜美女视频| 国产福利片在线| 国内精久久久久久久久久人| 欧美人动性xxxxz0oz| 国产精品444| 国产精品视屏| 久久视频免费在线| 蜜桃在线一区二区三区| 中出视频在线观看| 一区二区三区高清在线| 中文字幕欧美在线观看| 欧美日韩综合色| 深夜福利在线观看直播| 亚洲欧洲激情在线| 国产蜜臀av在线播放| 97在线观看视频国产| 亚洲精品成人图区| 国产日韩欧美一区二区三区四区| 亚洲国产精品综合久久久| 国产又大又黄又粗又爽| 激情综合色丁香一区二区| 国产熟妇搡bbbb搡bbbb| 亚洲高清免费一级二级三级| 精品免费久久久| zzijzzij亚洲日本成熟少妇| 中文字幕免费高清电视剧网站在线观看| 欧美成人小视频| 一区二区三区无毛| 亚洲乱码一区二区三区| 日韩国产在线观看| a级大片在线观看| 日本韩国精品在线| 欧美视频综合| 日韩免费在线视频| 国产精品一区二区精品视频观看| 亚洲国产精品www| 日韩av成人高清| 91视频免费看片| 精品视频一区二区三区免费| 成人综合影院| 国产精品偷伦一区二区| 天天射成人网| 黄色av网址在线播放| 波多野结衣精品在线| 在线看片中文字幕| 欧美在线三级电影| 丁香婷婷在线观看| 国产精品视频大全| 99热精品久久| 免费观看黄网站| 亚洲一区在线电影| 五月天婷婷社区| 浅井舞香一区二区| 成人婷婷网色偷偷亚洲男人的天堂| 国产探花在线看| 26uuu国产一区二区三区| 91美女免费看| 一区二区国产精品视频| 日韩有码欧美| 日本精品一区二区| 日本在线不卡一区| 97在线观看免费高| 精品少妇一区二区三区在线视频| av大片在线观看| 91欧美精品午夜性色福利在线| 欧美va天堂在线| 日韩综合第一页| 日本道免费精品一区二区三区| 日本在线www| 国产伦精品一区二区三区四区视频 | 小泽玛利亚一区二区三区视频| 北条麻妃在线一区二区| 999久久精品| 国内自拍视频一区| 精品一区二区三区影院在线午夜 | 99riav1国产精品视频| 亚洲涩涩在线观看| 亚洲一区二区三区中文字幕| 色视频免费在线观看| 国产日韩在线视频| 亚洲精品三级| 免费看91视频| 亚洲视频一二三| 婷婷丁香花五月天| 国产精品视频久| 精品999日本| 日本一级大毛片a一| 色婷婷综合久久久| 最新国产露脸在线观看| 鲁丝片一区二区三区| 国产又黄又大久久| 亚洲婷婷综合网| 精品性高朝久久久久久久| 久久天天久久| 欧美a在线视频| 一区二区三区在线影院|