日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當(dāng)前位置:首頁(yè) > 科技  > 軟件

三分鐘白話RocketMQ系列—— 如何存儲(chǔ)消息

來(lái)源: 責(zé)編: 時(shí)間:2023-08-14 22:00:55 419觀看
導(dǎo)讀我們知道RocketMQ主要分為消息 生產(chǎn)、存儲(chǔ)(消息堆積)、消費(fèi) 三大塊領(lǐng)域。那接下來(lái),我們白話一下,RocketMQ是如何存儲(chǔ)消息的,揭秘消息存儲(chǔ)全過(guò)程。注意,如果白話中不小心提到相關(guān)代碼配置與類名,請(qǐng)參考RocketMQ 4.9.4版本關(guān)鍵

我們知道RocketMQ主要分為消息 生產(chǎn)、存儲(chǔ)(消息堆積)、消費(fèi) 三大塊領(lǐng)域。ISc28資訊網(wǎng)——每日最新資訊28at.com

那接下來(lái),我們白話一下,RocketMQ是如何存儲(chǔ)消息的,揭秘消息存儲(chǔ)全過(guò)程。ISc28資訊網(wǎng)——每日最新資訊28at.com

注意,如果白話中不小心提到相關(guān)代碼配置與類名,請(qǐng)參考RocketMQ 4.9.4版本ISc28資訊網(wǎng)——每日最新資訊28at.com

關(guān)鍵字摘要
  • 存儲(chǔ)模型與存儲(chǔ)類型
  • 如何保證存儲(chǔ)消息不丟失
  • 如何提高寫(xiě)入性能
  • 如何清理過(guò)期消息

存儲(chǔ)模型是什么?有哪些存儲(chǔ)類型?

RocketMQ使用了一種基于日志的存儲(chǔ)方式,將消息以順序?qū)懭氲姆绞阶芳拥轿募校瑥亩鴮?shí)現(xiàn)高性能的消息存儲(chǔ)和讀取。ISc28資訊網(wǎng)——每日最新資訊28at.com

RocketMQ的消息存儲(chǔ)方式可以分為兩個(gè)類型:CommitLog 和ConsumeQueue 。ISc28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片ISc28資訊網(wǎng)——每日最新資訊28at.com

還有一個(gè)文件類型是indexfile,主要用于控制臺(tái)消息檢索,不影響消息的寫(xiě)入與消費(fèi),我們就不展開(kāi)了。ISc28資訊網(wǎng)——每日最新資訊28at.com

CommitLog

CommitLog文件存儲(chǔ)了Producer端寫(xiě)入的消息主體內(nèi)容,它以追加寫(xiě)入的方式將消息存儲(chǔ)到磁盤上的文件中。ISc28資訊網(wǎng)——每日最新資訊28at.com

單個(gè)文件大小默認(rèn)1G ,文件名長(zhǎng)度為20位(左邊補(bǔ)零,剩余為起始偏移量),當(dāng)文件滿了,寫(xiě)入下一個(gè)文件。ISc28資訊網(wǎng)——每日最新資訊28at.com

比如00000000000000000000代表了第一個(gè)文件,起始偏移量為0,文件大小為1G=1073741824;當(dāng)?shù)谝粋€(gè)文件寫(xiě)滿了,第二個(gè)文件為00000000001073741824,起始偏移量為1073741824,以此類推。ISc28資訊網(wǎng)——每日最新資訊28at.com

它的主要特點(diǎn)是:順序?qū)懀请S機(jī)讀(被ConsumeQueue讀取)。ISc28資訊網(wǎng)——每日最新資訊28at.com

雖然是隨機(jī)讀,但是利用package機(jī)制,可以批量地從磁盤讀取,作為cache存到內(nèi)存中,加速后續(xù)的讀取速度。ISc28資訊網(wǎng)——每日最新資訊28at.com

Broker單個(gè)實(shí)例下所有的隊(duì)列共用一個(gè)日志數(shù)據(jù)文件CommitLog來(lái)存儲(chǔ)。而Kafka采用的是獨(dú)立型的存儲(chǔ)結(jié)構(gòu),每個(gè)隊(duì)列一個(gè)文件。ISc28資訊網(wǎng)——每日最新資訊28at.com

ConsumeQueue

ConsumeQueue文件是用于支持消息消費(fèi)的存儲(chǔ)結(jié)構(gòu)。保存了指定Topic下的隊(duì)列消息在CommitLog中的起始物理偏移量offset,消息大小size和消息Tag的HashCode值。ISc28資訊網(wǎng)——每日最新資訊28at.com

