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

為什么kafka性能下降這么快,我用RocketMQ的時候不會這樣子

開發 架構
在Topic中有分為了多個Queue,這其實是我們發送/讀取消息通道的最小單位,我們發送消息都需要指定某個寫入某個Queue,拉取消息的時候也需要指定拉取某個Queue,所以我們的順序消息可以基于我們的Queue維度保持隊列有序,如果想做到全局有序那么需要將Queue大小設置為1,這樣所有的數據都會在Queue中有序。

?Rocketmq和kafka這兩個消息隊列大家應該都比較熟悉吧,哪怕不是很熟悉,應該也聽說過的吧,你別告訴我,作為一個資深的程序員,你沒聽過這兩門技術。

我之前使用這兩個消息隊列的時候就遇到一個很奇怪的問題,就是在kafka里面弄了比較多的topic,性能下降的速度賊快,不知道大家遇到過沒,而同樣的場景切換到消息隊列rocketmq中,下降速度卻沒有那么快。

不熟悉這倆消息隊列結構的朋友,一聽這個肯定還是不太清楚的,今天我來給大家分析分析這其中的原因,給大家解惑。

rocketmq的結構

圖片

NameServer:主要是對元數據的管理,包括Topic和路由信息的管理,底層由netty實現,是一個提供路由管理、路由注冊和發現的無狀態節點,類似于ZooKeeper

Broker:消息中轉站,負責收發消息、持久化消息

Producer:消息的生產者,一般由業務系統來產生消息供消費者消費

Consumer:消息的消費者,一般由業務系統來異步消費消息

在RocketMQ中的每一條消息,都有一個Topic,用來區分不同的消息。一個主題一般會有多個消息的訂閱者,當生產者發布消息到某個主題時,訂閱了這個主題的消費者都可以接收到生產者寫入的新消息。

在Topic中有分為了多個Queue,這其實是我們發送/讀取消息通道的最小單位,我們發送消息都需要指定某個寫入某個Queue,拉取消息的時候也需要指定拉取某個Queue,所以我們的順序消息可以基于我們的Queue維度保持隊列有序,如果想做到全局有序那么需要將Queue大小設置為1,這樣所有的數據都會在Queue中有序。

圖片

我們同一組Consumer會根據一些策略來選Queue,常見的比如平均分配或者一致性Hash分配。

要注意的是當Consumer出現下線或者上線的時候,這里需要做重平衡,也就是Rebalance,RocketMQ的重平衡機制如下:

定時拉取broker,topic的最新信息,每隔20s做重平衡,隨機選取當前Topic的一個主Broker,這里要注意的是不是每次重平衡所有主Broker都會被選中,因為會存在一個Broker再多個Broker的情況。

獲取當前Broker,當前ConsumerGroup的所有機器ID。然后進行策略分配。

由于重平衡是定時做的,所以這里有可能會出現某個Queue同時被兩個Consumer消費,所以會出現消息重復投遞。

Queue讀寫數量不一致

在RocketMQ中Queue被分為讀和寫兩種,在最開始接觸RocketMQ的時候一直以為讀寫隊列數量配置不一致不會出現什么問題的,比如當消費者機器很多的時候我們配置很多讀的隊列,但是實際過程中發現會出現消息無法消費和根本沒有消息消費的情況。

當寫的隊列數量大于讀的隊列的數量,當大于讀隊列這部分ID的寫隊列的數據會無法消費,因為不會將其分配給消費者。

當讀的隊列數量大于寫的隊列數量,那么多的隊列數量就不會有消息被投遞進來。

  

圖片

rocketmq中的存儲機制

RocketMQ憑借其強大的存儲能力和強大的消息索引能力,以及各種類型消息和消息的特性脫穎而出,于是乎,我們這些有夢想的程序員學習RocketMQ的存儲原理也變得尤為重要

而要說起這個存儲原理,則不得不說的就是RocketMQ的消息存儲文件commitLog文件,消費方則是憑借著巧妙的設計Consumerqueue文件來進行高性能并且不混亂的消費,還有RocketMQ的強大的支持消息索引的特性,靠的就是indexfile索引文件

我們這篇文章就從這commitLog、Consumerqueue、indexfile這三個神秘的文件說起,搞懂這三個文件,RocketMQ的核心就被你掏空了

先上個圖,寫入commitLog文件時commitLog和Consumerqueue、indexfile文件三者的關系

圖片

commitLog

