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

吃透 MQ 系列之核心基礎篇

開發 架構
本文主要講解 MQ 的通用知識,讓大家先弄明白:如果讓你來設計一個 MQ,該如何下手?需要考慮哪些問題?又有哪些技術挑戰?

[[384587]]

本文主要講解 MQ 的通用知識,讓大家先弄明白:如果讓你來設計一個 MQ,該如何下手?需要考慮哪些問題?又有哪些技術挑戰?

有了這個基礎后,我相信后面幾篇文章再講 Kafka 和 RocketMQ 這兩種具體的消息中間件時,大家能很快地抓住主脈絡,同時分辨出它們各自的特點。

對于 MQ 來說,不管是 RocketMQ、Kafka 還是其他消息隊列,它們的本質都是:一發一存一消費。下面我們以這個本質作為根,一起由淺入深地聊聊 MQ。

01 從 MQ 的本質說起

將 MQ 掰開了揉碎了來看,都是「一發一存一消費」,再直白點就是一個「轉發器」。

生產者先將消息投遞一個叫做「隊列」的容器中,然后再從這個容器中取出消息,最后再轉發給消費者,僅此而已。

上面這個圖便是消息隊列最原始的模型,它包含了兩個關鍵詞:消息和隊列。

1、消息:就是要傳輸的數據,可以是最簡單的文本字符串,也可以是自定義的復雜格式(只要能按預定格式解析出來即可)。

2、隊列:大家應該再熟悉不過了,是一種先進先出數據結構。它是存放消息的容器,消息從隊尾入隊,從隊頭出隊,入隊即發消息的過程,出隊即收消息的過程。

02 原始模型的進化

再看今天我們最常用的消息隊列產品(RocketMQ、Kafka 等等),你會發現:它們都在最原始的消息模型上做了擴展,同時提出了一些新名詞,比如:主題(topic)、分區(partition)、隊列(queue)等等。

要徹底理解這些五花八門的新概念,我們化繁為簡,先從消息模型的演進說起(道理好比:架構從來不是設計出來的,而是演進而來的)

2.1 隊列模型

最初的消息隊列就是上一節講的原始模型,它是一個嚴格意義上的隊列(Queue)。消息按照什么順序寫進去,就按照什么順序讀出來。不過,隊列沒有 “讀” 這個操作,讀就是出隊,從隊頭中 “刪除” 這個消息。

這便是隊列模型:它允許多個生產者往同一個隊列發送消息。但是,如果有多個消費者,實際上是競爭的關系,也就是一條消息只能被其中一個消費者接收到,讀完即被刪除。

2.2 發布-訂閱模型

如果需要將一份消息數據分發給多個消費者,并且每個消費者都要求收到全量的消息。很顯然,隊列模型無法滿足這個需求。

一個可行的方案是:為每個消費者創建一個單獨的隊列,讓生產者發送多份。這種做法比較笨,而且同一份數據會被復制多份,也很浪費空間。

為了解決這個問題,就演化出了另外一種消息模型:發布-訂閱模型。

在發布-訂閱模型中,存放消息的容器變成了 “主題”,訂閱者在接收消息之前需要先 “訂閱主題”。最終,每個訂閱者都可以收到同一個主題的全量消息。

仔細對比下它和 “隊列模式” 的異同:生產者就是發布者,隊列就是主題,消費者就是訂閱者,無本質區別。唯一的不同點在于:一份消息數據是否可以被多次消費。

2.3 小結

最后做個小結,上面兩種模型說白了就是:單播和廣播的區別。而且,當發布-訂閱模型中只有 1 個訂閱者時,它和隊列模型就一樣了,因此在功能上是完全兼容隊列模型的。

這也解釋了為什么現代主流的 RocketMQ、Kafka 都是直接基于發布-訂閱模型實現的?此外,RabbitMQ 中之所以有一個 Exchange 模塊?其實也是為了解決消息的投遞問題,可以變相實現發布-訂閱模型。