消費(fèi)者 通過(guò) 順序讀取 ConsumeQueue文件,可以快速定位到消息在CommitLog中的物理存儲(chǔ)位置,從而實(shí)現(xiàn)快速消息的拉取和消費(fèi)。ISc28資訊網(wǎng)——每日最新資訊28at.com

從實(shí)際物理存儲(chǔ)的角度來(lái)看,每個(gè)主題Topic下的每個(gè)隊(duì)列Queue對(duì)應(yīng)一個(gè)ConsumeQueue文件。ISc28資訊網(wǎng)——每日最新資訊28at.com

生產(chǎn)者端的消息是順序?qū)懭隒ommitLog,消費(fèi)者端是順序讀取ConsumeQueue。但是根據(jù)ConsumeQueue的起始物理位置偏移量offset讀取消息真實(shí)內(nèi)容,實(shí)際是隨機(jī)讀取CommitLog。實(shí)現(xiàn)了 消息生產(chǎn)與消息消費(fèi)、數(shù)據(jù)存儲(chǔ)和數(shù)據(jù)索引 相互分離。ISc28資訊網(wǎng)——每日最新資訊28at.com

怎么保證存儲(chǔ)消息不丟失?

刷盤機(jī)制

Broker在把消息寫(xiě)入日志文件的過(guò)程中,如果在剛收到消息時(shí),Broker異常宕機(jī)了,那么內(nèi)存中尚未寫(xiě)入磁盤的消息就會(huì)丟失了。ISc28資訊網(wǎng)——每日最新資訊28at.com

因此,RocketMQ持久化消息分為兩種:同步刷盤和異步刷盤(默認(rèn)配置)。ISc28資訊網(wǎng)——每日最新資訊28at.com

異步刷盤是指Broker收到消息后先存儲(chǔ)到PageCache,然后立即通知Producer消息已存儲(chǔ)成功,可以繼續(xù)處理業(yè)務(wù)邏輯。此后,Broker會(huì)啟動(dòng)一個(gè)異步線程將消息持久化到磁盤。然而,如果Broker在持久化到磁盤之前發(fā)生故障,消息將會(huì)丟失。ISc28資訊網(wǎng)——每日最新資訊28at.com

## 刷盤策略配置flushDiskType = ASYNC_FLUSH

注意,寫(xiě)入PageCache后,應(yīng)用服務(wù)宕機(jī)消息不丟失,只有機(jī)器斷電或宕機(jī)會(huì)有少量消息丟失。ISc28資訊網(wǎng)——每日最新資訊28at.com

相比之下,同步刷盤的方式是在消息存儲(chǔ)到緩存后不立即通知Producer,而是等待消息被持久化到磁盤后再通知Producer。這種方式確保了消息不會(huì)丟失,但性能不如異步刷盤高。一般用于金融業(yè)務(wù)。ISc28資訊網(wǎng)——每日最新資訊28at.com

## 刷盤策略配置flushDiskType = SYNC_FLUSH

在選擇刷盤方式時(shí),需要根據(jù)業(yè)務(wù)場(chǎng)景進(jìn)行權(quán)衡。ISc28資訊網(wǎng)——每日最新資訊28at.com

主從同步機(jī)制

即使Broker采用同步刷盤策略,但如果刷盤完成后磁盤損壞,會(huì)導(dǎo)致所有存儲(chǔ)在磁盤上的消息丟失。ISc28資訊網(wǎng)——每日最新資訊28at.com

即使采用了主從復(fù)制,如果主節(jié)點(diǎn)在刷盤完成后還沒(méi)有來(lái)得及將數(shù)據(jù)同步給從節(jié)點(diǎn)就發(fā)生了磁盤故障,同樣會(huì)導(dǎo)致數(shù)據(jù)丟失。ISc28資訊網(wǎng)——每日最新資訊28at.com

所以我們可以配置同步機(jī)制,等待從節(jié)點(diǎn)復(fù)制完成主節(jié)點(diǎn)的消息后,才去通知Producer完成了消息存儲(chǔ)。ISc28資訊網(wǎng)——每日最新資訊28at.com

## 主從同步策略配置brokerRole=SYNC_MASTER

怎么提高存儲(chǔ)寫(xiě)入性能?

零拷貝技術(shù)