RocketMQ中的消息存儲文件放在${ROCKET_HOME}/store 目錄下,當生產者發送消息時,broker會將消息存儲到Commit文件夾下,文件夾下面會有一個commitLog文件,但是并不是意味著這個文件叫這個,文件命名是根據消息的偏移量來決定的。

文件有自己的生成規則,每個commitLog文件的大小是1G,一般情況下第一個 CommitLog 的起始偏移量為 0,第二個 CommitLog 的起始偏移量為 1073741824 (1G = 1073741824byte)。

commitLog文件的最大的一個特點就是消息的順序寫入,隨機讀寫,所有的topic的消息都存儲到commitLog文件中,順序寫入可以充分的利用磁盤順序減少了IO爭用數據存儲的性能,kafka也是通過硬盤順序存盤的。

大家都常說硬盤的速度比內存慢,其實這句話也是有歧義的,當硬盤順序寫入和讀取的時候,速度不比內存慢,甚至比內存速度快,這種存儲方式就好比數組,我們如果知道數組的下標,則可以直接通過下標計算出位置,找到內存地址,眾所周知,數組的讀取是很快的,但是數組的缺點在于插入數據比較慢,因為如果在中間插入數據需要將后面的數據往后移動。

而對于數組來說,如果我們只會順序的往后添加,數組的速度也是很快的,因為數組沒有后續的數據的移動,這一操作很耗時。

回到RocketMQ中的commitLog文件,也是同樣的道理,順序的寫入文件也就不需要太多的去考慮寫入的位置,直接找到文件往后放就可以了,而取數據的時候,也是和數組一樣,我們可以通過文件的大小去精準的定位到哪一個文件,然后再精準的定位到文件的位置。

           

圖片

consumerqueue文件

RocketMQ是分為多個topic,消息所屬主題,屬于消息類型,每一個topic有多個queue,每個queue放著不同的消息,在同一個消費者組下的消費者,可以同時消費同一個topic下的不同queue隊列的消息。不同消費者下的消費者,可以同時消費同一個topic下的相同的隊列的消息。而同一個消費者組下的消費者,不可以同時消費不同topic下的消息。

而每個topic下的queue隊列都會對應一個Consumerqueue文件,這個存儲的就是對應的commitLog文件中的索引位置,而不用存儲真實的消息。

consumequeue存放在store文件里面,里面的consumequeue文件里面按照topic排放,然后每個topic默認4個隊列,里面存放的consumequeue文件。

ConsumeQueue中并不需要存儲消息的內容,而存儲的是消息在CommitLog中的offset。也就是說ConsumeQueue其實是CommitLog的一個索引文件。

consumequeue是定長結構,每個記錄固定大小20個字節,單個consumequeue文件默認包含30w個條目,所以單個文件大小大概6M左右。

圖片

很顯然,Consumer消費消息的時候,要讀2次:先讀ConsumeQueue得到offset,再通過offset找到CommitLog對應的消息內容。

IndexFile

RocketMQ還支持通過MessageID或者MessageKey來查詢消息,使用ID查詢時,因為ID就是用broker+offset生成的(這里msgId指的是服務端的),所以很容易就找到對應的commitLog文件來讀取消息。

對于用MessageKey來查詢消息,MessageStore通過構建一個index來提高讀取速度。

圖片

indexfile文件存儲在store目錄下的index文件里面,里面存放的是消息的hashcode和index內容,文件由一個文件頭組成:長40字節。500w個hashslot,每個4字節。2000w個index條目,每個20字節。

所以這里我們可以估算每個indexfile的大小為:40+500w4+2000w20個字節,大約400M左右。

每放入一個新消息的index進來,首先會取MessageKey的HashCode,然后用Hashcode對slot的總數進行取模,決定該消息key的位置,slot的總數默認是500W個。

只要取hash就必然面臨著hash沖突的問題,indexfile也是采用鏈表結構來解決hash沖突,這一點和HashMap一樣的,不過這個不存在紅黑樹轉換這一說,個人猜測這個的沖突數量也達不到很高的級別,所以進行這方面的設計也沒啥必要,甚至變成了強行增加indexfile的文件結構難度。

還有,在indexfile中的slot中放的是最新的index的指針,因為一般查詢的時候大概率是優先查詢最近的消息。

每個slot中放的指針值是索引在indexfile中的偏移量,也就是后面index的位置,而index中存放的就是該消息在commitlog文件中的offset,每個index的大小是20字節,所以根據當前索引是這個文件中的第幾個偏移量,也就很容易定位到索引的位置,根據前面的固定大小可以很快把真實坐標算出來,以此類推,形成一個鏈表的結構。