包括大家接觸到的 “消費組”、“集群消費”、“廣播消費” 這些概念,都和上面這兩種模型相關,以及在應用層面大家最常見的情形:組間廣播、組內單播,也屬于此范疇。

所以,先掌握一些共性的理論,對于大家再去學習各個消息中間件的具體實現原理時,其實能更好地抓住本質,分清概念。

03 透過模型看 MQ 的應用場景

目前,MQ 的應用場景非常多,大家能倒背如流的是:系統解耦、異步通信和流量削峰。除此之外,還有延遲通知、最終一致性保證、順序消息、流式處理等等。

那到底是先有消息模型,還是先有應用場景呢?答案肯定是:先有應用場景(也就是先有問題),再有消息模型,因為消息模型只是解決方案的抽象而已。

MQ 經過 30 多年的發展,能從最原始的隊列模型發展到今天百花齊放的各種消息中間件(平臺級的解決方案),我覺得萬變不離其宗,還是得益于:消息模型的適配性很廣。

我們試著重新理解下消息隊列的模型。它其實解決的是:生產者和消費者的通信問題。那它對比 RPC 有什么聯系和區別呢?

通過對比,能很明顯地看出兩點差異:

1、引入 MQ 后,由之前的一次 RPC 變成了現在的兩次 RPC,而且生產者只跟隊列耦合,它根本無需知道消費者的存在。

2、多了一個中間節點「隊列」進行消息轉儲,相當于將同步變成了異步。

再返過來思考 MQ 的所有應用場景,就不難理解 MQ 為什么適用了?因為這些應用場景無外乎都利用了上面兩個特性。

舉一個實際例子,比如說電商業務中最常見的「訂單支付」場景:在訂單支付成功后,需要更新訂單狀態、更新用戶積分、通知商家有新訂單、更新推薦系統中的用戶畫像等等。

引入 MQ 后,訂單支付現在只需要關注它最重要的流程:更新訂單狀態即可。其他不重要的事情全部交給 MQ 來通知。這便是 MQ 解決的最核心的問題:系統解耦。

改造前訂單系統依賴 3 個外部系統,改造后僅僅依賴 MQ,而且后續業務再擴展(比如:營銷系統打算針對支付用戶獎勵優惠券),也不涉及訂單系統的修改,從而保證了核心流程的穩定性,降低了維護成本。

這個改造還帶來了另外一個好處:因為 MQ 的引入,更新用戶積分、通知商家、更新用戶畫像這些步驟全部變成了異步執行,能減少訂單支付的整體耗時,提升訂單系統的吞吐量。這便是 MQ 的另一個典型應用場景:異步通信。

除此以外,由于隊列能轉儲消息,對于超出系統承載能力的場景,可以用 MQ 作為 “漏斗” 進行限流保護,即所謂的流量削峰。

我們還可以利用隊列本身的順序性,來滿足消息必須按順序投遞的場景;利用隊列 + 定時任務來實現消息的延時消費 ……

MQ 其他的應用場景基本類似,都能回歸到消息模型的特性上,找到它適用的原因,這里就不一一分析了。

總之,就是建議大家多從復雜多變的實踐場景再回歸到理論層面進行思考和抽象,這樣能吃得更透。

04 如何設計一個 MQ?

了解了上面這些理論知識以及應用場景后,下面我們再一起看下:到底如何設計一個 MQ?

4.1 MQ 的雛形

我們還是先從簡單版的 MQ 入手,如果只是實現一個很粗糙的 MQ,完全不考慮生產環境的要求,該如何設計呢?

文章開頭說過,任何 MQ 無外乎:一發一存一消費,這是 MQ 最核心的功能需求。另外,從技術維度來看 MQ 的通信模型,可以理解成:兩次 RPC + 消息轉儲。

有了這些理解,我相信只要有一定的編程基礎,不用 1 個小時就能寫出一個 MQ 雛形:

1、直接利用成熟的 RPC 框架(Dubbo 或者 Thrift),實現兩個接口:發消息和讀消息。