RocketMQ通過(guò)使用內(nèi)存映射文件(包括CommitLog、 ConsumeQueue等文件)來(lái)提高IO訪問(wèn)性能,也就是我們常說(shuō)的零拷貝技術(shù)。ISc28資訊網(wǎng)——每日最新資訊28at.com

Java在NIO包里,引入了sendFile(FileChannel類)和MMAP(MappedByteBuffer類)兩種實(shí)現(xiàn)方式的零拷貝技術(shù)。ISc28資訊網(wǎng)——每日最新資訊28at.com

主流的MQ都會(huì)使用零拷貝技術(shù),來(lái)提升IO:ISc28資訊網(wǎng)——每日最新資訊28at.com

  • Kafka:record 的讀和寫(xiě)都是基于 FileChannel。index 的讀寫(xiě)則基于 MMAP。
  • RocketMQ:讀取數(shù)據(jù)基于 MMAP,寫(xiě)入數(shù)據(jù)默認(rèn)使用 MMAP。但可以通過(guò)修改配置transientStorePoolEnable參數(shù)將其配置為使用 FileChannel。作者之所以這樣設(shè)計(jì),是為了避免 PageCache 的鎖競(jìng)爭(zhēng),并通過(guò)兩層架構(gòu)實(shí)現(xiàn)讀寫(xiě)分離。

緩沖池寫(xiě)入增強(qiáng)

在不開(kāi)啟RocketMQ的內(nèi)存映射增強(qiáng)方案時(shí),RocketMQ的讀和寫(xiě)都只會(huì)簡(jiǎn)單直接使用MMAP。ISc28資訊網(wǎng)——每日最新資訊28at.com

但是,MappedByteBuffer也存在一些缺陷:ISc28資訊網(wǎng)——每日最新資訊28at.com

  • 使用虛擬內(nèi)存,超過(guò)物理內(nèi)存會(huì)導(dǎo)致內(nèi)存交換,引起磁盤IO(可能非順序IO)速度較慢。
  • 虛擬內(nèi)存交換是受操作系統(tǒng)控制的,所以其他進(jìn)程活動(dòng)也會(huì)觸發(fā)RocketMQ內(nèi)存映射的交換。
  • 文件內(nèi)存映射寫(xiě)入PageCache時(shí)存在鎖競(jìng)爭(zhēng),直接寫(xiě)入內(nèi)存可避免競(jìng)爭(zhēng),在異步刷盤場(chǎng)景下速度更快。

為此,RocketMQ通過(guò)transientStorePoolEnable參數(shù)控制,對(duì)寫(xiě)入進(jìn)行了優(yōu)化。ISc28資訊網(wǎng)——每日最新資訊28at.com

如果開(kāi)啟了這個(gè)參數(shù),會(huì)將寫(xiě)入拆分為兩步, 寫(xiě)入緩沖區(qū) + 異步刷盤 的增強(qiáng)策略。ISc28資訊網(wǎng)——每日最新資訊28at.com

## 刷盤策略配置flushDiskType = ASYNC_FLUSH transientStorePoolEnable = true

MappedFile會(huì)提前申請(qǐng)一塊直接內(nèi)存用作緩沖區(qū),放棄使用mmap直接寫(xiě)文件。ISc28資訊網(wǎng)——每日最新資訊28at.com

數(shù)據(jù)先寫(xiě)入緩沖區(qū),然后異步線程每200ms(且臟數(shù)據(jù)達(dá)到16K,commitCommitLogLeastPages = 4)將緩沖區(qū)的數(shù)據(jù)commit寫(xiě)入FileChannel。ISc28資訊網(wǎng)——每日最新資訊28at.com

再喚醒定時(shí)服務(wù)(FlushRealTimeService類)將FileChannel里的數(shù)據(jù)持久化到磁盤。flush函數(shù)和commit一樣也可以傳入一個(gè)刷盤頁(yè)數(shù),當(dāng)臟頁(yè)數(shù)量達(dá)到16K時(shí)(flushLeastPages = 4),會(huì)進(jìn)行刷盤操作,調(diào)用FileChannel的force將內(nèi)存中的數(shù)據(jù)持久化到磁盤。ISc28資訊網(wǎng)——每日最新資訊28at.com

開(kāi)啟transientStorePoolEnable參數(shù)后,性能最好,但是相對(duì)來(lái)說(shuō)持久化最不可靠ISc28資訊網(wǎng)——每日最新資訊28at.com

如何處理消息的過(guò)期和刪除?