kafka的結構

圖片

Broker:消息中間件處理節點(服務器),一個節點就是一個broker,一個Kafka集群由一個或多個broker組成。

Topic:Kafka對消息進行歸類,發送到集群的每一條消息都要指定一個topic。

Partition:物理上的概念,每個topic包含一個或多個partition,一個partition對應一個文件夾,這個文件夾下存儲partition的數據和索引文件,每個partition內部是有序的。

Producer:生產者,負責發布消息到broker。

Consumer:消費者,從broker讀取消息。

ConsumerGroup:每個consumer屬于一個特定的consumer group,可為每個consumer指定group name,若不指定,則屬于默認的group,一條消息可以發送到不同的consumer group,但一個consumer group中只能有一個consumer能消費這條消息。

kafka存儲機制

圖片

我們的生產者會決定發送到哪個 Partition,如果沒有 Key 值則進行輪詢發送。

如果有 Key 值,對 Key 值進行 Hash,然后對分區數量取余,保證了同一個 Key 值的會被路由到同一個分區。(所有系統的partition都是同一個路數)。

總所周知,topic在物理層面以partition為分組,一個topic可以分成若干個partition,那么topic以及partition又是怎么存儲的呢?

其實partition還可以細分為logSegment,一個partition物理上由多個logSegment組成,那么這些segment又是什么呢?

LogSegment 文件由兩部分組成,分別為“.index”文件和“.log”文件,分別表示為 Segment 索引文件和數據文件。

這兩個文件的命令規則為:partition全局的第一個segment從0開始,后續每個segment文件名為上一個segment文件最后一條消息的offset值,數值大小為64位,20位數字字符長度,沒有數字用0填充,如下:

第一個segment
00000000000000000000.index
00000000000000000000.log
第二個segment,文件命名以第一個segment的最后一條消息的offset組成
00000000000000170410.index
00000000000000170410.log
第三個segment,文件命名以上一個segment的最后一條消息的offset組成
00000000000000239430.index
00000000000000239430.log

“.index”索引文件存儲大量的元數據,“.log”數據文件存儲大量的消息,索引文件中的元數據指向對應數據文件中message的物理偏移地址。

kafka和rocketmq的比較

RocketMQ和Kafka的存儲核心設計有很大的不同,所以其在寫入性能方面也有很大的差別,這是16年阿里中間件團隊對RocketMQ和Kafka不同Topic下做的性能測試:

圖片

從圖上可以看出:

Kafka在Topic數量由64增長到256時,吞吐量下降了98.37%。

RocketMQ在Topic數量由64增長到256時,吞吐量只下降了16%。

這是為什么呢?

            

圖片

kafka一個topic下面的所有消息都是以partition的方式分布式的存儲在多個節點上。同時在kafka的機器上,每個Partition其實都會對應一個日志目錄,在目錄下面會對應多個日志分段。

所以如果Topic很多的時候Kafka雖然寫文件是順序寫,但實際上文件過多,會造成磁盤IO競爭非常激烈。

那RocketMQ為什么在多Topic的情況下,依然還能很好的保持較多的吞吐量呢?我們首先來看一下RocketMQ中比較關鍵的文件:

圖片

rocketmq中的消息主體數據并沒有像Kafka一樣寫入多個文件,而是寫入一個文件,這樣我們的寫入IO競爭就非常小,可以在很多Topic的時候依然保持很高的吞吐量。

有人可能說這里的ConsumeQueue寫是在不停的寫入呢,并且ConsumeQueue是以Queue維度來創建文件,那么文件數量依然很多,在這里ConsumeQueue的寫入的數據量很小,每條消息只有20個字節,30W條數據也才6M左右,所以其實對我們的影響相對Kafka的Topic之間影響是要小很多的。

再順便提一嘴,一個topic分了一萬個partition和一萬個topic每個topic都是單partition對于kafka的負載是一樣的。

責任編輯:武曉燕 來源: 左耳君
相關推薦

2024-02-26 21:15:20

Kafka緩存參數

2020-03-30 15:05:46

Kafka消息數據

2024-08-05 00:00:00

RocketMQKafka磁盤

2021-03-22 08:30:33

Kafka源碼架構開發技術

2024-11-26 08:52:34

SQL優化Kafka

2020-02-27 21:03:30

調度器架構效率

2020-02-27 15:44:41

Nginx服務器反向代理

2024-03-12 00:00:00

RocketMQ服務端磁盤