2、消息放在本地內存中即可,數據結構可以用 JDK 自帶的 ArrayBlockingQueue 。

4.2 寫一個適用于生產環境的 MQ

當然,我們的目標絕不止于一個 MQ 雛形,而是希望實現一個可用于生產環境的消息中間件,那難度肯定就不是一個量級了,具體我們該如何下手呢?

1、先把握這個問題的關鍵點

假如我們還是只考慮最基礎的功能:發消息、存消息、消費消息(支持發布-訂閱模式)。

那在生產環境中,這些基礎功能將面臨哪些挑戰呢?我們能很快想到下面這些:

1、高并發場景下,如何保證收發消息的性能?

2、如何保證消息服務的高可用和高可靠?

3、如何保證服務是可以水平任意擴展的?

4、如何保證消息存儲也是水平可擴展的?

5、各種元數據(比如集群中的各個節點、主題、消費關系等)如何管理,需不需要考慮數據的一致性?

可見,高并發場景下的三高問題在你設計一個 MQ 時都會遇到,「如何滿足高性能、高可靠等非功能性需求」才是這個問題的關鍵所在。

2、整體設計思路

先來看下整體架構,會涉及三類角色:

另外,將「一發一存一消費」這個核心流程進一步細化后,比較完整的數據流如下:

基于上面兩個圖,我們可以很快明確出 3 類角色的作用,分別如下:

1、Broker(服務端):MQ 中最核心的部分,是 MQ 的服務端,核心邏輯幾乎全在這里,它為生產者和消費者提供 RPC 接口,負責消息的存儲、備份和刪除,以及消費關系的維護等。

2、Producer(生產者):MQ 的客戶端之一,調用 Broker 提供的 RPC 接口發送消息。

3、Consumer(消費者):MQ 的另外一個客戶端,調用 Broker 提供的 RPC 接口接收消息,同時完成消費確認。

3、詳細設計

下面,再展開討論下一些具體的技術難點和可行的解決方案。

難點1:RPC 通信

解決的是 Broker 與 Producer 以及 Consumer 之間的通信問題。如果不重復造輪子,直接利用成熟的 RPC 框架 Dubbo 或者 Thrift 實現即可,這樣不需要考慮服務注冊與發現、負載均衡、通信協議、序列化方式等一系列問題了。

當然,你也可以基于 Netty 來做底層通信,用 Zookeeper、Euraka 等來做注冊中心,然后自定義一套新的通信協議(類似 Kafka),也可以基于 AMQP 這種標準化的 MQ 協議來做實現(類似 RabbitMQ)。對比直接用 RPC 框架,這種方案的定制化能力和優化空間更大。

難點2:高可用設計

高可用主要涉及兩方面:Broker 服務的高可用、存儲方案的高可用。可以拆開討論。

Broker 服務的高可用,只需要保證 Broker 可水平擴展進行集群部署即可,進一步通過服務自動注冊與發現、負載均衡、超時重試機制、發送和消費消息時的 ack 機制來保證。

存儲方案的高可用有兩個思路:1)參考 Kafka 的分區 + 多副本模式,但是需要考慮分布式場景下數據復制和一致性方案(類似 Zab、Raft等協議),并實現自動故障轉移;2)還可以用主流的 DB、分布式文件系統、帶持久化能力的 KV 系統,它們都有自己的高可用方案。

難點3:存儲設計

消息的存儲方案是 MQ 的核心部分,可靠性保證已經在高可用設計中談過了,可靠性要求不高的話直接用內存或者分布式緩存也可以。這里重點說一下存儲的高性能如何保證?這個問題的決定因素在于存儲結構的設計。

目前主流的方案是:追加寫日志文件(數據部分) + 索引文件的方式(很多主流的開源 MQ 都是這種方式),索引設計上可以考慮稠密索引或者稀疏索引,查找消息可以利用跳轉表、二份查找等,還可以通過操作系統的頁緩存、零拷貝等技術來提升磁盤文件的讀寫性能。