RocketMQ 使用存儲(chǔ)時(shí)長(zhǎng)作為消息存儲(chǔ)的依據(jù),即每個(gè)節(jié)點(diǎn)對(duì)外承諾消息的存儲(chǔ)時(shí)長(zhǎng)。在存儲(chǔ)時(shí)長(zhǎng)范圍內(nèi)的消息都會(huì)被保留,無(wú)論消息是否被消費(fèi);超過(guò)時(shí)長(zhǎng)限制的消息則會(huì)被清理掉。ISc28資訊網(wǎng)——每日最新資訊28at.com

需要注意的是,在RocketMQ中,消息存儲(chǔ)時(shí)長(zhǎng)并不能完整控制消息的實(shí)際保存時(shí)間。ISc28資訊網(wǎng)——每日最新資訊28at.com

因?yàn)橄⒋鎯?chǔ)仍然使用本地磁盤,本地磁盤空間不足時(shí),為保證服務(wù)穩(wěn)定性消息仍然會(huì)被強(qiáng)制清理,導(dǎo)致消息的實(shí)際保存時(shí)長(zhǎng)小于設(shè)置的保存時(shí)長(zhǎng)。ISc28資訊網(wǎng)——每日最新資訊28at.com

建議在存儲(chǔ)成本可控的前提下,盡可能延長(zhǎng)消息存儲(chǔ)時(shí)長(zhǎng)。延長(zhǎng)消息存儲(chǔ)時(shí)長(zhǎng),可以為緊急故障恢復(fù)、應(yīng)急問(wèn)題排查和消息回溯帶來(lái)更多的可操作空間。ISc28資訊網(wǎng)——每日最新資訊28at.com

總結(jié)

  • 存儲(chǔ)模型與存儲(chǔ)類型:commitLog文件存儲(chǔ)消息物理文件,consumeQueue文件夾存儲(chǔ)邏輯隊(duì)列索引
  • 如何保證存儲(chǔ)消息不丟失:同步&異步刷盤、主從消息同步
  • 如何提高寫(xiě)入性能:零拷貝技術(shù)MMAP和FileChannel、緩沖區(qū)增強(qiáng) + 異步刷盤 策略
  • 如何清理過(guò)期消息:按存儲(chǔ)時(shí)長(zhǎng)清理消息

本文鏈接:http://m.www897cc.com/showinfo-26-5709-0.html三分鐘白話RocketMQ系列—— 如何存儲(chǔ)消息

聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。郵件:2376512515@qq.com

上一篇: 編程的思辨力:程序員們解析技術(shù)背后的思想

下一篇: gRPC?vs?REST:創(chuàng)建API的方法比較

