精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

精品无码人妻少妇久久久久久| 亚洲一区高清| 中文字幕在线播| 久久99国内| 欧美午夜电影一区| 午夜啪啪福利视频| 五月婷婷综合久久| 男人的j进女人的j一区| 蜜臀久久99精品久久久久久宅男| 精品人妻伦一二三区久| 日韩制服诱惑| 一个色在线综合| 日本免费高清不卡| 国产成人毛毛毛片| 媚黑女一区二区| 久久国产精品免费视频| 中文字幕xxx| 亚洲精品黑牛一区二区三区| 日本丰满少妇一区二区三区| www国产无套内射com| 经典三级在线| 懂色av一区二区在线播放| 国产91久久婷婷一区二区| 1024手机在线视频| 欧美一区二区三| 亚洲国产精品高清久久久| 亚洲一区精品视频在线观看| 欧美gv在线| 一区二区三区精品视频在线| 日韩精品国内| 天天在线女人的天堂视频| 国产黑丝在线一区二区三区| 国产精品视频一区二区高潮| 99精品视频99| 狠狠88综合久久久久综合网| 国产一区二区三区18 | 国产一区欧美一区| 日韩av黄色在线观看| 日本三级视频在线| 亚洲破处大片| 色偷偷av一区二区三区乱| 青青草视频成人| 美女扒开腿让男人桶爽久久动漫| 日韩免费视频一区二区| 蜜臀一区二区三区精品免费视频 | 亚洲国产一区二区三区青草影视| 一区二区国产日产| 91啦中文在线| 欧美激情综合五月色丁香小说| 欧美不卡在线一区二区三区| 人人妻人人玩人人澡人人爽| 国产sm精品调教视频网站| 91视频国产一区| 91国产精品一区| 久草热8精品视频在线观看| 国产精品久久久久久久久免费看| 国产一级一级国产| 日日夜夜精品视频天天综合网| 午夜精品一区二区三区在线| 日本中文字幕免费观看| 精品动漫一区| 97成人在线视频| 欧美三级韩国三级日本三斤在线观看 | 日韩一级网站| 91精品国产91久久久久久不卡| 国产一级在线视频| 日韩一级免费| 国产999在线观看| 最好看的日本字幕mv视频大全| 日韩电影在线免费看| 国产精品入口尤物| 国产特级黄色片| 国产白丝网站精品污在线入口| av在线不卡一区| 人妻精品一区一区三区蜜桃91| 成人午夜精品在线| 玖玖玖精品中文字幕| 国产小视频在线| 国产精品午夜在线观看| 天堂av免费看| av影视在线| 色哟哟国产精品| 91淫黄看大片| 老司机精品视频网| 欧美一区二区美女| 在线精品一区二区三区| 国产在线观看91一区二区三区| 中日韩美女免费视频网址在线观看| 激情五月激情综合| 亚洲午夜伦理| 国产精品www网站| aaa一区二区| 久久综合色天天久久综合图片| 亚洲自拍三区| 日韩有码第一页| 精品亚洲免a| 精品视频中文字幕| 男女男精品视频网站| 午夜亚洲福利| 国产精品第一视频| 超碰在线观看av| 国产日韩欧美综合一区| 51xx午夜影福利| 亚洲一级少妇| 日韩写真欧美这视频| 伊人网在线视频观看| 婷婷丁香综合| 日本久久中文字幕| a级片免费观看| 国产亚洲一区字幕| 999一区二区三区| 久久精品国产精品亚洲毛片| 精品久久久久99| а天堂中文在线资源| 99国产精品久久久久久久| 成人激情视频小说免费下载| 亚洲欧美日韩动漫| 亚洲精品写真福利| 熟女人妇 成熟妇女系列视频| 日韩成人在线观看视频| 最近2019中文字幕大全第二页| 国产亚洲小视频| 极品美女销魂一区二区三区免费| 明星裸体视频一区二区| 国产丝袜视频在线播放| 欧美精品一二三四| 国产免费看av| 亚洲二区精品| 亚洲字幕在线观看| 在线免费看黄网站| 91久久国产最好的精华液| 97人妻精品一区二区三区免费| 91精品综合久久久久久久久久久| 国产mv久久久| 欧美人体大胆444www| 亚洲国产美女搞黄色| 国产免费中文字幕| 日韩中文在线电影| 国产精品女主播视频| 日本大臀精品| 欧美性猛交99久久久久99按摩| 精品一区二区三区四区五区六区| 亚洲色图网站| 91亚洲一区精品| 免费a在线看| 欧美精品丝袜中出| 日韩av网站在线播放| 奇米精品一区二区三区在线观看| 欧美一区二区三区四区夜夜大片 | 一区不卡在线观看| 欧美激情一区二区三区在线| 国产精品无码av无码| 亚洲瘦老头同性70tv| 欧美一区二粉嫩精品国产一线天| 午夜激情在线视频| 日韩欧美亚洲成人| av网在线播放| 蜜臀99久久精品久久久久久软件| 日韩久久不卡| 最新日韩一区| 久久精品国亚洲| 国产白浆在线观看| 亚洲综合丁香婷婷六月香| zjzjzjzjzj亚洲女人| 亚洲国内欧美| 久草一区二区| 日韩中文在线播放| 久久中文字幕国产| 亚洲精品网站在线| 日韩人在线观看| a资源在线观看| 国产一区二区三区四区五区入口| 日韩一二区视频| 欧美人与动xxxxz0oz| 日产精品久久久一区二区福利| 都市激情在线视频| 欧美乱妇15p| 我要看黄色一级片| 成人av一区二区三区| 欧美日韩一区二区在线免费观看 | 岛国精品在线观看| 青青草原av在线播放| 四虎国产精品免费观看| 97人人模人人爽人人喊38tv| 色偷偷色偷偷色偷偷在线视频| 一区二区三区国产视频| 国产精品美女一区| 亚洲第一久久影院| 日韩丰满少妇无码内射| 久久99国产精品久久99果冻传媒| 福利视频免费在线观看| 国产精品一线天粉嫩av| 亚洲精品日韩av| 亚洲欧洲美洲av| 久久精品中文字幕一区| 人人妻人人澡人人爽精品日本| 日本韩国一区二区| 久草免费在线观看视频| 久久精品夜色噜噜亚洲aⅴ| www.日本久久| 三级一区在线视频先锋| 国产激情片在线观看| 国内成人精品| 成人三级在线| 欧美爱爱视频| 欧美一性一乱一交一视频| 成人黄视频在线观看| 亚洲免费精彩视频| 亚洲大尺度网站| 欧美三区在线观看| 亚洲第一在线播放| 亚洲一区影音先锋| 俄罗斯毛片基地| 91免费视频网| 国产乱淫av片| 国产一区二区久久| 天美星空大象mv在线观看视频| 红桃视频欧美| 青青草影院在线观看| 欧美日韩国产高清电影| 好吊妞www.84com只有这里才有精品 | 国产精品成久久久久三级| 9999精品成人免费毛片在线看| 久久亚洲精品国产亚洲老地址| 国产午夜在线视频| 亚洲精品有码在线| 韩国av在线免费观看| 欧美一区二区三区免费| 6—12呦国产精品| 日本道免费精品一区二区三区| 免费在线观看黄网站| 亚洲综合一区二区三区| 一区二区三区四区五区| 一区二区中文视频| 无码人中文字幕| 欧美国产欧美亚州国产日韩mv天天看完整| 欧美无人区码suv| www.激情成人| 好吊色视频一区二区三区| 高清在线成人网| 日本xxxx免费| 丁香另类激情小说| 国产精品成人99一区无码| 国产99一区视频免费| 日韩高清一二三区| 国产成人a级片| 色悠悠在线视频| 成人激情小说乱人伦| 日本一卡二卡在线| 91色综合久久久久婷婷| 国产福利短视频| 久久久亚洲欧洲日产国码αv| av女人的天堂| 国产欧美日韩久久| 娇小11一12╳yⅹ╳毛片| 国产精品久久免费看| 在线看的片片片免费| 亚洲另类在线一区| 国产精品9191| 精品久久久久久中文字幕一区奶水 | 欧美a级成人淫片免费看| 亚洲欧洲日夜超级视频| 天天射—综合中文网| 日本一道在线观看| 1024日韩| 日韩一级在线免费观看| 日本亚洲一区二区| 中文字幕 欧美日韩| 国产成人午夜99999| 中文字幕一区二区人妻电影丶| 26uuu国产一区二区三区| 欧美 日韩 国产 成人 在线观看 | 久久久久久久久久久久久久久久久 | 色播五月综合| 91精品一区国产高清在线gif | 密臀av在线播放| 青草青草久热精品视频在线网站| 小明成人免费视频一区| 91av一区二区三区| 日韩欧美黄色| 亚洲精品欧美精品| 欧美午夜精品| 波多野结衣家庭教师视频| 麻豆高清免费国产一区| 国产无套精品一区二区三区| 久久亚洲精品小早川怜子| 久久久久人妻一区精品色| 亚洲一区二区综合| 这里只有精品免费视频| 日韩欧美一区二区视频| 精品久久久久一区二区三区 | 日韩欧美一级二级三级| 三级无遮挡在线观看| www.久久撸.com| 日韩影院在线| 91精品啪aⅴ在线观看国产| 乱亲女h秽乱长久久久| 亚洲精品中文字幕在线| 国产综合精品一区| 超碰在线97免费| av综合在线播放| a一级免费视频| 狠狠躁18三区二区一区| 国产成人精品一区二三区四区五区 | 国产黄色片在线播放| 欧美激情国产高清| a∨色狠狠一区二区三区| 国产日韩一区欧美| 国产精品videosex性欧美| 日韩av一二三四区| 国产很黄免费观看久久| 欧美视频一区二区在线| 色综合久久天天| 成人午夜免费福利| 久久精品中文字幕一区| 欧美国产日韩电影| 美女亚洲精品| 99精品国产一区二区青青牛奶| www.污污视频| 国产精品久久久久精k8| 国产视频1区2区| 精品国产乱码久久久久久老虎 | 色橹橹欧美在线观看视频高清| 福利在线小视频| 久久精品国产秦先生| 欧美另类z0zx974| 欧美体内谢she精2性欧美| 免费观看a视频| 色与欲影视天天看综合网| 亚洲国产91视频| 亚洲国产精品一区在线观看不卡| 欧美一级视频| 黄色工厂在线观看| 婷婷六月综合亚洲| 天天操天天操天天干| 久久久久久91| www.爱久久| a天堂资源在线观看| 国产高清视频一区| 黑人巨大精品一区二区在线| 正在播放亚洲一区| 超碰在线观看免费版| 91精品视频在线看| 婷婷综合视频| 日韩欧美中文在线视频| 亚洲美女免费在线| 国产av精国产传媒| 欧美黑人性猛交| 超碰成人在线观看| 久艹视频在线免费观看| 99久久免费视频.com| 欧美一区二区激情视频| 亚洲毛片在线看| 自拍偷自拍亚洲精品被多人伦好爽 | 成人免费在线观看入口| 97超碰国产在线| 久久91精品国产| 欧美调教视频| 北条麻妃av高潮尖叫在线观看| 国产欧美一区二区精品性| 亚洲精品一区二区二区| www国产亚洲精品久久网站| 国产精品久久免费视频| 9191国产视频| 91在线丨porny丨国产| 337p粉嫩色噜噜噜大肥臀| 深夜福利91大全| 日韩第一区第二区| 精品中文字幕av| 国产欧美精品在线观看| 国产精品视频第一页| 久久久噜噜噜久噜久久| 伊人久久综合影院| 天堂中文av在线| 亚洲午夜av在线| 国产一二三区在线| 91青青草免费在线看| 国产精品久久久久9999高清| 国产精品理论在线| 日韩欧美视频一区| av在线日韩| 免费一级淫片aaa片毛片a级| 久久久久久亚洲综合影院红桃| 97在线视频人妻无码| 久久久久久国产精品久久| 国产探花一区二区| 中文字幕av一区二区三区人妻少妇| 精品女厕一区二区三区| 亚洲成人影院麻豆| 国产一区不卡在线观看| 男人的天堂亚洲一区| 国产午夜精品无码| 日韩一区二区三区国产| 精品亚洲免a| 久久久久久久久久毛片| 欧美日韩一区免费| 永久免费网站在线| 日韩欧美视频一区二区三区四区| 国产成人av一区| 懂色av蜜臀av粉嫩av分享吧最新章节|