如果不追求很高的性能,也可以考慮現成的分布式文件系統、KV 存儲或者數據庫方案。

難點4:消費關系管理

為了支持發布-訂閱的廣播模式,Broker 需要知道每個主題都有哪些 Consumer 訂閱了,基于這個關系進行消息投遞。

由于 Broker 是集群部署的,所以消費關系通常維護在公共存儲上,可以基于 Zookeeper、Apollo 等配置中心來管理以及進行變更通知。

難點5:高性能設計

存儲的高性能前面已經談過了,當然還可以從其他方面進一步優化性能。

比如 Reactor 網絡 IO 模型、業務線程池的設計、生產端的批量發送、Broker 端的異步刷盤、消費端的批量拉取等等。

4.3 小結

再總結下,要回答好:如何設計一個 MQ?

1、需要從功能性需求(收發消息)和非功能性需求(高性能、高可用、高擴展等)兩方面入手。

2、功能性需求不是重點,能覆蓋 MQ 最基礎的功能即可,至于延時消息、事務消息、重試隊列等高級特性只是錦上添花的東西。

3、最核心的是:能結合功能性需求,理清楚整體的數據流,然后順著這個思路去考慮非功能性的訴求如何滿足,這才是技術難點所在。

05 寫在最后

這篇文章從 MQ 一發一存一消費這個本質出發,講解了消息模型的演進過程,這是 MQ 最核心的理論基礎。基于此,大家也能更容易理解 MQ 的各種新名詞以及應用場景。

最后通過回答:如何設計一個 MQ?目的是讓大家對 MQ 的核心組件和技術難點有一個清晰的認識。另外,帶著這個問題的答案再去學習 Kafka、RocketMQ 等具體的消息中間件時,也會更有側重點。

本文轉載自微信公眾號「武哥漫談IT」,可以通過以下二維碼關注。轉載本文請聯系武哥漫談IT公眾號。   

 

責任編輯:武曉燕 來源: 武哥漫談IT
相關推薦

2021-06-15 15:33:36

存儲選型系統

2021-03-28 20:44:34

Kafka中間件MQ

2021-04-20 19:20:57

Kafka架構設計

2021-06-10 07:49:27

Kafka 架構設計

2021-09-06 06:45:06

WebpackMindMasterEntry

2009-11-06 16:48:03

WCF簡介

2010-05-27 17:41:09

2021-11-11 06:57:01

Splunk部署數據

2022-03-10 08:33:24

Splunk字段提取器

2019-02-12 09:52:20

Linux安全Windows

2022-03-25 00:00:00

Splunk搜索SPL

2022-03-01 13:55:27

TektonKubernetes集群

2021-08-11 06:34:14

ZabbixDocker運維

2022-03-28 09:31:58

for循環語句

2011-01-18 10:00:59

Linux磁盤分區

2024-01-10 09:26:52

Rust所有權編程

2022-10-11 08:37:43

Servlet配置版本

2019-05-21 14:33:01

2016-09-23 10:34:32

JUnitGradleAgile

2021-08-30 08:43:26

Java 語言 Java 基礎
點贊
收藏

51CTO技術棧公眾號