標(biāo)簽:
  • 熱門焦點(diǎn)
  • Redmi Pad評(píng)測(cè):紅米充滿野心的一次嘗試

    從Note系列到K系列,從藍(lán)牙耳機(jī)到筆記本電腦,紅米不知不覺(jué)之間也已經(jīng)形成了自己頗有競(jìng)爭(zhēng)力的產(chǎn)品體系,在中端和次旗艦市場(chǎng)上甚至要比小米新機(jī)的表現(xiàn)來(lái)得更好,正所謂“大丈夫生居
  • 6月iOS設(shè)備好評(píng)榜:第一蟬聯(lián)榜首近一年

    作為安兔兔各種榜單里變化最小的那個(gè),2023年6月的iOS好評(píng)榜和上個(gè)月相比沒(méi)有任何排名上的變化,僅僅是部分設(shè)備好評(píng)率的下降,長(zhǎng)年累月的用戶評(píng)價(jià)和逐漸退出市場(chǎng)的老款機(jī)器讓這
  • 把LangChain跑起來(lái)的三個(gè)方法

    使用LangChain開(kāi)發(fā)LLM應(yīng)用時(shí),需要機(jī)器進(jìn)行GLM部署,好多同學(xué)第一步就被勸退了,那么如何繞過(guò)這個(gè)步驟先學(xué)習(xí)LLM模型的應(yīng)用,對(duì)Langchain進(jìn)行快速上手?本片講解3個(gè)把LangChain跑起來(lái)
  • 讓我們一起聊聊文件的操作

    文件【1】文件是什么?文件是保存數(shù)據(jù)的地方,是數(shù)據(jù)源的一種,比如大家經(jīng)常使用的word文檔、txt文件、excel文件、jpg文件...都是文件。文件最主要的作用就是保存數(shù)據(jù),它既可以保
  • 拼多多APP上線本地生活入口,群雄逐鹿萬(wàn)億市場(chǎng)

    Tech星球(微信ID:tech618)文 | 陳橋輝 Tech星球獨(dú)家獲悉,拼多多在其APP內(nèi)上線了“本地生活”入口,位置較深,位于首頁(yè)的“充值中心”內(nèi),目前主要售賣美食相關(guān)的
  • 新電商三兄弟,“抖快紅”成團(tuán)!

    來(lái)源:價(jià)值研究所作 者:Hernanderz 隨著內(nèi)容電商的概念興起,抖音、快手、小紅書(shū)組成的“新電商三兄弟”成為業(yè)內(nèi)一股不可忽視的勢(shì)力,給阿里、京東、拼多多帶去了巨大壓
  • 攜眾多高端產(chǎn)品亮相ChinaJoy,小米帶來(lái)一場(chǎng)科技與人文的視聽(tīng)盛宴

    7月28日,全球數(shù)字娛樂(lè)領(lǐng)域最具知名度與影響力的年度盛會(huì)中國(guó)國(guó)際數(shù)碼互動(dòng)娛樂(lè)展覽會(huì)(簡(jiǎn)稱ChinaJoy)在上海新國(guó)際博覽中心盛大開(kāi)幕。作為全球領(lǐng)先的科
  • 支持aptX Lossless無(wú)損傳輸 iQOO TWS 1賽道版發(fā)布限時(shí)優(yōu)惠價(jià)369元

    2023年7月4日,“無(wú)損音質(zhì),聲動(dòng)人心”iQOO TWS 1正式發(fā)布,支持aptX Lossless無(wú)損傳輸,限時(shí)優(yōu)惠價(jià)369元。iQOO TWS 1耳機(jī)率先支持端到端aptX Lossless無(wú)
  • SN570 NVMe SSD固態(tài)硬盤 價(jià)格與性能兼具

    SN570 NVMe SSD固態(tài)硬盤是西部數(shù)據(jù)發(fā)布的最新一代WD Blue系列的固態(tài)硬盤,不僅閃存技術(shù)更為精進(jìn),性能也得到了進(jìn)一步的躍升。WD Blue SN570 NVMe SSD的包裝外
