1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        一口氣說(shuō)出 6 種實(shí)現(xiàn)延時(shí)消息的方案

        共 4732字,需瀏覽 10分鐘

         ·

        2022-05-30 18:33

        點(diǎn)擊下方“IT牧場(chǎng)”,選擇“設(shè)為星標(biāo)”

        來(lái)源:juejin.cn/post/7052894117105238053

        前言

        延時(shí)消息(定時(shí)消息)指的在分布式異步消息場(chǎng)景下,生產(chǎn)端發(fā)送一條消息,希望在指定延時(shí)或者指定時(shí)間點(diǎn)被消費(fèi)端消費(fèi)到,而不是立刻被消費(fèi)。

        延時(shí)消息適用的業(yè)務(wù)場(chǎng)景非常的廣泛,在分布式系統(tǒng)環(huán)境下,延時(shí)消息的功能一般會(huì)在下沉到中間件層,通常是 MQ 中內(nèi)置這個(gè)功能或者內(nèi)聚成一個(gè)公共基礎(chǔ)服務(wù)。

        本文旨在探討常見(jiàn)延時(shí)消息的實(shí)現(xiàn)方案以及方案設(shè)計(jì)的優(yōu)缺點(diǎn)。

        實(shí)現(xiàn)方案

        1.基于外部存儲(chǔ)實(shí)現(xiàn)的方案

        這里討論的外部存儲(chǔ)指的是在 MQ 本身自帶的存儲(chǔ)以外又引入的其他的存儲(chǔ)系統(tǒng)。

        基于外部存儲(chǔ)的方案本質(zhì)上都是一個(gè)套路,將 MQ 和 延時(shí)模塊 區(qū)分開(kāi)來(lái),延時(shí)消息模塊是一個(gè)獨(dú)立的服務(wù)/進(jìn)程。延時(shí)消息先保留到其他存儲(chǔ)介質(zhì)中,然后在消息到期時(shí)再投遞到 MQ。

        當(dāng)然還有一些細(xì)節(jié)性的設(shè)計(jì),比如消息進(jìn)入的延時(shí)消息模塊時(shí)已經(jīng)到期則直接投遞這類(lèi)的邏輯,這里不展開(kāi)討論。

        圖片

        下述方案不同的是,采用了不同的存儲(chǔ)系統(tǒng)。

        基于 數(shù)據(jù)庫(kù)(如MySQL)

        基于關(guān)系型數(shù)據(jù)庫(kù)(如MySQL)延時(shí)消息表的方式來(lái)實(shí)現(xiàn)。

        CREATE?TABLE?`delay_msg`?(
        ??`id`?bigint?unsigned?NOT?NULL?AUTO_INCREMENT,
        ??`delivery_time`?DATETIME?NOT?NULL?COMMENT?'投遞時(shí)間',
        ??`payloads`?blob?COMMENT?'消息內(nèi)容',
        ??PRIMARY?KEY?(`id`),
        ??KEY?`time_index`?(`delivery_time`)
        )

        通過(guò)定時(shí)線(xiàn)程定時(shí)掃描到期的消息,然后進(jìn)行投遞。定時(shí)線(xiàn)程的掃描間隔理論上就是你延時(shí)消息的最小時(shí)間精度。

        優(yōu)點(diǎn):

        • 實(shí)現(xiàn)簡(jiǎn)單;

        缺點(diǎn):

        • B+Tree索引不適合消息場(chǎng)景的大量寫(xiě)入;

        基于 RocksDB

        RocksDB 的方案其實(shí)就是在上述方案上選擇了比較合適的存儲(chǔ)介質(zhì)。

        RocksDB 在筆者之前的文章中有聊過(guò),LSM 樹(shù)更適合大量寫(xiě)入的場(chǎng)景。滴滴開(kāi)源的DDMQ中的延時(shí)消息模塊 Chronos 就是采用了這個(gè)方案。

        DDMQ 這個(gè)項(xiàng)目簡(jiǎn)單來(lái)說(shuō)就是在 RocketMQ 外面加了一層統(tǒng)一的代理層,在這個(gè)代理層就可以做一些功能維度的擴(kuò)展。延時(shí)消息的邏輯就是代理層實(shí)現(xiàn)了對(duì)延時(shí)消息的轉(zhuǎn)發(fā),如果是延時(shí)消息,會(huì)先投遞到 RocketMQ 中 Chronos 專(zhuān)用的 topic 中。

        延時(shí)消息模塊 Chronos 消費(fèi)得到延時(shí)消息轉(zhuǎn)儲(chǔ)到 RocksDB,后面就是類(lèi)似的邏輯了,定時(shí)掃描到期的消息,然后往 RocketMQ 中投遞。

        圖片

        這個(gè)方案老實(shí)說(shuō)是一個(gè)比較重的方案。因?yàn)榛?RocksDB 來(lái)實(shí)現(xiàn)的話(huà),從數(shù)據(jù)可用性的角度考慮,你還需要自己去處理多副本的數(shù)據(jù)同步等邏輯。

        優(yōu)點(diǎn):

        • RocksDB LSM 樹(shù)很適合消息場(chǎng)景的大量寫(xiě)入;

        缺點(diǎn):

        • 實(shí)現(xiàn)方案較重,如果你采用這個(gè)方案,需要自己實(shí)現(xiàn) RocksDB 的數(shù)據(jù)容災(zāi)邏輯;

        基于 Redis

        再來(lái)聊聊 Redis 的方案。下面放一個(gè)比較完善的方案。

        圖片
        • Messages Pool 所有的延時(shí)消息存放,結(jié)構(gòu)為KV結(jié)構(gòu),key為消息ID,value為一個(gè)具體的message(這里選擇Redis Hash結(jié)構(gòu)主要是因?yàn)閔ash結(jié)構(gòu)能存儲(chǔ)較大的數(shù)據(jù)量,數(shù)據(jù)較多時(shí)候會(huì)進(jìn)行漸進(jìn)式rehash擴(kuò)容,并且對(duì)于HSET和HGET命令來(lái)說(shuō)時(shí)間復(fù)雜度都是O(1))
        • Delayed Queue是16個(gè)有序隊(duì)列(隊(duì)列支持水平擴(kuò)展),結(jié)構(gòu)為ZSET,value 為 messages pool中消息ID,score為過(guò)期時(shí)間(分為多個(gè)隊(duì)列是為了提高掃描的速度)
        • Worker 代表處理線(xiàn)程,通過(guò)定時(shí)任務(wù)掃描 Delayed Queue 中到期的消息

        這個(gè)方案選用 Redis 存儲(chǔ)在我看來(lái)有幾點(diǎn)考慮,

        • Redis ZSET 很適合實(shí)現(xiàn)延時(shí)隊(duì)列
        • 性能問(wèn)題,雖然 ZSET 插入是一個(gè) O(logn) 的操作,但是Redis 基于內(nèi)存操作,并且內(nèi)部做了很多性能方面的優(yōu)化。

        但是這個(gè)方案其實(shí)也有需要斟酌的地方,上述方案通過(guò)創(chuàng)建多個(gè) Delayed Queue 來(lái)滿(mǎn)足對(duì)于并發(fā)性能的要求,但這也帶來(lái)了多個(gè) Delayed Queue 如何在多個(gè)節(jié)點(diǎn)情況下均勻分配,并且很可能出現(xiàn)到期消息并發(fā)重復(fù)處理的情況,是否要引入分布式鎖之類(lèi)的并發(fā)控制設(shè)計(jì)?

        在量不大的場(chǎng)景下,上述方案的架構(gòu)其實(shí)可以蛻化成主從架構(gòu),只允許主節(jié)點(diǎn)來(lái)處理任務(wù),從節(jié)點(diǎn)只做容災(zāi)備份。實(shí)現(xiàn)難度更低更可控。

        定時(shí)線(xiàn)程檢查的缺陷與改進(jìn)

        上述幾個(gè)方案中,都通過(guò)線(xiàn)程定時(shí)掃描的方案來(lái)獲取到期的消息。

        定時(shí)線(xiàn)程的方案在消息量較少的時(shí)候,會(huì)浪費(fèi)資源,在消息量非常多的時(shí)候,又會(huì)出現(xiàn)因?yàn)閽呙栝g隔設(shè)置不合理導(dǎo)致延時(shí)時(shí)間不準(zhǔn)確的問(wèn)題??梢越柚?JDK Timer 類(lèi)中的思想,通過(guò)?wait-notify?來(lái)節(jié)省 CPU 資源。

        獲取中最近的延時(shí)消息,然后wait(執(zhí)行時(shí)間-當(dāng)前時(shí)間),這樣就不需要浪費(fèi)資源到達(dá)時(shí)間時(shí)會(huì)自動(dòng)響應(yīng),如果有新的消息進(jìn)入,并且比我們等待的消息還要小,那么直接notify喚醒,重新獲取這個(gè)更小的消息,然后又wait,如此循環(huán)。

        2. 開(kāi)源 MQ 中的實(shí)現(xiàn)方案

        再來(lái)講講目前自帶延時(shí)消息功能的開(kāi)源MQ,它們是如何實(shí)現(xiàn)的

        RocketMQ

        RocketMQ 開(kāi)源版本支持延時(shí)消息,但是只支持 18 個(gè) Level 的延時(shí),并不支持任意時(shí)間。只不過(guò)這個(gè) Level 在 RocketMQ 中可以自定義的,所幸來(lái)說(shuō)對(duì)普通業(yè)務(wù)算是夠用的。默認(rèn)值為“1s 5s 10s 30s 1m 2m 3m 4m 5m 6m 7m 8m 9m 10m 20m 30m 1h 2h”,18個(gè)level。

        通俗的講,設(shè)定了延時(shí) Level 的消息會(huì)被暫存在名為SCHEDULE_TOPIC_XXXX的topic中,并根據(jù) level 存入特定的queue,queueId = delayTimeLevel – 1即一個(gè)queue只存相同延時(shí)的消息,保證具有相同發(fā)送延時(shí)的消息能夠順序消費(fèi)。?broker會(huì)調(diào)度地消費(fèi)SCHEDULE_TOPIC_XXXX,將消息寫(xiě)入真實(shí)的topic。

        下面是整個(gè)實(shí)現(xiàn)方案的示意圖,紅色代表投遞延時(shí)消息,紫色代表定時(shí)調(diào)度到期的延時(shí)消息:

        圖片

        優(yōu)點(diǎn):

        • Level 數(shù)固定,每個(gè) Level 有自己的定時(shí)器,開(kāi)銷(xiāo)不大
        • 將 Level 相同的消息放入到同一個(gè) Queue 中,保證了同一 Level 消息的順序性;不同 Level 放到不同的 Queue 中,保證了投遞的時(shí)間準(zhǔn)確性;
        • 通過(guò)只支持固定的Level,將不同延時(shí)消息的排序變成了固定Level Topic 的追加寫(xiě)操作

        缺點(diǎn):

        • Level 配置的修改代價(jià)太大,固定 Level 不靈活
        • CommitLog 會(huì)因?yàn)檠訒r(shí)消息的存在變得很大

        Pulsar

        Pulsar 支持“任意時(shí)間”的延時(shí)消息,但實(shí)現(xiàn)方式和 RocketMQ 不同。

        通俗的講,Pulsar 的延時(shí)消息會(huì)直接進(jìn)入到客戶(hù)端發(fā)送指定的 Topic 中,然后在堆外內(nèi)存中創(chuàng)建一個(gè)基于時(shí)間的優(yōu)先級(jí)隊(duì)列,來(lái)維護(hù)延時(shí)消息的索引信息。延時(shí)時(shí)間最短的會(huì)放在頭上,時(shí)間越長(zhǎng)越靠后。在進(jìn)行消費(fèi)邏輯時(shí)候,再判斷是否有到期需要投遞的消息,如果有就從隊(duì)列里面拿出,根據(jù)延時(shí)消息的索引查詢(xún)到對(duì)應(yīng)的消息進(jìn)行消費(fèi)。

        如果節(jié)點(diǎn)崩潰,在這個(gè) broker 節(jié)點(diǎn)上的 Topics 會(huì)轉(zhuǎn)移到其他可用的 broker 上,上面提到的這個(gè)優(yōu)先級(jí)隊(duì)列也會(huì)被重建。

        下面是 Pulsar 公眾號(hào)中對(duì)于 Pulsar 延時(shí)消息的示意圖。

        圖片

        乍一看會(huì)覺(jué)得這個(gè)方案其實(shí)非常簡(jiǎn)單,還能支持任意時(shí)間的消息。但是這個(gè)方案有幾個(gè)比較大的問(wèn)題

        • 內(nèi)存開(kāi)銷(xiāo):?維護(hù)延時(shí)消息索引的隊(duì)列是放在堆外內(nèi)存中的,并且這個(gè)隊(duì)列是以訂閱組(Kafka中的消費(fèi)組)為維度的,比如你這個(gè) Topic 有 N 個(gè)訂閱組,那么如果你這個(gè) Topic 使用了延時(shí)消息,就會(huì)創(chuàng)建 N 個(gè) 隊(duì)列;并且隨著延時(shí)消息的增多,時(shí)間跨度的增加,每個(gè)隊(duì)列的內(nèi)存占用也會(huì)上升。(是的,在這個(gè)方案下,支持任意的延時(shí)消息反而有可能讓這個(gè)缺陷更嚴(yán)重)
        • 故障轉(zhuǎn)移之后延時(shí)消息索引隊(duì)列的重建時(shí)間開(kāi)銷(xiāo):?對(duì)于跨度時(shí)間長(zhǎng)的大規(guī)模延時(shí)消息,重建時(shí)間可能會(huì)到小時(shí)級(jí)別。(摘自 Pulsar 官方公眾號(hào)文章)
        • 存儲(chǔ)開(kāi)銷(xiāo):?延時(shí)消息的時(shí)間跨度會(huì)影響到 Pulsar 中已經(jīng)消費(fèi)的消息數(shù)據(jù)的空間回收。打個(gè)比方,你的 Topic 如果業(yè)務(wù)上要求支持一個(gè)月跨度的延時(shí)消息,然后你發(fā)了一個(gè)延時(shí)一個(gè)月的消息,那么你這個(gè) Topic 中底層的存儲(chǔ)就會(huì)保留整整一個(gè)月的消息數(shù)據(jù),即使這一個(gè)月中99%的正常消息都已經(jīng)消費(fèi)了。

        對(duì)于前面第一點(diǎn)和第二點(diǎn)的問(wèn)題,社區(qū)也設(shè)計(jì)了解決方案,在隊(duì)列中加入時(shí)間分區(qū),Broker 只加載當(dāng)前較近的時(shí)間片的隊(duì)列到內(nèi)存,其余時(shí)間片分區(qū)持久化磁盤(pán),示例圖如下圖所示:

        圖片

        但是目前,這個(gè)方案并沒(méi)有對(duì)應(yīng)的實(shí)現(xiàn)版本??梢栽趯?shí)際使用時(shí),規(guī)定只能使用較小時(shí)間跨度的延時(shí)消息,來(lái)減少前兩點(diǎn)缺陷的影響。另外,因?yàn)閮?nèi)存中存的并不是延時(shí)消息的全量數(shù)據(jù),只是索引,所以可能要積壓上百萬(wàn)條延時(shí)消息才可能對(duì)內(nèi)存造成顯著影響,從這個(gè)角度來(lái)看,官方暫時(shí)沒(méi)有完善前兩個(gè)問(wèn)題也可以理解了。

        至于第三個(gè)問(wèn)題,估計(jì)是比較難解決的,需要在數(shù)據(jù)存儲(chǔ)層將延時(shí)消息和正常消息區(qū)分開(kāi)來(lái),單獨(dú)存儲(chǔ)延時(shí)消息。

        QMQ

        QMQ提供任意時(shí)間的延時(shí)/定時(shí)消息,你可以指定消息在未來(lái)兩年內(nèi)(可配置)任意時(shí)間內(nèi)投遞。

        把 QMQ 放到最后,是因?yàn)槲矣X(jué)得 QMQ 是目前開(kāi)源 MQ 中延時(shí)消息設(shè)計(jì)最合理的。里面設(shè)計(jì)的核心簡(jiǎn)單來(lái)說(shuō)就是 多級(jí)時(shí)間輪 + 延時(shí)加載 + 延時(shí)消息單獨(dú)磁盤(pán)存儲(chǔ)。

        QMQ的延時(shí)/定時(shí)消息使用的是兩層 hash wheel 來(lái)實(shí)現(xiàn)的。第一層位于磁盤(pán)上,每個(gè)小時(shí)為一個(gè)刻度(默認(rèn)為一個(gè)小時(shí)一個(gè)刻度,可以根據(jù)實(shí)際情況在配置里進(jìn)行調(diào)整),每個(gè)刻度會(huì)生成一個(gè)日志文件(schedule log),因?yàn)镼MQ支持兩年內(nèi)的延時(shí)消息(默認(rèn)支持兩年內(nèi),可以進(jìn)行配置修改),則最多會(huì)生成?2 * 366 * 24 = 17568?個(gè)文件(如果需要支持的最大延時(shí)時(shí)間更短,則生成的文件更少)。

        第二層在內(nèi)存中,當(dāng)消息的投遞時(shí)間即將到來(lái)的時(shí)候,會(huì)將這個(gè)小時(shí)的消息索引(索引包括消息在schedule log中的offset和size)從磁盤(pán)文件加載到內(nèi)存中的hash wheel上,內(nèi)存中的hash wheel則是以500ms為一個(gè)刻度。

        圖片

        總結(jié)一下設(shè)計(jì)上的亮點(diǎn):

        • 時(shí)間輪算法適合延時(shí)/定時(shí)消息的場(chǎng)景,省去延時(shí)消息的排序,插入刪除操作都是 O(1) 的時(shí)間復(fù)雜度;
        • 通過(guò)多級(jí)時(shí)間輪設(shè)計(jì),支持了超大時(shí)間跨度的延時(shí)消息;
        • 通過(guò)延時(shí)加載,內(nèi)存中只會(huì)有最近要消費(fèi)的消息,更久的延時(shí)消息會(huì)被存儲(chǔ)在磁盤(pán)中,對(duì)內(nèi)存友好;
        • 延時(shí)消息單獨(dú)存儲(chǔ)(schedule log),不會(huì)影響到正常消息的空間回收;

        總結(jié)

        本文匯總了目前業(yè)界常見(jiàn)的延時(shí)消息方案,并且討論了各個(gè)方案的優(yōu)缺點(diǎn)。希望對(duì)讀者有所啟發(fā)。

        干貨分享

        最近將個(gè)人學(xué)習(xí)筆記整理成冊(cè),使用PDF分享。關(guān)注我,回復(fù)如下代碼,即可獲得百度盤(pán)地址,無(wú)套路領(lǐng)??!

        ?001:《Java并發(fā)與高并發(fā)解決方案》學(xué)習(xí)筆記;?002:《深入JVM內(nèi)核——原理、診斷與優(yōu)化》學(xué)習(xí)筆記;?003:《Java面試寶典》?004:《Docker開(kāi)源書(shū)》?005:《Kubernetes開(kāi)源書(shū)》?006:《DDD速成(領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)速成)》?007:全部?008:加技術(shù)群討論

        加個(gè)關(guān)注不迷路

        喜歡就點(diǎn)個(gè)"在看"唄^_^

        瀏覽 37
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評(píng)論
        圖片
        表情
        推薦
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            婷久久| 欧美色综合| 日韩色网站| 国产成人无码AⅤ片免费播放| 国产免费av在线| 欧美18禁| 996热久久| 国产激情在线| 无码精品ThePorn| 久久精品免费电影| 国产黄色在线看| 超碰在线日韩| i美女福利视频| 激情六月天| 成人特级毛片全部免费播放| 在线观看免费A片| 潮喷在线观看| www.久热| 成人免费啪啪视频| 人人射人人摸| 国产乱国产乱老熟300视频 | 人人射人人摸| 亚洲无码人妻一区| 国产精品18进进出出17c| 91成人视频在线观看| 最近最好的2019中文| 五月丁香婷婷在线| 成人毛片100免费观看| 精品国产重口乱子伦| 九九色热| 人人操狠狠操| 国产精品欧美日韩| 亚洲女人天堂AV| 翔田千里无码流出两部| 日本不卡视频| 日韩一区二区在线观看| 国产精品婷婷| 黄色小视频免费看| 欧一美一婬一伦一区二区三区黑人 | 大香蕉精品欧美色综合2025| www久久| 日韩视频第一页| 西西特级无码444www| www.亚洲精品| 一区二区三区电影| 99福利视频| 天天爽天天爽成人A片影院| 无码欧美成人AAAA三区在线| 亚洲AⅤ无码一区二区波多野按摩| 午夜无码精品| 91视频网站入口| 最好看2019中文在线播放电影| A级黄色网| 欧美三级长视频| 热逼视频| 午夜天堂| 影音先锋aV成人无码电影| 男人的天堂2019| 99久久精品国产精品有折扣吗| 人妻无码高清| 国产精品无码av| 久草手机视频在线观看| 奇米影视77777| AV色图| 熟女人妻一区二区| 青青草原成人视频| 青娱乐免费视频| 欧美午夜爱爱| 国产精品天天| 黄色a级毛片| 青青色综合| 这里精品| 韩国无码一区二区| 日本人妻在线观看| 亚洲成人午夜电影| 国产黄片一区二区三区| 人妻无码人妻| 国产亲子乱婬一级A片借种| A片黄色视频| 国产污视频在线观看| 成人精品一区日本无码网站suv/ | 日屄视频在线观看| 日韩一级一级| 青青av| 日本色综合| www.欧美| a视频在线观看| 亚洲天堂免费视频| 9久热| 日韩不卡在线| 女人18特级毛片。| 丰满人妻一区二区三区视频在线不卡 | 久久久久久91| 爆乳一区二区三区| 97精品人妻一区二区三区在线| 99久久婷婷国产综合精品漫 | 亚洲AV毛片| 刘玥91精一区二区三区| 黄色成人在线视频| 免费一级电影| 午夜国产码网站码| 国产激情视频在线观看| 国产精品操逼| 国产情趣网站| 草比网| 欧美性爱一级视频| 69视频在线观看免费| 久久久久久99| 亚洲91无码精品一区在线播放| 亚洲无码十八禁| 豆花视频无码| 婷婷成人视频| 无码人妻熟妇| 婷婷狠狠操| 最近中文字幕在线中文字幕7| 欧美AA片| 天天干天天色天天日| www.超碰在线| 野花AV| 韩国无码精品| 亚洲无码免费视频| 亚洲乱码国产乱码精品天美传媒| 国产高清无码免费视频| 91艹艹| 人人操人人妻人人看| 成人A片网| 69视频在线播放| 亚洲一区二区三区在线视频| 免费观看一区二区三区| 婷婷色色婷婷| 无码黄色片| 泄火熟妇2-ThePorn| 久青草视频| 精品91美女| 操日视频| 2022天天干| 亚洲午夜无码久久久| 午夜综合网| 国产精品视频网站| 777免费视频| 波多野成人无码精品69| 大香蕉毛片| 99热9| 俺来俺去www色婷婷| 成人免费一级视频| 四虎影成人精品A片| 亚洲AV黄片| 免费看黄色一级片| 欧美黑吊大战白妞欧美大片| 逼特逼在线观看| 成人国产精品秘在线看| 亚洲A网站| 在线中文字幕第一页| 久草com| 欧美囗交大荫蒂免费| 北条麻妃av在线播放| 中文字幕人妻互换av久久| 一级A片免费观看| 国产精品自拍视频| 天天摸天天添| 高清不卡一区二区| 欧美成人无码一区二区三区| 无套免费视频欧美| 亚洲无aV在线中文字幕| 青春草视频在线观看| 抽插视频欧美| 黄色网页免费观看| 亚洲日韩精品无码| 国产一级片在线| 欧美日韩中文字幕| 欧美日韩A片| 国产香蕉视屏| 激情开心站| 在线观看免费一区| 婷婷五月六月丁香| 婷婷丁香激情五月天| 亚洲视频无码| 天天干天天在线观看| 丁香五月综合啪啪| 国产丝袜av| 亚洲欧美日韩综合| 黄色成人18| 国产成人片色情AAAA片| 色噜噜狠狠一区二区三区300部| 国产人体视频| 四川婬妇BBw搡BBBB搡| 91人妻精| 91人妻人人澡人人爽人人精品| 亚洲日韩网站在线观看| 久久精品女同亚洲女同13| 操日本少妇| 国产黄片网站| 亚洲色情网站| 91N视频| 亚洲欧美在线视频观看| 日韩欧美V| 中文字幕在线观看AV| 大香蕉啪啪啪| 国产欧美综合一区| 亚洲无码激情视频| 超碰人人人人人| 麻豆视频在线观看| 人人草人人搞| 国产秘精品区二区三区日本| 国产传媒_色哟哟| 五十路av| 特黄视频| 凸凹翔田千里无码| 亚洲aⅤ| 夜色福利视频| 女生自慰在线观看| 伊人成人网视频| 久久九九热| 欧美l∨视| 操逼小电影| 一级视频免费观看| 色哟哟在线观看| 色色色777| 国产你懂的| 日韩精品成人在线视频| 精品中文字幕在线| 国产一级a毛一级a做免费高清视频| 日韩一级片在线观看| 国产在线不卡| 国产成人性| 亚洲丁香五月天| 91丨九色丨蝌蚪丨丝袜| 97超碰人人操| 最新免费毛片| 人人看,人人摸| 欧美一级特黄A片免费看| 蜜臀久久99精品久久久久久酒店| 色图插插插| 偷拍久久久| 国产激情视频在线播放| 高清无码一区| 欧美日韩色视频| 成人大片在线观看| 免费小视频| 日本一区二区三区四区| 中文无码观看| 四川乱子伦95视频国产| 五月天青青草超碰免费公开在线观看 | 日日夜夜爱| 国产性猛交╳XXX乱大交| av在线资源网| 国产又爽又黄免费视频免费观看 | 怡红院成人av| 免费V片| 欧美特级AAA| 人人爽爽| 免费三级网站| 亚洲任你操超碰在线| 台湾中文字幕网| 拍真实国产伦偷精品| 97国产| 中文字幕在线视频无码| 蜜桃毛片| 国产无遮挡又黄又爽又色学生软件 | 精品无码免费| 懂色一区二区三区免费| 超碰在线天天| AV无码免费观看| 青青草成人免费在线视频| AV天堂中文字幕| 黄色二区| 超碰天天干天天摸| 综合色色婷婷| 午夜三级福利| 污污污污污www网站免费民国| 日韩高清区| 91成人免费| 亚洲欧美国产另类| 蜜桃AV无码一区二区三区| 国产欧美一区二区三区在线看蜜臀 | 亚洲福利在线观看| 激情三区| 性V天堂| 国产精品久久久无码专区| 2025中文字幕在线| 中文字幕在线观看日韩| 久久国产偷拍| 青青草成人网站| 亚洲四区| 开心黄色网| 色色色五月| 日本久久高清| 精品中文字幕在线| 欧美精品久久久久久| 人人澡av| 奇米狠狠操| 92午夜福利天堂视频2019| 色老板网址| 国产A片视频| 女人一区二区| 北条麻妃在线中文字幕| 黄片免费观看| 免费黄色福利视频| 亚洲第一色网站| 亚洲午夜影院在线| 69pao| 蜜桃精品一区二区三区美女| 日本无码网站| 日韩一级一级| 西欧超碰在线| 亚洲久草| 亚洲精品鲁一鲁一区二区三区| 中文在线字幕免费观| 成人视频网站18| 人人夜夜人人| 日韩av电影在线观看| 久久久精品少妇| 欧美黄片免费在线观看| 欧美一区二区三区激情| 天天日狠狠操| 亚洲狼人| 加勒比人妻| 亚洲性网| 亚洲精品白浆高清久久久久久| 国产成人无码区免费AV片在线| 精品国产自| AV在线一区二区三区| 一区二区视频免费| 色噜噜人妻av中文字幕| 国产免费视频| 国产精品一区二区免费| 高清av在线| 无码三级在线播放| 国产精品一区二| 成人伊人AV| 东京热在线视频观看| 午夜无码鲁丝片午夜精品一区二区| 日本一区不卡| 久草福利| 国产videos| 最好看的2019中文在线大全电影| 波多野结衣视频免费在线观看 | 丁香五月社区| 爱爱高清视频| 羞羞视频com.入口| 3d动漫一区二区| 在线看的av| 黄色操屄视频| 亚洲视频中文字母| 成人日皮视频| 综合久久99| 国产精品无码激情视频| 无码中文字幕在线视频| 国产午夜男女性爱| 自拍偷拍精品视频| 2025AV中文字幕| 欧美日日干| 国产在线欧美在线| 三上悠亚无码破解69XXX| 亚洲天堂本一| 国产中文在线视频| 男人av网站| 久久成人三级片| 私人玩物』黑絲OL尤物| 91视频在线免费看| www.色欲av| 国产无套免费网站69| 日韩aaaa| 亚洲最新中文字幕| 成人黄色视频网| AA黄色片| 岛国无码AV在线观看| 黄色成人视频| 97资源在线视频| 操逼天堂| 亚洲天堂在线观看免费视频| 福利二区| 2021国产视频| 美女黄色视频永费在线观看网站 | 少妇搡BBBB搡BBB搡毛片| 亚洲成人黄色网| 欧美三级不卡| 国产va在线观看| 天天干天天干天天操| 亚洲AV成人无码精在线| 在线视频一区二区| 亚洲一区无码| 亚洲无码在线播放视频| 在线免费观看国产| 免费在线观看a片| 天天干天天色天天射| 婷婷五月天无码| 亚洲第一成网站| 亚洲一级Av无码毛片久久精品| 亚洲AV无码久久寂寞少妇多毛| 97国产在线| 色婷婷精品视频| 欧美成人aaa| 妻子互换被高潮了三次| 免费一级A| 日韩精品人妻中文字幕| 一级黄色生活片| 国产视频久久| 91久久免费视频| 操逼大毛片| 日韩一级电影在线观看| 日韩精品视频免费| 午夜伊人| 男人的天堂在线播放| 国产AV无遮挡| 无码四区| 国产精品一区二区在线播放| 亚洲中文字幕第一页| 91人妻人人澡人人爽精品| 亚洲国产97| www.日韩欧美| 国产91无码精品秘入口| 精品视频在线播放| 人人色人人看| 超碰自拍99| 青草精品视频| 国产网站精品| 乱伦无码高清麻豆视频一区二区 | 黄片免费播放| 粉嫩99精品99久久久久久特污兔 | 婷婷五月综合网| 91久久午夜无码鲁丝片久久人妻| 中文字幕片av| 久久不卡视频| 无码中文综合成熟精品AV电影| 黄色三级在线观看| 各种BBwBBwBBwBBw| 最新久欠一区二区免费看| 国产成人无码免费看片| aav在线| 操逼视频免费| 亚洲欧洲免费| 女邻居的B好大| www.欧美| 黄色电影一级片| 黄色免费毛片| 亚洲精品自拍| 欧美sesese| 在线免费AV片| 国产乱伦电影| 成人免费视频网| 亚洲欧洲免费看| 水蜜桃网址| 亚洲第一无码| 无码小黄片| 91精品久久香蕉国产线看观看| 亚洲天堂男人天堂| 五月欧美激情| 男女无码| 国产骚女| 国产成人tv| 九九大香蕉| 日韩精品一二区| 国产一区视频18| 一区二区三区视频在线观看| 四个熟妇搡BBBB搡BBBB| 西西人体BBBBBB| 草久久| 欧美口爆视频| 视频一二三区| 欧美成人视频18| 精品人妻午夜一区二区三区四区 | 一二三四区视频| 99久久久久久久久久| 色色在线| 久久免费在线视频| 国产精品乱码一区二区三区| 草逼免费视频| 成人做爰A片免费看网站| 日韩一级在线免费观看| 日韩免费视频| 天天插天天射| 天天艹天天干| 国产精品51麻豆cm传媒| 婷婷色在线| 俺去草| 亚洲成人一二三区| 四虎影院人妻| 亚洲夜夜撸| 日本在线黄色视频| 国产熟女AV| 操逼国产| 激情久久久| 日韩十八禁网站| 五月天婷婷在线播放视频免费观看 | 国产男人天堂| 亚洲色婷婷久久精品AV蜜桃| 中文无码在线播放| 日韩中文字幕免费| 国产成人无码精品一区秘二区| 欧美精品一区二区少妇免费A片| 国产特级毛片| 亚洲男人天堂AV| 久久视频99| 一级黄色AV片| 西西444www| 粉嫩99精品99久久久久久夜| 亚洲高清视频在线播放| 午夜黄色操逼视频| aaa黄片| 911精品人妻一区二区三区A片 | 99r6热只有精品免费观看| 99色色| 大鸡巴操骚逼视频| 亚洲欧美成人在线视频| 西西888WWW大胆视频| 91视频在线免费观看| 久草资源网| 无码精品人妻| 久久久久成人视频| 亚洲熟女一区二区三区妖精| 麻豆91精品人妻成人无码| 黄视频在线观看免费| 五月丁香综合在线| 一区二区Av| 高清无码在线看| JiZZjiZZ亚洲成熟熟妇| 高清无码免费不卡| 中文字幕理论片| 免费岛国av大片| 蜜桃网站| 伊人77| 婷婷看片| 18性XXXXX性猛交| 88海外华人免费一区| 人妻无码免费视频| 91精品国产日韩91久久久久久 | 亚洲国产激情| 国产粉嫩在线观看| 久久久久久久AV| 韩国三级AV| 操人妻视频| 国产在线观看AV| 91激情网| 成av人片一区二区三区久久| 亚洲高清福利| 免费AV在线| 偷拍视频网站| 国产一级黄| 国产一区二区视频在线| 2018天天操天天干| 亚洲草比视频网| 无码专区一区二区三区| 久久国产综合| 不卡在线| 欧美黄色免费在线观看| 久亚洲| 亚洲国产精品自在自线| 国产综合激情| 亚洲AV动漫| 欧美另类综合| 在线观看免费黄网站| 熟妇高潮一区二区高潮| 亚洲天堂女| 亚洲中文字幕一区| 欧美一级片在线| 亚洲高清无码免费观看| 久久偷看各类wc女厕嘘嘘偷窃| 国产精品久久7777777精品无码| 成人婷婷五月| 五月天黄色电影| 免费黄色A片| 国产成人综合视频| 熟女少妇一区二区三区| 成人黄色无码视频| 老司机午夜免费精品视频| 黄色激情AV| 人人草人人摸| 成人精品免费视频| 欧美日韩操逼视频| 噜噜在线| 三浦恵子一级婬片A片| 久久av影院| 国产女人18毛片水18精品软件| 香蕉漫画在线观看18| 伊人网大香蕉| 日本黄色大片| 成人性爱av| 久久久8| 蜜臀久久久99久久久久久久| 曰曰操| 蜜臀网在线观看| 国精产品一区二区三区在线观看| 亚洲国产精品成人综合色五月 | 午夜九九| 亚洲AV免费看| 日韩免费看| 91激情网| 亚洲欧美国产高清vA在线播放| 开心黄色网| 91在线无码精品入口电车| 91丨露脸丨熟女精品| 国产欧美在线综合| 国产又爽又黄免费视频网站| 日韩乱伦视频| 久久久久国产视频| 亚洲AV免费看| 国产一级女婬乱免费看| 俺也日| 学生妹内射| 精品免费一区二区三区四区| 老太色HD色老太HD.| 国产又黄又大又粗| 奶大丰满一乱一视频一区二区三区在| 91综合网| 一区二区三区不卡视频| 日韩一级免费视频| 欧美性爱免费网站| 影音先锋成人资源网| 2025av天堂网| 日韩操逼电影| 麻豆一区在线观看| 久久精品久久久久久久| 一区免费在线| 免费电影日本黄色| 免费无码国产在线| 国产成人三级在线播放| 中文字幕无码精品三级在线欧美| 亚洲精品一区中文字幕乱码| 免费一级片视频| 亚洲婷婷三级成人网| 人人爱人人摸| 91AV在线播放| 免费毛片基地| 黄片免费看| A片在线视频| 成人黄片视频| 91丨九色丨蝌蚪丨成人| 天天夜夜人人| 亚洲精品无码中文字幕| 日韩无码操逼视频| 午夜AV在线观看| 欧洲第一无人区观看| 91久久精品无码一区| 农村三级片| 亚洲青青| 国产成人精品久久| 国产精品S色| 天天操天天日天天操| 乱伦内射视频| 国产一区二区视频在线| 青青草成人AV| 天堂中文在线播放| 少妇中文字幕| 四季AV之日韩人妻无码| 婷婷六月色| 久久四区| AV第一福利大全导航| 久久成人影音| www.久热| 在线播放www| 国产乱伦免费视频| 亚洲免费黄| 免看一级a毛片一片成人不卡| 丰满人妻一区二区三区四区53| 成人AV在线资源| 影音先锋男人你懂的| 日韩无码视频观看| 欧美午夜爱爱| 日韩一区不卡| 狼友综合| 神马午夜福利影院| 97无码精品人妻一区二区三区 | 69精品在线| 欧美AAA片| 国产乱子伦-区二区三区熟睡91 | 国产精品女| 久久午夜视频| 欧美操操| 天天干天天射天天操| 九九热精品视频| 啪啪啪啪网站| 久久久大香蕉| 国产亚洲久一区二区| 懂色av一区蜜桃| 久草黄色电影| 日韩在线视频网| AAA级片| A视频免费在线观看| 亚洲AV无码高清| 国产白嫩精品久久久久久| 中文字幕在线视频日本| 欧美日韩在线观看中文字幕| 国产一区二区三区免费观看| 大香蕉免费网| 三级片亚洲| 久久五月视频| 不卡视频一区二区| 国产免费一区| 国产在线导航| 在线观看国产免费视频| 午夜成人福利电影| 日韩a| 国产成人宗合| 日本一区二区网站| 成人精品永久免费视频99久久精品| av色图| xxxx日韩| 一本之道高清数码大全| 亚洲免费成人电影| 日本精品黄色视频| 影音先锋色先锋| 四季AV一区二区夜夜嗨| 日韩精品一二三区| 免费日逼| 91嫩草欧美久久久九九九| 亚洲免费在线观看| 韩日无码人妻| 9l视频自拍蝌蚪9l视频成人| 91人妻人人澡人人爽人人DVD | 这里只有精品在线观看| 国产在线高潮| 国产福利精品视频| 99热最新网址| www久久| 国产性爱电影网| 性欧美丰满熟妇XXXX性久久久| 蜜桃精品一区二区| 91ccc| 欧美囗交大荫蒂免费| 亚洲无线视频| A毛片| 日韩高清无码中文字幕| 亚洲一级黄色电影| 国产欧美在线综合| 水蜜桃成人在线| 国产无码一二三区| 中文字幕日韩一级| 亚洲日韩视频在线播放| Av一区二区三区| 加勒比无码高清| 成人777| gogogo高清在线观看免费直播中国 | 天天综合天天干| 黄色片视频网站| 亚洲成人精品| 国产精品探花熟女AV| 欧美一区二区三区四| 日本黄色视频大全| 婷婷综合久久| 高清无码中文字幕在线观看| 97人人爽人人爽人人人| 午夜激情在线观看| 亚洲一区欧美二区gay| 国产第八页| 日韩性爱在线视频| 色噜| 国产情侣在线视频| 国产精品一区二区在线| 午夜精品视频| 在线成人小视频| 免费欧美成人网站| 成人做爰黄A片免费| JlZZJLZZ亚洲美女18| 尤物免费视频| 国产激情视频在线观看| 91视频美女内射| 五月天黄色电影网站| 免费日韩一级| 欧美成人精品在线观看| 亚洲av在线免费观看| 啪啪啪啪网站| www超碰在线| 九九re精品视频在线观看| 欧美午夜爱爱| 青青青草视频在线观看| 国产在线视频你懂的| 国产无码内射| 粉嫩小泬BBBB免费看| 日韩黄色精品| 国产精品AV在线观看| 国产欧美综合一区二区三区| 亚洲黄色网址| 人人看人人搞人人摸| 亚洲精品无码一区| 精品久久免费视频| 91草视频| 人人澡人人澡| 亚州精品国产精品乱码不99勇敢| 日本欧美中文字幕| 久艹综合| 五月天激情综合网| 人人色人人爱| 伊人在综合| 日逼高清无码| 大香蕉AV在线观看| 黄色影院在线观看| 一级无码毛片| 操逼大毛片| 美女网站视频黄| 69国产精品成人无码视频色| 激情五月丁香婷婷| 亚洲欧美视频| 超碰在线最新| 波多野59部无码喷潮| 欧美国产三级| 亚洲91精品| 国精品无码人妻一区二区三区免费 | 国产2区| 日本操逼在线播放| 偷拍内射| 日韩性爱小说| 91天堂网| 另类AV| 国产熟妇搡BBBB搡BBBB搡| 粉嫩99精品99久久久久| 青青操网站| av高清无码| 亚洲中文字幕在线观看免费 | 麻豆传媒电影| 久热精品视频在线观看| 一本色道88久久加勒比精品| 热久久久久久| 成人无码免费一区二区中文| 超碰人人操人人| 强伦轩人妻一区二区三区最新版本更新内容| 操逼操逼操逼操逼操逼操逼| 精品无码一区二区Av蜜桃| 黄色大片免费观看| 亚洲操逼视频| AV777777| 色视频在线观看免费| 青青成人| 久久精品禁一区二区三区四区五区| 99久久大香蕉| 日韩精品一区二区在线观看| 免费a片在线观看| 在线成人视频网站大香蕉在线网站| 99在线精品视频观看| 日本无码免费视频| 亚洲v| 高清无码一区二区在线| 亚洲精选一区二区三区| 91大鸡巴| 欧美成人视频电影无码高清| 91精品视频在线免费观看| 骚五月| 蜜桃av秘无码一区三区四| 亚洲日日干| 尿在小sao货里面好不好| 亚洲无码专区在线| 男同人到爽无套狂欢| 五月天综合在线| 国产精品无码在线| 五月天激情网站| 欧美日韩在线观看一区二区三区| 久久久久成人精品无码| 天堂网在线视频| 久久久久久99| 中文字幕高清无码在线| 成人国产在线观看| 久久久XXX| www.久热| 成人午夜视频在线观看| 在线亚洲福利| 嫩BBB槡BBBB槡BBBB免费视频| 热热AV| 亚洲一区二区黄色电影视频网站 | 国产又黄又爽| 精品吃奶一区二区三区视频| 99在线看| 三级片在线观看视频| 97精品人妻一区| 麻豆一区二区三区四区| 四川少妇搡bbbbb搡多人| 欧美老妇XX| 澳门四虎影院| 九九热精品视频| 欧美日韩一级黄色片| 色色热热| 中文字幕精品无码亚| 中文字幕国产综合| 西西人体444rt高清大胆模特| 黄色视频日本| 特级西西444www大胆高清图片| 亚洲小电影在线| 免费超碰| 韩国gogogo高清在线完整版 | 一级久久| 国产欧美另类| 91ThePorn国产在线观看| 亚洲精品成人| 韩国无码视频在线观看| 做爱无码| 欧美一区二区三区激情| 日韩AV无码成人精品| 无码人妻一区二区三区线花季传件 | 日韩性爱视频| 免费在线观看视频a| 久久91欧美特黄A片| 国产精品乱码毛片在线人与| AV无码免费| 四虎国产| 大香蕉在线视频观看| 亚洲日韩AV无码| 午夜成人福利| 天天干天天日天天干天天日| 91亚洲一线产区二线产区| 少妇无码一区| 操逼逼网站|