午夜黄色小视频| 久久久久性色av无码一区二区| 偷拍视频一区二区三区| 亚洲国产精品ⅴa在线观看| 成人性教育视频在线观看| 中文字幕一区二区三区手机版| 欧美女优在线视频| 欧美男男青年gay1069videost| 无码人妻少妇伦在线电影| 成人免费高清在线播放| 国产成人在线影院| 欧洲永久精品大片ww免费漫画| 久久人妻无码aⅴ毛片a片app| 久久久久观看| 3atv一区二区三区| 激情五月开心婷婷| 美女精品导航| 成人免费在线观看入口| 欧洲精品一区色| 亚洲国产精品久久人人爱潘金莲 | 成人激情自拍| 欧美视频中文字幕| 欧美在线观看成人| av片在线观看永久免费| 欧美激情一区不卡| 免费在线观看一区二区| 亚洲精品久久久久久久久久久久久久 | 一区二区三区黄色| 黄色免费看视频| 国产精品一区二区精品视频观看| 色拍拍在线精品视频8848| 日韩国产成人无码av毛片| 国产色在线观看| 国产清纯白嫩初高生在线观看91 | 欧美自拍第一页| 国产主播一区二区| 国产精品入口日韩视频大尺度| 四虎精品永久在线| 亚洲欧洲一区| 欧美激情免费视频| 日本天堂中文字幕| 91成人免费| 久久精品亚洲精品| 美女三级黄色片| 久久视频在线| 综合136福利视频在线| 精品无人区无码乱码毛片国产| 露出调教综合另类| 亚洲精品久久久久久久久久久久久 | 亚洲欧美一区二区三区在线| 免费不卡的av| 动漫3d精品一区二区三区乱码| 91精品国产91热久久久做人人| 欧美一级xxxx| 91嫩草国产线观看亚洲一区二区 | 国内成人自拍| 国产性猛交xxxx免费看久久| japanese中文字幕| 欧美偷拍自拍| 日韩中文理论片| 国精品人伦一区二区三区蜜桃| 日本女优一区| 日韩有码视频在线| 国产精品 欧美激情| 欧美成人tv| 韩国精品久久久999| 久草手机在线观看| 玖玖在线精品| 国产精品一区二区久久久| 午夜精品免费观看| 麻豆91在线看| 91嫩草在线| 天天干,夜夜爽| 久久久精品国产免大香伊| 欧美日韩精品一区| 1区2区3区在线观看| 自拍偷拍亚洲激情| 少妇人妻无码专区视频| 欧洲av不卡| 欧美剧情电影在线观看完整版免费励志电影 | 最新av电影网站| 欧美91视频| 69av视频在线播放| 日韩乱码一区二区三区| 国产尤物一区二区在线 | 成人高清电影网站| 大量国产精品视频| 久久一区二区三区视频| 免费在线成人网| 3d精品h动漫啪啪一区二区 | 亚洲精品一区二区三区在线| 日韩成人xxxx| 三级黄色录像视频| 99re国产精品| 成人国产精品一区二区| 日韩有码第一页| 国产精品免费观看视频| 国产精品www在线观看| 电影亚洲精品噜噜在线观看| 88在线观看91蜜桃国自产| 97人妻精品一区二区三区免费| 成人3d精品动漫精品一二三| 欧美精品久久久久久久久久| 中文字幕永久在线| 成人天堂资源www在线| 特级西西444www大精品视频| 国产丝袜在线播放| 在线观看视频一区二区| wwwxx日本| 五月开心六月丁香综合色啪| 日本一区二区在线免费播放| 午夜久久久久久久久久| 亚洲国产高清aⅴ视频| 成人免费性视频| 999精品嫩草久久久久久99| 亚洲欧美成人在线| 国产无遮挡又黄又爽又色| 久久国产精品免费| 日韩精品成人一区二区在线观看| a国产在线视频| 欧美一级久久久久久久大片| 欧美一区二区三区粗大| 国产精品试看| 国产精品xxxx| 自由的xxxx在线视频| 欧美日韩日日夜夜| 阿v天堂2014| 亚洲一区二区网站| 黄色小网站91| 91桃色在线| 日韩精品中文字幕一区 | 天天影视网天天综合色在线播放| √天堂资源在线| 日韩综合网站| 国产精品女主播| 国产黄在线观看免费观看不卡| 调教+趴+乳夹+国产+精品| 欧美日韩一区二区区| 一区二区日韩欧美| 91日韩在线播放| 麻豆网站在线看| 欧美日韩精品福利| 成人欧美一区二区三区黑人一| 久久资源在线| 日韩高清dvd| av激情成人网| 中文字幕免费国产精品| 特级西西444www高清大视频| 欧美—级在线免费片| 欧美 日韩 国产 激情| 国产一区二区三区网| 国产精品成人一区| 三区四区在线视频| 91精品免费观看| 岛国毛片在线观看| 高清国产一区二区| 99爱视频在线| 青青草原综合久久大伊人精品| 国产精品亚洲自拍| 成人在线观看亚洲| 精品国产在天天线2019| 欧美a∨亚洲欧美亚洲| 久久影院视频免费| 国产成人手机视频| 四虎8848精品成人免费网站| 91久久嫩草影院一区二区| 天堂8中文在线| 日韩不卡中文字幕| 在线视频精品免费| 亚洲日本在线看| 国产+高潮+白浆+无码| 国产欧美精品| 午夜一区二区三区| 亚洲一区二区三区日本久久九| 国语自产精品视频在线看抢先版图片| 日本黄在线观看| 欧美日韩精品福利| 国产精品30p| 国产欧美中文在线| 久久精品视频在线观看免费| 精品av久久久久电影| 日本一区美女| 精品久久亚洲| 国产aⅴ夜夜欢一区二区三区| 3p在线观看| 亚洲国产又黄又爽女人高潮的| 波多野结衣影片| 亚洲精品成a人| 好吊视频在线观看| 国产一区二区久久| 亚洲爆乳无码专区| 欧美精品不卡| 日韩wuma| 粉嫩久久久久久久极品| 国产精品va在线播放我和闺蜜| 很黄的网站在线观看| 亚洲国产精彩中文乱码av在线播放| 久久久久久亚洲av无码专区| 亚洲精品乱码久久久久久黑人 | 奇米色欧美一区二区三区| 91九色国产社区在线观看| 忘忧草在线影院两性视频| 精品国偷自产在线视频99| 天堂av网在线| 日韩欧美第一区| 中文字幕av在线免费观看| 五月天欧美精品| 希岛爱理中文字幕| 欧美激情一区二区三区在线| 国产精品无码电影| 国产v综合v亚洲欧| 极品粉嫩美女露脸啪啪| 久久久久免费| www.日本在线播放| 欧美在线1区| 亚洲一区尤物| 精品久久美女| 欧美在线激情| 久久精品国产亚洲blacked| 亚洲xxx视频| 伊人久久大香伊蕉在人线观看热v 伊人久久大香线蕉综合影院首页 伊人久久大香 | 精品久久久久人成| 欧美片一区二区| 中文字幕日本不卡| 性猛交ⅹxxx富婆video| 久久影院午夜片一区| 亚洲av无码一区东京热久久| 国产麻豆精品久久一二三| 九九热在线免费| 日韩在线一区二区三区| 国产乱子夫妻xx黑人xyx真爽| 欧美视频成人| 亚洲色婷婷久久精品av蜜桃| 欧美电影一二区| 一级日韩一区在线观看| 欧美手机视频| 亚洲草草视频| 精品国产精品| 日韩亚洲视频| 欧美丝袜丝交足nylons172| 亚洲不卡一卡2卡三卡4卡5卡精品| japanese色系久久精品| 成人区精品一区二区| 国产一区二区三区| 91亚色免费| 看亚洲a级一级毛片| 97超碰最新| 538任你躁精品视频网免费| 99精彩视频| jizz性欧美23| 久久99精品久久久久久久青青日本| 盗摄牛牛av影视一区二区| 国产专区一区二区| 久久婷婷国产| 麻豆成人在线播放| 精品美女久久久| 在线免费观看成人| 久久精品青草| 国产制服91一区二区三区制服| 午夜天堂精品久久久久| 久久视频这里有精品| 久久精品天堂| 日本中文字幕精品—区二区| 国产一区二区视频在线| 绯色av蜜臀vs少妇| 99久久99久久综合| 免费视频91蜜桃| 亚洲丝袜另类动漫二区| 国产亚洲精品av| 欧美午夜激情视频| 在线免费看毛片| 日韩免费一区二区三区在线播放| 天天干天天爱天天操| 亚洲性69xxxbbb| a级影片在线观看| 38少妇精品导航| 国产精品麻豆成人av电影艾秋| 亚洲最大av网| 伊人春色精品| 久久久久久久免费视频| 99国产精品| 久久久久国产一区| 国产福利精品一区二区| 波多野结衣福利| 亚洲视频一二三| 亚洲久久在线观看| 宅男噜噜噜66一区二区66| 三级视频在线看| 日韩视频在线一区| sm捆绑调教国产免费网站在线观看| 国产精品成人品| 狠狠一区二区三区| 制服国产精品| 亚洲一区国产| 国产亚洲精品成人a| 亚洲国产精品精华液ab| 日韩伦人妻无码| 在线不卡a资源高清| 台湾av在线二三区观看| 超碰91人人草人人干| 日韩精品第一| 九九九九精品九九九九| 久久久久午夜电影| 免费av网址在线| 成人福利视频网站| 99精品中文字幕| 欧美三级xxx| 丰满熟女一区二区三区| 日韩亚洲一区二区| 大胆人体一区二区| 成人资源av| 五月婷婷六月综合| 另类小说第一页| 26uuu国产电影一区二区| 久草国产在线视频| 欧美乱妇20p| 成人在线观看免费| 日本久久久久久久| 九色丨蝌蚪丨成人| 菠萝蜜视频在线观看入口| 国产在线精品免费| 精品伦精品一区二区三区视频密桃| 欧美性黄网官网| 亚洲人成色777777老人头| 久久人人爽人人| 欧美一级片网址| eeuss中文| 精品一区二区国语对白| 精品丰满少妇一区二区三区| 色老汉av一区二区三区| 青春草在线观看 | 欧美黑人巨大xxxxx| 久久久久久久有限公司| 一区二区三区国产盗摄 | 国产精品无码久久av| 色婷婷久久一区二区| www.26天天久久天堂| 日韩影片在线播放| 日本不卡高清视频| 亚洲精品成人av久久| 欧美亚洲一区二区在线观看| 国产高清在线| 国产精品亚洲一区二区三区| 日韩片欧美片| 日日干日日操日日射| 中文字幕一区二区5566日韩| 一区二区日韩在线观看| 日韩在线视频导航| 麻豆一区在线| 男人天堂网站在线| 处破女av一区二区| 国产一区二区99| 一本色道久久综合狠狠躁篇怎么玩| 国产成人77亚洲精品www| 亚洲一区三区| 国产精品自产自拍| 国产精品二区一区二区aⅴ| 亚洲精品电影在线| 欧美日韩美女| 亚洲欧洲国产日韩精品| 精品一区二区三区免费播放| 九九热视频精品| 日韩电影视频免费| 成人黄色图片网站| 日本不卡一区二区三区四区| 成人综合婷婷国产精品久久| 久久久久久久黄色片| 在线激情影院一区| 亚洲3区在线| av天堂永久资源网| 中文字幕一区二区在线播放| 不卡视频在线播放| 91成人国产在线观看| 成人一区二区| 无码人妻一区二区三区精品视频| 婷婷国产v国产偷v亚洲高清| 免费av在线电影| 91亚洲永久免费精品| 一区二区三区福利| av资源在线免费观看| 日韩精品一区二区三区三区免费| 小草在线视频免费播放| 中文视频一区视频二区视频三区 | 国产av自拍一区| 日韩限制级电影在线观看| a一区二区三区| 中文字幕一区二区三区乱码| 99精品热视频| 国产精品亚洲lv粉色| 2019日本中文字幕| 日韩精品中文字幕第1页| 五月天丁香社区| 欧美三级欧美一级| ririsao久久精品一区| 先锋影音一区二区三区| av综合在线播放| 97精品人妻一区二区三区| 青草成人免费视频| 欧美午夜国产| 国产一级淫片久久久片a级|