Top 日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不
国产精品视频yy9099| 欧美片网站免费| 午夜国产精品影院在线观看| 亚洲在线免费观看| 久久精品在线播放| 欧美精品久久久久久久久老牛影院 | 欧美一区二区精美| 久久成人精品无人区| 欧美11—12娇小xxxx| 欧美日韩一区二区三| 国产婷婷色一区二区三区| 亚洲国产成人在线| 亚洲永久免费精品| 麻豆久久久9性大片| 欧美日韩在线免费观看| 国语自产精品视频在线看一大j8| 亚洲乱码久久| 久久精品免费| 欧美性一二三区| 在线不卡a资源高清| 亚洲视频一区二区| 美女久久网站| 国产欧美日韩一区二区三区| 亚洲精品色图| 久久激情五月婷婷| 国产精品白丝jk黑袜喷水| 亚洲大片在线观看| 性色av一区二区怡红| 欧美啪啪一区| 1000部精品久久久久久久久| 午夜久久tv| 欧美日韩三级| 亚洲国产小视频| 久久精品国产精品亚洲| 欧美体内she精视频在线观看| 在线精品亚洲一区二区| 午夜精品久久久久久久99水蜜桃| 欧美精品18+| 尤物精品国产第一福利三区 | 一区二区三区精品久久久| 久久亚洲综合| 国产日韩一区二区三区在线播放 | 性做久久久久久免费观看欧美 | 国内自拍亚洲| 亚洲欧美在线观看| 欧美日韩视频免费播放| 亚洲国产欧美精品| 久久久久久高潮国产精品视| 国产精品亚洲成人| 一区二区三区蜜桃网| 欧美成人精品h版在线观看| 国产综合在线看| 欧美一区二区三区喷汁尤物| 国产精品久久国产愉拍| 亚洲美女在线视频| 女女同性精品视频| 在线观看成人av电影| 欧美在线视频一区二区三区| 国产精品亚洲网站| 亚洲自拍偷拍视频| 欧美三区美女| 夜夜夜精品看看| 欧美精品久久天天躁| 亚洲激情视频在线| 欧美a级一区二区| 亚洲二区免费| 免费av成人在线| 亚洲成人自拍视频| 猫咪成人在线观看| 1024成人| 欧美不卡视频| 亚洲日本成人女熟在线观看| 欧美福利一区二区三区| 亚洲国产精品第一区二区| 巨乳诱惑日韩免费av| 在线播放精品| 免费成人毛片| 亚洲欧洲日本国产| 欧美精品成人在线| 99日韩精品| 欧美性猛交xxxx乱大交退制版| 在线视频你懂得一区二区三区| 欧美午夜寂寞影院| 亚洲免费在线精品一区| 国产精品一区久久久久| 欧美一级黄色网| 国内精品视频666| 久久亚洲风情| 亚洲啪啪91| 欧美日韩免费一区二区三区视频| 宅男66日本亚洲欧美视频| 国产精品v欧美精品∨日韩| 亚洲一区二区三区色| 国产九九精品视频| 久久国产一区二区三区| 一区二区亚洲| 欧美精品日韩一区| 亚洲午夜免费福利视频| 国产欧美日韩麻豆91| 久久久国产视频91| 最近看过的日韩成人| 欧美日韩伊人| 欧美一区成人| 亚洲第一在线综合网站| 欧美日韩国产精品一区二区亚洲| 亚洲一区二区欧美日韩| 国产一区清纯| 欧美成人在线免费视频| 宅男噜噜噜66国产日韩在线观看| 国产麻豆精品theporn| 久久亚洲精品中文字幕冲田杏梨| 亚洲精品免费一二三区| 国产精品久久久久久久浪潮网站 | 欧美精品一区二| 亚洲在线成人| 影音先锋在线一区| 欧美日韩一区视频| 久久精品夜色噜噜亚洲a∨| 亚洲精品乱码久久久久久黑人| 国产精品mv在线观看| 久久狠狠亚洲综合| 亚洲精品免费在线播放| 国产麻豆91精品| 欧美暴力喷水在线| 亚洲一区二区三区在线观看视频| 国产自产女人91一区在线观看| 欧美激情在线| 欧美一区二区三区视频免费| 亚洲黄色大片| 国产精品一二一区| 欧美不卡高清| 欧美一区国产二区| 亚洲狼人精品一区二区三区| 国产日韩精品一区| 欧美人与性动交α欧美精品济南到| 欧美亚洲在线播放| 亚洲狼人综合| 一区二区在线观看av| 国产精品国产三级国产专播精品人| 亚洲高清免费在线| 欧美一区二区三区四区在线观看地址| 激情成人在线视频| 欧美日韩国产一中文字不卡| 欧美一区二区久久久| 亚洲级视频在线观看免费1级| 国产精品美女久久久久av超清| 美女国产一区| 欧美亚洲系列| 日韩网站在线观看| 精品电影一区| 国产精品网站在线观看| 欧美黄在线观看| 欧美在线免费看| 99视频在线观看一区三区| 国内久久婷婷综合| 国产精品久久久99| 欧美国产国产综合| 久久成人精品无人区| 亚洲手机成人高清视频| 91久久国产精品91久久性色| 国产一区二区欧美日韩| 国产精品久久激情| 欧美日韩日本视频| 免费精品99久久国产综合精品| 欧美一区二区三区视频在线 | 99视频精品在线| 亚洲国产精品久久久久婷婷884 | 欧美久久一级| 久久亚洲图片| 欧美综合国产| 午夜在线不卡| 亚洲宅男天堂在线观看无病毒| 99国产精品久久久| 91久久精品国产91久久性色| 激情五月婷婷综合| 国产亚洲精品久久久| 国产精品普通话对白| 欧美婷婷六月丁香综合色| 欧美乱大交xxxxx| 欧美国产大片| 欧美国产三级| 欧美成人官网二区| 欧美xx69| 欧美激情精品| 欧美精品18+| 欧美激情91| 欧美国产日韩一区二区三区| 欧美福利专区| 欧美黄色免费| 欧美日韩p片| 欧美日韩三级视频| 欧美天天视频| 国产精品黄视频| 国产精品久久久一区二区三区| 欧美午夜精品久久久久久浪潮| 欧美日韩免费高清一区色橹橹| 欧美日韩国产不卡在线看| 欧美日韩国产首页| 欧美日一区二区三区在线观看国产免| 欧美日韩国产精品一区二区亚洲| 欧美日韩1080p| 欧美视频日韩视频| 国产精品美女久久久久久久| 国产精品系列在线|