2024-07-30 09:01:12

2024-09-14 09:41:17

2020-10-13 17:54:18

開發Kafka數據

2023-08-29 07:46:08

Redis數據ReHash

2020-10-15 09:19:36

Elasticsear查詢速度

2021-05-27 20:56:51

esbuild 工具JavaScript

2020-08-14 09:11:29

RedisQPS數據庫

2019-07-11 15:24:23

CPU芯片元器

2020-08-13 09:19:10

Kafka存儲MQ

2022-08-21 14:00:11

消息中間件MQ

2021-05-31 07:44:08

Kafka分布式系統

2023-03-21 08:02:36

Redis6.0IO多線程
點贊
收藏

51CTO技術棧公眾號

亚洲日本精品国产第一区| 夜夜嗨av色一区二区不卡| 久久久99精品视频| 亚洲高清视频网站| av成人天堂| 亚洲人成绝费网站色www| 少妇一级淫免费播放| av免费在线免费| 成人免费看视频| 国产精品91久久| 三级黄色录像视频| 都市激情亚洲| 欧美图区在线视频| 国产黄色激情视频| 国产午夜视频在线观看| 国产乱码精品一区二区三区av| 欧美精品在线免费观看| 无码成人精品区在线观看| 日韩免费小视频| 一区二区三区在线观看动漫 | 亚洲淫性视频| 国产主播一区二区| 91av在线精品| 男人与禽猛交狂配| 国产探花一区二区| 亚洲第一网站免费视频| 亚洲无在线观看| 成人香蕉视频| 亚洲一区二区欧美| av动漫免费观看| 理论视频在线| 成人一区二区在线观看| 国产精品最新在线观看| 亚洲天堂av片| 激情综合视频| 久久亚洲精品成人| 一级片久久久久| 天天久久夜夜| 日韩免费视频一区| 黄色一级片免费的| 在线一区视频观看| 精品久久久久久久大神国产| 四虎精品欧美一区二区免费| 成年人在线观看视频| 91久色porny| 国产免费一区二区三区| www.国产.com| 国产丶欧美丶日本不卡视频| 成人激情综合网| 国产一卡二卡三卡| 午夜一区不卡| 亚洲**2019国产| 国产系列精品av| 国产一区二区三区四区三区四| 久久亚洲综合国产精品99麻豆精品福利| 天天躁日日躁aaaxxⅹ| 久久国产精品色av免费看| 欧美电影精品一区二区| 久久久久久久久久影视| 免费观看在线一区二区三区| 欧美一区中文字幕| 欧美污在线观看| 精品一区二区三区四区五区| 91精品国产aⅴ一区二区| 91亚洲精品久久久蜜桃借种| 欧美综合在线观看视频| 污污免费在线观看| 国产suv精品一区二区四区视频| 91麻豆精品国产自产在线观看一区| 黑人粗进入欧美aaaaa| 欧美日韩美女| 欧洲亚洲国产日韩| 91女神在线观看| 亚洲男人在线| 欧美成人a∨高清免费观看| 最新日本中文字幕| 狠狠一区二区三区| 亚洲欧美日韩第一区| 亚洲精品乱码久久久久久久久久久久 | 国产精品久久无码一三区| 精油按摩中文字幕久久| 亚洲综合自拍一区| 人人妻人人澡人人爽精品日本| www.激情成人| 欧美性bbwbbwbbwhd| 在线看黄色av| 樱花草国产18久久久久| 欧美乱做爰xxxⅹ久久久| 欧美1—12sexvideos| 欧美日韩精品中文字幕| 在线观看的毛片| 91麻豆精品| 亚洲精品一区二区三区精华液| 精品国产人妻一区二区三区| 欧美日韩激情| 色综合视频一区中文字幕| 国产精品99re| 日本va欧美va精品| 99在线视频首页| 天天舔天天干天天操| 国产精品视频麻豆| 男人天堂手机在线视频| 亚洲欧美在线成人| 日韩美女天天操| av小说在线观看| 亚洲一区欧美| 日本国产精品视频| 精品乱子伦一区二区| 久久久久久9999| 亚洲春色在线| sm性调教片在线观看| 欧美亚洲愉拍一区二区| 亚洲成年人在线观看| 精品一区二区三区的国产在线观看| 美女扒开尿口让男人操亚洲视频网站| 美日韩一二三区| 国模娜娜一区二区三区| 免费看成人片| 污片在线免费观看| 欧美日韩一区高清| 亚洲一区二区三区四区五区六区| 99精品视频在线观看播放| 欧美亚洲一级片| xxxx18国产| 国产精品毛片无遮挡高清| 国产91xxx| 亚洲无线观看| 久久天天躁狠狠躁夜夜躁| 国产日产精品一区二区三区| 成人一区二区在线观看| 色中文字幕在线观看| 日韩经典一区| 亚洲精品永久免费精品| 久久精品视频久久| 国产乱码精品一品二品| 亚洲精品一区二区三区av| 日韩毛片免费观看| 国产视频精品在线| 国产三级av片| 成人av高清在线| 妺妺窝人体色www看人体| 高清在线一区二区| 日韩中文在线中文网三级| 免费在线观看av的网站| 久久色在线观看| 免费观看美女裸体网站| 国产劲爆久久| 久久久久久欧美| 粉嫩av一区二区夜夜嗨| 一区二区三区欧美日韩| 免费看的av网站| 影音先锋成人在线电影| 91九色单男在线观看| 成人video亚洲精品| 这里只有精品免费| 日本aⅴ在线观看| 国产精品一品二品| 国产一级大片免费看| 亚洲综合色婷婷在线观看| 美女av一区二区三区| av官网在线观看| 亚洲码国产岛国毛片在线| 国产女同无遮挡互慰高潮91| 国产精品传媒精东影业在线 | 伊人久久在线观看| 天堂va在线高清一区| 欧美高清视频在线观看| 亚洲精品中文字幕成人片| 亚洲国产日韩a在线播放性色| 麻豆av免费看| 99亚洲一区二区| 欧美日韩国产高清视频| 深夜成人影院| 丝袜亚洲另类欧美重口| 99国产在线播放| 一区二区三区日韩精品| 久久久老熟女一区二区三区91| 亚洲国产二区| 任我爽在线视频精品一| 久久亚洲人体| 欧美精品一本久久男人的天堂| 免费观看黄色av| 色婷婷久久99综合精品jk白丝| 色屁屁草草影院ccyy.com| 国产一区三区三区| 激情深爱综合网| 精品美女久久| 91九色对白| 一二三四视频在线中文| 日韩亚洲国产中文字幕| 欧美一区二区公司| 在线免费观看日本欧美| 欧美黄色免费看| 91在线看国产| 色啦啦av综合| 亚洲综合激情| 欧美日韩一级在线| 欧美aaaaaaaa牛牛影院| 成人黄色av免费在线观看| www视频在线观看| 久久精品国产亚洲| 四虎成人免费在线| 91精品国产综合久久精品麻豆 | porn视频在线观看| 精品国产乱子伦一区| 中文字幕在线观看免费| 亚洲成人精品在线观看| 午夜精品久久久久99蜜桃最新版 | 97人人做人人人难人人做| 日本三级一区| 欧美精品做受xxx性少妇| 加勒比一区二区三区在线| 日韩欧美三级在线| 亚洲午夜在线播放| 欧美日韩中文字幕日韩欧美| 黄色片子在线观看| 国产亚洲欧美日韩在线一区| 国产调教打屁股xxxx网站| 欧美a级一区二区| 中文字幕无码精品亚洲35| 影音先锋日韩精品| 亚洲精品中文字幕在线| 亚洲婷婷丁香| 精品久久久久久一区二区里番| 亚洲一区av| 国产精品视频成人| 午夜精品成人av| 热久久这里只有精品| hd国产人妖ts另类视频| 久久五月天色综合| 麻豆网站在线看| www日韩中文字幕在线看| 国产youjizz在线| 亚洲女人被黑人巨大进入al| 欧美 日韩 国产 成人 在线| 日韩一二三四区| 国产精品嫩草影院桃色| 欧美三级三级三级爽爽爽| 夜夜躁日日躁狠狠久久av| 日韩人体视频一二区| 欧美一级特黄视频| 日韩欧美亚洲成人| 91视频免费网址| 性久久久久久久| 久久午夜鲁丝片午夜精品| 亚洲嫩草精品久久| 侵犯稚嫩小箩莉h文系列小说| 国产精品国产a级| 亚洲欧美va天堂人熟伦| 国产成人aaa| 欧美日韩一区二区区| 久久国产欧美日韩精品| 激情黄色小视频| 美女www一区二区| 国产九九在线视频| 日韩av电影免费观看高清完整版| 免费在线观看的av网站| 亚洲免费网址| www.中文字幕在线| 久久在线91| 国产成人av影视| 久久九九电影| 性chinese极品按摩| 奇米在线7777在线精品| 91香蕉视频导航| 精品在线观看视频| 国产精品嫩草影院8vv8| 免费看精品久久片| 深夜福利网站在线观看| 国产大陆a不卡| 无码人妻精品一区二区三| 91片在线免费观看| 大又大又粗又硬又爽少妇毛片| 久久精品在线免费观看| a级大片在线观看| 中文字幕日韩欧美一区二区三区| 日韩亚洲欧美中文字幕| 亚洲欧美国产毛片在线| 在线看成人av| 色婷婷综合久久久久中文一区二区| 天堂在线免费观看视频| 欧美日韩国产经典色站一区二区三区| 亚洲字幕av一区二区三区四区| 欧美放荡的少妇| 中文字幕视频免费观看| 制服.丝袜.亚洲.中文.综合| 精品乱子伦一区二区| 亚洲成年人在线播放| 国产午夜在线视频| 麻豆成人在线看| 日韩欧美精品一区二区三区| 日本亚洲欧洲色| 欧美亚洲人成在线| 精品在线一区| 国产精品97| 秋霞无码一区二区| 捆绑调教美女网站视频一区| 亚洲丝袜在线观看| 91免费精品国自产拍在线不卡| 五月婷婷综合激情网| 亚洲一区二区三区四区的| 国产精品久免费的黄网站| 7777精品伊人久久久大香线蕉经典版下载 | 视频一区二区三| 欧美精品不卡| 2022亚洲天堂| 国产精品77777| 国产ts在线播放| 亚洲猫色日本管| 97人妻精品视频一区| 欧美成人在线直播| 黄色在线观看网| 91精品国产色综合| 狂野欧美性猛交xxxx| 国产伦理一区二区三区| 亚洲成人三区| 久章草在线视频| 国产成都精品91一区二区三| 国产18无套直看片| 舔着乳尖日韩一区| av在线资源观看| 色伦专区97中文字幕| 激情aⅴ欧美一区二区欲海潮| 国产人妖伪娘一区91| 国产日产精品_国产精品毛片| 妺妺窝人体色www看人体| 免费高清在线一区| 亚洲精品国产一区黑色丝袜| 亚洲国产成人高清精品| 888奇米影视| 一本色道久久88综合亚洲精品ⅰ| 男人天堂亚洲天堂| 国产精品美乳在线观看| 欧美日韩另类图片| 97在线免费视频观看| 免费在线看成人av| 日本免费www| 日本久久一区二区| 粉嫩av一区| 91精品国产乱码久久久久久久久| 日韩中文字幕| 今天免费高清在线观看国语| 久99久精品视频免费观看| 国产特黄级aaaaa片免| 色呦呦国产精品| 姝姝窝人体www聚色窝| 久久久久亚洲精品国产| 在线播放一区二区精品视频| www.午夜色| 青青草国产成人99久久| 超碰人人干人人| 欧美伊人久久大香线蕉综合69| 国产视频精选在线| 国产成人精彩在线视频九色| 天海翼亚洲一区二区三区| 欧美亚洲一二三区| ww亚洲ww在线观看国产| 毛片视频网站在线观看| 亚洲欧美国产日韩天堂区| 周于希免费高清在线观看| 国外成人免费视频| 亚洲国内欧美| 国产精品久久AV无码| 日韩欧美第一页| 男人av在线| 国产精品69精品一区二区三区| 日韩在线理论| 天天摸天天舔天天操| 亚洲欧美激情一区二区| 亚洲成熟女性毛茸茸| 午夜精品久久17c| 国产一区二区三区网| 欧美日韩怡红院| 久久美女高清视频| 亚洲视频一区二区三区四区| 日韩在线观看免费高清完整版| 欧美国产亚洲精品| 欧美亚洲黄色片| 91蜜桃婷婷狠狠久久综合9色| 亚洲 小说区 图片区| 神马国产精品影院av| 99精品国产一区二区三区2021| 国产aaa免费视频| 久久综合色鬼综合色| 一区二区精品视频在线观看| 久久这里只有精品99| 超碰成人在线观看| 在线免费视频a| 亚洲品质自拍视频网站| 亚洲av电影一区| 国产精品久久久久久久久久东京| 97视频精品| 亚洲 欧美 日韩在线| 欧美自拍偷拍午夜视频| 日本片在线观看| 欧美在线激情| 国产精品一区二区三区乱码| 国产黄色免费观看| 久久精品国产成人| 天堂在线精品|