日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > windows >内容正文

windows

第一百一十一期:思考 | 一文说透秒杀系统如何设计

發(fā)布時(shí)間:2023/12/10 windows 60 豆豆
生活随笔 收集整理的這篇文章主要介紹了 第一百一十一期:思考 | 一文说透秒杀系统如何设计 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

秒殺大家都不陌生。自2011年首次出現(xiàn)以來(lái),無(wú)論是雙十一購(gòu)物還是 12306 搶票,秒殺場(chǎng)景已隨處可見(jiàn)。簡(jiǎn)單來(lái)說(shuō),秒殺就是在同一時(shí)刻大量請(qǐng)求爭(zhēng)搶購(gòu)買(mǎi)同一商品并完成交易的過(guò)程。從架構(gòu)視角來(lái)看,秒殺系統(tǒng)本質(zhì)是一個(gè)高性能、高一致、高可用的三高系統(tǒng)。

作者:阿哲

前言

秒殺大家都不陌生。自2011年首次出現(xiàn)以來(lái),無(wú)論是雙十一購(gòu)物還是 12306 搶票,秒殺場(chǎng)景已隨處可見(jiàn)。簡(jiǎn)單來(lái)說(shuō),秒殺就是在同一時(shí)刻大量請(qǐng)求爭(zhēng)搶購(gòu)買(mǎi)同一商品并完成交易的過(guò)程。從架構(gòu)視角來(lái)看,秒殺系統(tǒng)本質(zhì)是一個(gè)高性能、高一致、高可用的三高系統(tǒng)。而打造并維護(hù)一個(gè)超大流量的秒殺系統(tǒng)需要進(jìn)行哪些關(guān)注,就是本文討論的話(huà)題。

整體思考

首先從高維度出發(fā),整體思考問(wèn)題。秒殺無(wú)外乎解決兩個(gè)核心問(wèn)題,一是并發(fā)讀,一是并發(fā)寫(xiě),對(duì)應(yīng)到架構(gòu)設(shè)計(jì),就是高可用、一致性和高性能的要求。關(guān)于秒殺系統(tǒng)的設(shè)計(jì)思考,本文即基于此 3 層依次推進(jìn),簡(jiǎn)述如下:

  • 高性能。 秒殺涉及高讀和高寫(xiě)的支持,如何支撐高并發(fā),如何抵抗高IOPS?核心優(yōu)化理念其實(shí)是類(lèi)似的:高讀就盡量"少讀"或"讀少",高寫(xiě)就數(shù)據(jù)拆分。本文將從動(dòng)靜分離、熱點(diǎn)優(yōu)化以及服務(wù)端性能優(yōu)化 3 個(gè)方面展開(kāi)。
  • 一致性。 秒殺的核心關(guān)注是商品庫(kù)存,有限的商品在同一時(shí)間被多個(gè)請(qǐng)求同時(shí)扣減,而且要保證準(zhǔn)確性,顯而易見(jiàn)是一個(gè)難題。如何做到既不多又不少?本文將從業(yè)界通用的幾種減庫(kù)存方案切入,討論一致性設(shè)計(jì)的核心邏輯。
  • 高可用。 大型分布式系統(tǒng)在實(shí)際運(yùn)行過(guò)程中面對(duì)的工況是非常復(fù)雜的,業(yè)務(wù)流量的突增、依賴(lài)服務(wù)的不穩(wěn)定、應(yīng)用自身的瓶頸、物理資源的損壞等方方面面都會(huì)對(duì)系統(tǒng)的運(yùn)行帶來(lái)大大小小的的沖擊。如何保障應(yīng)用在復(fù)雜工況環(huán)境下還能高效穩(wěn)定運(yùn)行,如何預(yù)防和面對(duì)突發(fā)問(wèn)題,系統(tǒng)設(shè)計(jì)時(shí)應(yīng)該從哪些方面著手?本文將從架構(gòu)落地的全景視角進(jìn)行關(guān)注思考。

高性能

1 動(dòng)靜分離

大家可能會(huì)注意到,秒殺過(guò)程中你是不需要刷新整個(gè)頁(yè)面的,只有時(shí)間在不停跳動(dòng)。這是因?yàn)橐话愣紩?huì)對(duì)大流量的秒殺系統(tǒng)做系統(tǒng)的靜態(tài)化改造,即數(shù)據(jù)意義上的動(dòng)靜分離。動(dòng)靜分離三步走:

  • 數(shù)據(jù)拆分;
  • 靜態(tài)緩存;
  • 數(shù)據(jù)整合。
  • 1.1 數(shù)據(jù)拆分

    動(dòng)靜分離的首要目的是將動(dòng)態(tài)頁(yè)面改造成適合緩存的靜態(tài)頁(yè)面。因此第一步就是分離出動(dòng)態(tài)數(shù)據(jù),主要從以下 2 個(gè)方面進(jìn)行:

    • 用戶(hù)。用戶(hù)身份信息包括登錄狀態(tài)以及登錄畫(huà)像等,相關(guān)要素可以單獨(dú)拆分出來(lái),通過(guò)動(dòng)態(tài)請(qǐng)求進(jìn)行獲取;與之相關(guān)的廣平推薦,如用戶(hù)偏好、地域偏好等,同樣可以通過(guò)異步方式進(jìn)行加載
    • 時(shí)間。秒殺時(shí)間是由服務(wù)端統(tǒng)一管控的,可以通過(guò)動(dòng)態(tài)請(qǐng)求進(jìn)行獲取

    這里你可以打開(kāi)電商平臺(tái)的一個(gè)秒殺頁(yè)面,看看這個(gè)頁(yè)面里都有哪些動(dòng)靜數(shù)據(jù)。

    1.2 靜態(tài)緩存

    分離出動(dòng)靜態(tài)數(shù)據(jù)之后,第二步就是將靜態(tài)數(shù)據(jù)進(jìn)行合理的緩存,由此衍生出兩個(gè)問(wèn)題:

    • 怎么緩存;
    • 哪里緩存

    1.2.1 怎么緩存

    靜態(tài)化改造的一個(gè)特點(diǎn)是直接緩存整個(gè) HTTP 連接而不是僅僅緩存靜態(tài)數(shù)據(jù),如此一來(lái),Web 代理服務(wù)器根據(jù)請(qǐng)求 URL,可以直接取出對(duì)應(yīng)的響應(yīng)體然后直接返回,響應(yīng)過(guò)程無(wú)需重組 HTTP 協(xié)議,也無(wú)需解析 HTTP 請(qǐng)求頭。而作為緩存鍵,URL唯一化是必不可少的,只是對(duì)于商品系統(tǒng),URL 天然是可以基于商品 ID 來(lái)進(jìn)行唯一標(biāo)識(shí)的,比如淘寶的 https://item.taobao.com/item....。

    1.2.2 哪里緩存

    靜態(tài)數(shù)據(jù)緩存到哪里呢?可以有三種方式:

    • 瀏覽器;
    • CDN ;
    • 服務(wù)端。

    瀏覽器當(dāng)然是第一選擇,但用戶(hù)的瀏覽器是不可控的,主要體現(xiàn)在如果用戶(hù)不主動(dòng)刷新,系統(tǒng)很難主動(dòng)地把消息推送給用戶(hù)(注意,當(dāng)討論靜態(tài)數(shù)據(jù)時(shí),潛臺(tái)詞是 “相對(duì)不變”,言外之意是 “可能會(huì)變”),如此可能會(huì)導(dǎo)致用戶(hù)端在很長(zhǎng)一段時(shí)間內(nèi)看到的信息都是錯(cuò)誤的。對(duì)于秒殺系統(tǒng),保證緩存可以在秒級(jí)時(shí)間內(nèi)失效是不可或缺的。

    服務(wù)端主要進(jìn)行動(dòng)態(tài)邏輯計(jì)算及加載,本身并不擅長(zhǎng)處理大量連接,每個(gè)連接消耗內(nèi)存較多,同時(shí) Servlet 容器解析 HTTP 較慢,容易侵占邏輯計(jì)算資源;另外,靜態(tài)數(shù)據(jù)下沉至此也會(huì)拉長(zhǎng)請(qǐng)求路徑。

    因此通常將靜態(tài)數(shù)據(jù)緩存在 CDN,其本身更擅長(zhǎng)處理大并發(fā)的靜態(tài)文件請(qǐng)求,既可以做到主動(dòng)失效,又離用戶(hù)盡可能近,同時(shí)規(guī)避 Java 語(yǔ)言層面的弱點(diǎn)。需要注意的是,上 CDN 有以下幾個(gè)問(wèn)題需要解決:

    • 失效問(wèn)題。任何一個(gè)緩存都應(yīng)該是有時(shí)效的,尤其對(duì)于一個(gè)秒殺場(chǎng)景。所以,系統(tǒng)需要保證全國(guó)各地的 CDN 在秒級(jí)時(shí)間內(nèi)失效掉緩存信息,這實(shí)際對(duì) CDN 的失效系統(tǒng)要求是很高的
    • 命中率問(wèn)題。高命中是緩存系統(tǒng)最為核心的性能要求,不然緩存就失去了意義。如果將數(shù)據(jù)放到全國(guó)各地的 CDN ,勢(shì)必會(huì)導(dǎo)致請(qǐng)求命中同一個(gè)緩存的可能性降低,那么命中率就成為一個(gè)問(wèn)題

    因此,將數(shù)據(jù)放到全國(guó)所有的 CDN 節(jié)點(diǎn)是不太現(xiàn)實(shí)的,失效問(wèn)題、命中率問(wèn)題都會(huì)面臨比較大的挑戰(zhàn)。更為可行的做法是選擇若干 CDN 節(jié)點(diǎn)進(jìn)行靜態(tài)化改造,節(jié)點(diǎn)的選取通常需要滿(mǎn)足以下幾個(gè)條件:

    • 臨近訪問(wèn)量集中的地區(qū)
    • 距離主站較遠(yuǎn)的地區(qū)
    • 節(jié)點(diǎn)與主站間網(wǎng)絡(luò)質(zhì)量良好的地區(qū)

    基于以上因素,選擇 CDN 的二級(jí)緩存比較合適,因?yàn)槎?jí)緩存數(shù)量偏少,容量也更大,訪問(wèn)量相對(duì)集中,這樣就可以較好解決緩存的失效問(wèn)題以及命中率問(wèn)題,是當(dāng)前比較理想的一種 CDN 化方案。部署方式如下圖所示:

    1.3 數(shù)據(jù)整合

    分離出動(dòng)靜態(tài)數(shù)據(jù)之后,前端如何組織數(shù)據(jù)頁(yè)就是一個(gè)新的問(wèn)題,主要在于動(dòng)態(tài)數(shù)據(jù)的加載處理,通常有兩種方案:ESI(Edge Side Includes)方案和 CSI(Client Side Include)方案。

    • ESI 方案:Web 代理服務(wù)器上請(qǐng)求動(dòng)態(tài)數(shù)據(jù),并將動(dòng)態(tài)數(shù)據(jù)插入到靜態(tài)頁(yè)面中,用戶(hù)看到頁(yè)面時(shí)已經(jīng)是一個(gè)完整的頁(yè)面。這種方式對(duì)服務(wù)端性能要求高,但用戶(hù)體驗(yàn)較好
    • CSI 方案:Web 代理服務(wù)器上只返回靜態(tài)頁(yè)面,前端單獨(dú)發(fā)起一個(gè)異步 JS 請(qǐng)求動(dòng)態(tài)數(shù)據(jù)。這種方式對(duì)服務(wù)端性能友好,但用戶(hù)體驗(yàn)稍差

    1.4 小結(jié)

    動(dòng)靜分離對(duì)于性能的提升,抽象起來(lái)只有兩點(diǎn),一是數(shù)據(jù)要盡量少,以便減少?zèng)]必要的請(qǐng)求,二是路徑要盡量短,以便提高單次請(qǐng)求的效率。具體方法其實(shí)就是基于這個(gè)大方向進(jìn)行的。

    2 熱點(diǎn)優(yōu)化

    熱點(diǎn)分為熱點(diǎn)操作和熱點(diǎn)數(shù)據(jù),以下分開(kāi)進(jìn)行討論。

    2.1 熱點(diǎn)操作

    零點(diǎn)刷新、零點(diǎn)下單、零點(diǎn)添加購(gòu)物車(chē)等都屬于熱點(diǎn)操作。熱點(diǎn)操作是用戶(hù)的行為,不好改變,但可以做一些限制保護(hù),比如用戶(hù)頻繁刷新頁(yè)面時(shí)進(jìn)行提示阻斷。

    2.2 熱點(diǎn)數(shù)據(jù)

    熱點(diǎn)數(shù)據(jù)的處理三步走,一是熱點(diǎn)識(shí)別,二是熱點(diǎn)隔離,三是熱點(diǎn)優(yōu)化。

    2.2.1 熱點(diǎn)識(shí)別

    熱點(diǎn)數(shù)據(jù)分為靜態(tài)熱點(diǎn)和動(dòng)態(tài)熱點(diǎn),具體如下:

    • 靜態(tài)熱點(diǎn):能夠提前預(yù)測(cè)的熱點(diǎn)數(shù)據(jù)。大促前夕,可以根據(jù)大促的行業(yè)特點(diǎn)、活動(dòng)商家等緯度信息分析出熱點(diǎn)商品,或者通過(guò)賣(mài)家報(bào)名的方式提前篩選;另外,還可以通過(guò)技術(shù)手段提前預(yù)測(cè),例如對(duì)買(mǎi)家每天訪問(wèn)的商品進(jìn)行大數(shù)據(jù)計(jì)算,然后統(tǒng)計(jì)出 TOP N 的商品,即可視為熱點(diǎn)商品
    • 動(dòng)態(tài)熱點(diǎn):無(wú)法提前預(yù)測(cè)的熱點(diǎn)數(shù)據(jù)。冷熱數(shù)據(jù)往往是隨實(shí)際業(yè)務(wù)場(chǎng)景發(fā)生交替變化的,尤其是如今直播賣(mài)貨模式的興起——帶貨商臨時(shí)做一個(gè)廣告,就有可能導(dǎo)致一件商品在短時(shí)間內(nèi)被大量購(gòu)買(mǎi)。由于此類(lèi)商品日常訪問(wèn)較少,即使在緩存系統(tǒng)中一段時(shí)間后也會(huì)被逐出或過(guò)期掉,甚至在db中也是冷數(shù)據(jù)。瞬時(shí)流量的涌入,往往導(dǎo)致緩存被擊穿,請(qǐng)求直接到達(dá)DB,引發(fā)DB壓力過(guò)大

    因此秒殺系統(tǒng)需要實(shí)現(xiàn)熱點(diǎn)數(shù)據(jù)的動(dòng)態(tài)發(fā)現(xiàn)能力,一個(gè)常見(jiàn)的實(shí)現(xiàn)思路是:

    • 異步采集交易鏈路各個(gè)環(huán)節(jié)的熱點(diǎn) Key 信息,如 Nginx采集訪問(wèn)URL或 Agent 采集熱點(diǎn)日志(一些中間件本身已具備熱點(diǎn)發(fā)現(xiàn)能力),提前識(shí)別潛在的熱點(diǎn)數(shù)據(jù)
    • 聚合分析熱點(diǎn)數(shù)據(jù),達(dá)到一定規(guī)則的熱點(diǎn)數(shù)據(jù),通過(guò)訂閱分發(fā)推送到鏈路系統(tǒng),各系統(tǒng)根據(jù)自身需求決定如何處理熱點(diǎn)數(shù)據(jù),或限流或緩存,從而實(shí)現(xiàn)熱點(diǎn)保護(hù)

    需要注意的是:

    • 熱點(diǎn)數(shù)據(jù)采集最好采用異步方式,一方面不會(huì)影響業(yè)務(wù)的核心交易鏈路,一方面可以保證采集方式的通用性
    • 熱點(diǎn)發(fā)現(xiàn)最好做到秒級(jí)實(shí)時(shí),這樣動(dòng)態(tài)發(fā)現(xiàn)才有意義,實(shí)際上也是對(duì)核心節(jié)點(diǎn)的數(shù)據(jù)采集和分析能力提出了較高的要求

    2.2.2 熱點(diǎn)隔離

    熱點(diǎn)數(shù)據(jù)識(shí)別出來(lái)之后,第一原則就是將熱點(diǎn)數(shù)據(jù)隔離出來(lái),不要讓 1% 影響到另外的 99%,可以基于以下幾個(gè)層次實(shí)現(xiàn)熱點(diǎn)隔離:

    • 業(yè)務(wù)隔離。秒殺作為一種營(yíng)銷(xiāo)活動(dòng),賣(mài)家需要單獨(dú)報(bào)名,從技術(shù)上來(lái)說(shuō),系統(tǒng)可以提前對(duì)已知熱點(diǎn)做緩存預(yù)熱
    • 系統(tǒng)隔離。系統(tǒng)隔離是運(yùn)行時(shí)隔離,通過(guò)分組部署和另外 99% 進(jìn)行分離,另外秒殺也可以申請(qǐng)單獨(dú)的域名,入口層就讓請(qǐng)求落到不同的集群中
    • 數(shù)據(jù)隔離。秒殺數(shù)據(jù)作為熱點(diǎn)數(shù)據(jù),可以啟用單獨(dú)的緩存集群或者DB服務(wù)組,從而更好的實(shí)現(xiàn)橫向或縱向能力擴(kuò)展

    當(dāng)然,實(shí)現(xiàn)隔離還有很多種辦法。比如,可以按照用戶(hù)來(lái)區(qū)分,為不同的用戶(hù)分配不同的 Cookie,入口層路由到不同的服務(wù)接口中;再比如,域名保持一致,但后端調(diào)用不同的服務(wù)接口;又或者在數(shù)據(jù)層給數(shù)據(jù)打標(biāo)進(jìn)行區(qū)分等等,這些措施的目的都是把已經(jīng)識(shí)別的熱點(diǎn)請(qǐng)求和普通請(qǐng)求區(qū)分開(kāi)來(lái)。

    2.2.3 熱點(diǎn)優(yōu)化

    熱點(diǎn)數(shù)據(jù)隔離之后,也就方便對(duì)這 1% 的請(qǐng)求做針對(duì)性的優(yōu)化,方式無(wú)外乎兩種:

    • 緩存:熱點(diǎn)緩存是最為有效的辦法。如果熱點(diǎn)數(shù)據(jù)做了動(dòng)靜分離,那么可以長(zhǎng)期緩存靜態(tài)數(shù)據(jù)
    • 限流:流量限制更多是一種保護(hù)機(jī)制。需要注意的是,各服務(wù)要時(shí)刻關(guān)注請(qǐng)求是否觸發(fā)限流并及時(shí)進(jìn)行review

    2.2.4 小結(jié)

    數(shù)據(jù)的熱點(diǎn)優(yōu)化與動(dòng)靜分離是不一樣的,熱點(diǎn)優(yōu)化是基于二八原則對(duì)數(shù)據(jù)進(jìn)行了縱向拆分,以便進(jìn)行針對(duì)性地處理。熱點(diǎn)識(shí)別和隔離不僅對(duì)“秒殺”這個(gè)場(chǎng)景有意義,對(duì)其他的高性能分布式系統(tǒng)也非常有參考價(jià)值。

    3 系統(tǒng)優(yōu)化

    對(duì)于一個(gè)軟件系統(tǒng),提高性能可以有很多種手段,如提升硬件水平、調(diào)優(yōu)JVM 性能,這里主要關(guān)注代碼層面的性能優(yōu)化——

    • 減少序列化:減少 Java 中的序列化操作可以很好的提升系統(tǒng)性能。序列化大部分是在 RPC 階段發(fā)生,因此應(yīng)該盡量減少 RPC 調(diào)用,一種可行的方案是將多個(gè)關(guān)聯(lián)性較強(qiáng)的應(yīng)用進(jìn)行 “合并部署”,從而減少不同應(yīng)用之間的 RPC 調(diào)用(微服務(wù)設(shè)計(jì)規(guī)范)
    • 直接輸出流數(shù)據(jù):只要涉及字符串的I/O操作,無(wú)論是磁盤(pán) I/O 還是網(wǎng)絡(luò) I/O,都比較耗費(fèi) CPU 資源,因?yàn)樽址枰D(zhuǎn)換成字節(jié),而這個(gè)轉(zhuǎn)換又必須查表編碼。所以對(duì)于常用數(shù)據(jù),比如靜態(tài)字符串,推薦提前編碼成字節(jié)并緩存,具體到代碼層面就是通過(guò) OutputStream() 類(lèi)函數(shù)從而減少數(shù)據(jù)的編碼轉(zhuǎn)換;另外,熱點(diǎn)方法toString()不要直接調(diào)用ReflectionToString實(shí)現(xiàn),推薦直接硬編碼,并且只打印DO的基礎(chǔ)要素和核心要素
    • 裁剪日志異常堆棧:無(wú)論是外部系統(tǒng)異常還是應(yīng)用本身異常,都會(huì)有堆棧打出,超大流量下,頻繁的輸出完整堆棧,只會(huì)加劇系統(tǒng)當(dāng)前負(fù)載。可以通過(guò)日志配置文件控制異常堆棧輸出的深度
    • 去組件框架:極致優(yōu)化要求下,可以去掉一些組件框架,比如去掉傳統(tǒng)的 MVC 框架,直接使用 Servlet 處理請(qǐng)求。這樣可以繞過(guò)一大堆復(fù)雜且用處不大的處理邏輯,節(jié)省毫秒級(jí)的時(shí)間,當(dāng)然,需要合理評(píng)估你對(duì)框架的依賴(lài)程度

    4 總結(jié)一下

    性能優(yōu)化需要一個(gè)基準(zhǔn)值,所以系統(tǒng)還需要做好應(yīng)用基線(xiàn),比如性能基線(xiàn)(何時(shí)性能突然下降)、成本基線(xiàn)(去年大促用了多少機(jī)器)、鏈路基線(xiàn)(核心流程發(fā)生了哪些變化),通過(guò)基線(xiàn)持續(xù)關(guān)注系統(tǒng)性能,促使系統(tǒng)在代碼層面持續(xù)提升編碼質(zhì)量、業(yè)務(wù)層面及時(shí)下掉不合理調(diào)用、架構(gòu)層面不斷優(yōu)化改進(jìn)。

    一致性

    秒殺系統(tǒng)中,庫(kù)存是個(gè)關(guān)鍵數(shù)據(jù),賣(mài)不出去是個(gè)問(wèn)題,超賣(mài)更是個(gè)問(wèn)題。秒殺場(chǎng)景下的一致性問(wèn)題,主要就是庫(kù)存扣減的準(zhǔn)確性問(wèn)題。

    1 減庫(kù)存的方式

    電商場(chǎng)景下的購(gòu)買(mǎi)過(guò)程一般分為兩步:下單和付款。“提交訂單”即為下單,“支付訂單”即為付款。基于此設(shè)定,減庫(kù)存一般有以下幾個(gè)方式:

    • 下單減庫(kù)存。買(mǎi)家下單后,扣減商品庫(kù)存。下單減庫(kù)存是最簡(jiǎn)單的減庫(kù)存方式,也是控制最為精確的一種
    • 付款減庫(kù)存。買(mǎi)家下單后,并不立即扣減庫(kù)存,而是等到付款后才真正扣減庫(kù)存。但因?yàn)楦犊顣r(shí)才減庫(kù)存,如果并發(fā)比較高,可能出現(xiàn)買(mǎi)家下單后付不了款的情況,因?yàn)樯唐芬呀?jīng)被其他人買(mǎi)走了
    • 預(yù)扣庫(kù)存。這種方式相對(duì)復(fù)雜一些,買(mǎi)家下單后,庫(kù)存為其保留一定的時(shí)間(如 15 分鐘),超過(guò)這段時(shí)間,庫(kù)存自動(dòng)釋放,釋放后其他買(mǎi)家可以購(gòu)買(mǎi)

    能夠看到,減庫(kù)存方式是基于購(gòu)物過(guò)程的多階段進(jìn)行劃分的,但無(wú)論是在下單階段還是付款階段,都會(huì)存在一些問(wèn)題,下面進(jìn)行具體分析。

    2 減庫(kù)存的問(wèn)題

    2.1 下單減庫(kù)存

    優(yōu)勢(shì):用戶(hù)體驗(yàn)最好。下單減庫(kù)存是最簡(jiǎn)單的減庫(kù)存方式,也是控制最精確的一種。下單時(shí)可以直接通過(guò)數(shù)據(jù)庫(kù)事務(wù)機(jī)制控制商品庫(kù)存,所以一定不會(huì)出現(xiàn)已下單卻付不了款的情況。

    劣勢(shì):可能賣(mài)不出去。正常情況下,買(mǎi)家下單后付款概率很高,所以不會(huì)有太大問(wèn)題。但有一種場(chǎng)景例外,就是當(dāng)賣(mài)家參加某個(gè)促銷(xiāo)活動(dòng)時(shí),競(jìng)爭(zhēng)對(duì)手通過(guò)惡意下單的方式將該商品全部下單,導(dǎo)致庫(kù)存清零,那么這就不能正常售賣(mài)了——要知道,惡意下單的人是不會(huì)真正付款的,這正是 “下單減庫(kù)存” 的不足之處。

    2.2 付款減庫(kù)存

    • 優(yōu)勢(shì):一定實(shí)際售賣(mài)。“下單減庫(kù)存” 可能導(dǎo)致惡意下單,從而影響賣(mài)家的商品銷(xiāo)售, “付款減庫(kù)存” 由于需要付出真金白銀,可以有效避免。
    • 劣勢(shì):用戶(hù)體驗(yàn)較差。用戶(hù)下單后,不一定會(huì)實(shí)際付款,假設(shè)有 100 件商品,就可能出現(xiàn) 200 人下單成功的情況,因?yàn)橄聠螘r(shí)不會(huì)減庫(kù)存,所以也就可能出現(xiàn)下單成功數(shù)遠(yuǎn)遠(yuǎn)超過(guò)真正庫(kù)存數(shù)的情況,這尤其會(huì)發(fā)生在大促的熱門(mén)商品上。如此一來(lái)就會(huì)導(dǎo)致很多買(mǎi)家下單成功后卻付不了款,購(gòu)物體驗(yàn)自然是比較差的。

    2.3 預(yù)扣庫(kù)存

    • 優(yōu)勢(shì):緩解了以上兩種方式的問(wèn)題。預(yù)扣庫(kù)存實(shí)際就是“下單減庫(kù)存”和 “付款減庫(kù)存”兩種方式的結(jié)合,將兩次操作進(jìn)行了前后關(guān)聯(lián),下單時(shí)預(yù)扣庫(kù)存,付款時(shí)釋放庫(kù)存。
    • 劣勢(shì):并沒(méi)有徹底解決以上問(wèn)題。比如針對(duì)惡意下單的場(chǎng)景,雖然可以把有效付款時(shí)間設(shè)置為 10 分鐘,但惡意買(mǎi)家完全可以在 10 分鐘之后再次下單。

    2.4 小結(jié)

    減庫(kù)存的問(wèn)題主要體現(xiàn)在用戶(hù)體驗(yàn)和商業(yè)訴求兩方面,其本質(zhì)原因在于購(gòu)物過(guò)程存在兩步甚至多步操作,在不同階段減庫(kù)存,容易存在被惡意利用的漏洞。

    3 實(shí)際如何減庫(kù)存

    業(yè)界最為常見(jiàn)的是預(yù)扣庫(kù)存。無(wú)論是外賣(mài)點(diǎn)餐還是電商購(gòu)物,下單后一般都有個(gè) “有效付款時(shí)間”,超過(guò)該時(shí)間訂單自動(dòng)釋放,這就是典型的預(yù)扣庫(kù)存方案。但如上所述,預(yù)扣庫(kù)存還需要解決惡意下單的問(wèn)題,保證商品賣(mài)的出去;另一方面,如何避免超賣(mài),也是一個(gè)痛點(diǎn)。

    • 賣(mài)的出去:惡意下單的解決方案主要還是結(jié)合安全和反作弊措施來(lái)制止。比如,識(shí)別頻繁下單不付款的買(mǎi)家并進(jìn)行打標(biāo),這樣可以在打標(biāo)買(mǎi)家下單時(shí)不減庫(kù)存;再比如為大促商品設(shè)置單人最大購(gòu)買(mǎi)件數(shù),一人最多只能買(mǎi) N 件商品;又或者對(duì)重復(fù)下單不付款的行為進(jìn)行次數(shù)限制阻斷等
    • 避免超賣(mài):庫(kù)存超賣(mài)的情況實(shí)際分為兩種。對(duì)于普通商品,秒殺只是一種大促手段,即使庫(kù)存超賣(mài),商家也可以通過(guò)補(bǔ)貨來(lái)解決;而對(duì)于一些商品,秒殺作為一種營(yíng)銷(xiāo)手段,完全不允許庫(kù)存為負(fù),也就是在數(shù)據(jù)一致性上,需要保證大并發(fā)請(qǐng)求時(shí)數(shù)據(jù)庫(kù)中的庫(kù)存字段值不能為負(fù),一般有多種方案:一是在通過(guò)事務(wù)來(lái)判斷,即保證減后庫(kù)存不能為負(fù),否則就回滾;二是直接設(shè)置數(shù)據(jù)庫(kù)字段類(lèi)型為無(wú)符號(hào)整數(shù),這樣一旦庫(kù)存為負(fù)就會(huì)在執(zhí)行 SQL 時(shí)報(bào)錯(cuò);三是使用 CASE WHEN 判斷語(yǔ)句——
  • UPDATE?item?SET?inventory?=?CASE?WHEN?inventory?>=?xxx?THEN?inventory-xxx?ELSE?inventory?END?
  • 業(yè)務(wù)手段保證商品賣(mài)的出去,技術(shù)手段保證商品不會(huì)超賣(mài),庫(kù)存問(wèn)題從來(lái)就不是簡(jiǎn)單的技術(shù)難題,解決問(wèn)題的視角是多種多樣的。

    4 一致性性能的優(yōu)化

    庫(kù)存是個(gè)關(guān)鍵數(shù)據(jù),更是個(gè)熱點(diǎn)數(shù)據(jù)。對(duì)系統(tǒng)來(lái)說(shuō),熱點(diǎn)的實(shí)際影響就是 “高讀” 和 “高寫(xiě)”,也是秒殺場(chǎng)景下最為核心的一個(gè)技術(shù)難題。

    4.1 高并發(fā)讀

    秒殺場(chǎng)景解決高并發(fā)讀問(wèn)題,關(guān)鍵詞是“分層校驗(yàn)”。即在讀鏈路時(shí),只進(jìn)行不影響性能的檢查操作,如用戶(hù)是否具有秒殺資格、商品狀態(tài)是否正常、用戶(hù)答題是否正確、秒殺是否已經(jīng)結(jié)束、是否非法請(qǐng)求等,而不做一致性校驗(yàn)等容易引發(fā)瓶頸的檢查操作;直到寫(xiě)鏈路時(shí),才對(duì)庫(kù)存做一致性檢查,在數(shù)據(jù)層保證最終準(zhǔn)確性。

    因此,在分層校驗(yàn)設(shè)定下,系統(tǒng)可以采用分布式緩存甚至LocalCache來(lái)抵抗高并發(fā)讀。即允許讀場(chǎng)景下一定的臟數(shù)據(jù),這樣只會(huì)導(dǎo)致少量原本無(wú)庫(kù)存的下單請(qǐng)求被誤認(rèn)為是有庫(kù)存的,等到真正寫(xiě)數(shù)據(jù)時(shí)再保證最終一致性,由此做到高可用和一致性之間的平衡。

    實(shí)際上,分層校驗(yàn)的核心思想是:不同層次盡可能過(guò)濾掉無(wú)效請(qǐng)求,只在“漏斗” 最末端進(jìn)行有效處理,從而縮短系統(tǒng)瓶頸的影響路徑。

    4.2 高并發(fā)寫(xiě)

    高并發(fā)寫(xiě)的優(yōu)化方式,一種是更換DB選型,一種是優(yōu)化DB性能,以下分別進(jìn)行討論。

    4.2.1 更換DB選型

    秒殺商品和普通商品的減庫(kù)存是有差異的,核心區(qū)別在數(shù)據(jù)量級(jí)小、交易時(shí)間短,因此能否把秒殺減庫(kù)存直接放到緩存系統(tǒng)中實(shí)現(xiàn)呢,也就是直接在一個(gè)帶有持久化功能的緩存中進(jìn)行減庫(kù)存操作,比如 Redis?

    如果減庫(kù)存邏輯非常單一的話(huà),比如沒(méi)有復(fù)雜的 SKU 庫(kù)存和總庫(kù)存這種聯(lián)動(dòng)關(guān)系的話(huà),個(gè)人認(rèn)為是完全可以的。但如果有比較復(fù)雜的減庫(kù)存邏輯,或者需要使用到事務(wù),那就必須在數(shù)據(jù)庫(kù)中完成減庫(kù)存操作。

    4.2.2 優(yōu)化DB性能

    庫(kù)存數(shù)據(jù)落地到數(shù)據(jù)庫(kù)實(shí)現(xiàn)其實(shí)是一行存儲(chǔ)(MySQL),因此會(huì)有大量線(xiàn)程來(lái)競(jìng)爭(zhēng) InnoDB 行鎖。但并發(fā)越高,等待線(xiàn)程就會(huì)越多,TPS 下降,RT 上升,吞吐量會(huì)受到嚴(yán)重影響——注意,這里假設(shè)數(shù)據(jù)庫(kù)已基于上文【性能優(yōu)化】完成數(shù)據(jù)隔離,以便于討論聚焦 。

    解決并發(fā)鎖的問(wèn)題,有兩種辦法:

    • 應(yīng)用層排隊(duì)。通過(guò)緩存加入集群分布式鎖,從而控制集群對(duì)數(shù)據(jù)庫(kù)同一行記錄進(jìn)行操作的并發(fā)度,同時(shí)也能控制單個(gè)商品占用數(shù)據(jù)庫(kù)連接的數(shù)量,防止熱點(diǎn)商品占用過(guò)多的數(shù)據(jù)庫(kù)連接
    • 數(shù)據(jù)層排隊(duì)。應(yīng)用層排隊(duì)是有損性能的,數(shù)據(jù)層排隊(duì)是最為理想的。業(yè)界中,阿里的數(shù)據(jù)庫(kù)團(tuán)隊(duì)開(kāi)發(fā)了針對(duì)InnoDB 層上的補(bǔ)丁程序(patch),可以基于DB層對(duì)單行記錄做并發(fā)排隊(duì),從而實(shí)現(xiàn)秒殺場(chǎng)景下的定制優(yōu)化——注意,排隊(duì)和鎖競(jìng)爭(zhēng)是有區(qū)別的,如果熟悉 MySQL 的話(huà),就會(huì)知道 InnoDB 內(nèi)部的死鎖檢測(cè),以及 MySQL Server 和 InnoDB 的切換都是比較消耗性能的。另外阿里的數(shù)據(jù)庫(kù)團(tuán)隊(duì)還做了很多其他方面的優(yōu)化,如 COMMIT_ON_SUCCESS 和 ROLLBACK_ON_FAIL 的補(bǔ)丁程序,通過(guò)在 SQL 里加入提示(hint),實(shí)現(xiàn)事務(wù)不需要等待實(shí)時(shí)提交,而是在數(shù)據(jù)執(zhí)行完最后一條 SQL 后,直接根據(jù) TARGET_AFFECT_ROW 的結(jié)果進(jìn)行提交或回滾,減少網(wǎng)絡(luò)等待的時(shí)間(毫秒級(jí))。目前阿里已將包含這些補(bǔ)丁程序的 MySQL 開(kāi)源:AliSQL

    4.3 小結(jié)

    高讀和高寫(xiě)的兩種處理方式大相徑庭。讀請(qǐng)求的優(yōu)化空間要大一些,而寫(xiě)請(qǐng)求的瓶頸一般都在存儲(chǔ)層,優(yōu)化思路的本質(zhì)還是基于 CAP 理論做平衡。

    5 總結(jié)一下

    當(dāng)然,減庫(kù)存還有很多細(xì)節(jié)問(wèn)題,例如預(yù)扣的庫(kù)存超時(shí)后如何進(jìn)行回補(bǔ),再比如第三方支付如何保證減庫(kù)存和付款時(shí)的狀態(tài)一致性,這些也是很大的挑戰(zhàn)。

    高可用

    盯過(guò)秒殺流量監(jiān)控的話(huà),會(huì)發(fā)現(xiàn)它不是一條蜿蜒而起的曲線(xiàn),而是一條挺拔的直線(xiàn),這是因?yàn)槊霘⒄?qǐng)求高度集中于某一特定的時(shí)間點(diǎn)。這樣一來(lái)就會(huì)造成一個(gè)特別高的零點(diǎn)峰值,而對(duì)資源的消耗也幾乎是瞬時(shí)的。所以秒殺系統(tǒng)的可用性保護(hù)是不可或缺的。

    1 流量削峰

    對(duì)于秒殺的目標(biāo)場(chǎng)景,最終能夠搶到商品的人數(shù)是固定的,無(wú)論 100 人和 10000 人參加結(jié)果都是一樣的,即有效請(qǐng)求額度是有限的。并發(fā)度越高,無(wú)效請(qǐng)求也就越多。但秒殺作為一種商業(yè)營(yíng)銷(xiāo)手段,活動(dòng)開(kāi)始之前是希望有更多的人來(lái)刷頁(yè)面,只是真正開(kāi)始后,秒殺請(qǐng)求不是越多越好。因此系統(tǒng)可以設(shè)計(jì)一些規(guī)則,人為的延緩秒殺請(qǐng)求,甚至可以過(guò)濾掉一些無(wú)效請(qǐng)求。

    1.1 答題

    早期秒殺只是簡(jiǎn)單的點(diǎn)擊秒殺按鈕,后來(lái)才增加了答題。為什么要增加答題呢?主要是通過(guò)提升購(gòu)買(mǎi)的復(fù)雜度,達(dá)到兩個(gè)目的:

    • 防止作弊。早期秒殺器比較猖獗,存在惡意買(mǎi)家或競(jìng)爭(zhēng)對(duì)手使用秒殺器掃貨的情況,商家沒(méi)有達(dá)到營(yíng)銷(xiāo)的目的,所以增加答題來(lái)進(jìn)行限制。
    • 延緩請(qǐng)求。零點(diǎn)流量的起效時(shí)間是毫秒級(jí)的,答題可以人為拉長(zhǎng)峰值下單的時(shí)長(zhǎng),由之前的 <1s 延長(zhǎng)到 <10s。這個(gè)時(shí)間對(duì)于服務(wù)端非常重要,會(huì)大大減輕高峰期并發(fā)壓力;另外,由于請(qǐng)求具有先后順序,答題后置的請(qǐng)求到來(lái)時(shí)可能已經(jīng)沒(méi)有庫(kù)存了,因此根本無(wú)法下單,此階段落到數(shù)據(jù)層真正的寫(xiě)也就非常有限了。

    需要注意的是,答題除了做正確性驗(yàn)證,還需要對(duì)提交時(shí)間做驗(yàn)證,比如<1s 人為操作的可能性就很小,可以進(jìn)一步防止機(jī)器答題的情況。

    答題目前已經(jīng)使用的非常普遍了,本質(zhì)是通過(guò)在入口層削減流量,從而讓系統(tǒng)更好地支撐瞬時(shí)峰值。

    1.2 排隊(duì)

    最為常見(jiàn)的削峰方案是使用消息隊(duì)列,通過(guò)把同步的直接調(diào)用轉(zhuǎn)換成異步的間接推送緩沖瞬時(shí)流量。除了消息隊(duì)列,類(lèi)似的排隊(duì)方案還有很多,例如:

    • 線(xiàn)程池加鎖等待
    • 本地內(nèi)存蓄洪等待
    • 本地文件序列化寫(xiě),再順序讀

    排隊(duì)方式的弊端也是顯而易見(jiàn)的,主要有兩點(diǎn):

    • 請(qǐng)求積壓。流量高峰如果長(zhǎng)時(shí)間持續(xù),達(dá)到了隊(duì)列的水位上限,隊(duì)列同樣會(huì)被壓垮,這樣雖然保護(hù)了下游系統(tǒng),但是和請(qǐng)求直接丟棄也沒(méi)多大區(qū)別。
    • 用戶(hù)體驗(yàn)。異步推送的實(shí)時(shí)性和有序性自然是比不上同步調(diào)用的,由此可能出現(xiàn)請(qǐng)求先發(fā)后至的情況,影響部分敏感用戶(hù)的購(gòu)物體驗(yàn)。

    排隊(duì)本質(zhì)是在業(yè)務(wù)層將一步操作轉(zhuǎn)變成兩步操作,從而起到緩沖的作用,但鑒于此種方式的弊端,最終還是要基于業(yè)務(wù)量級(jí)和秒殺場(chǎng)景做出妥協(xié)和平衡。

    1.3 過(guò)濾

    過(guò)濾的核心結(jié)構(gòu)在于分層,通過(guò)在不同層次過(guò)濾掉無(wú)效請(qǐng)求,達(dá)到數(shù)據(jù)讀寫(xiě)的精準(zhǔn)觸發(fā)。常見(jiàn)的過(guò)濾主要有以下幾層:

  • 讀限流:對(duì)讀請(qǐng)求做限流保護(hù),將超出系統(tǒng)承載能力的請(qǐng)求過(guò)濾掉。
  • 讀緩存:對(duì)讀請(qǐng)求做數(shù)據(jù)緩存,將重復(fù)的請(qǐng)求過(guò)濾掉。
  • 寫(xiě)限流:對(duì)寫(xiě)請(qǐng)求做限流保護(hù),將超出系統(tǒng)承載能力的請(qǐng)求過(guò)濾掉。
  • 寫(xiě)校驗(yàn):對(duì)寫(xiě)請(qǐng)求做一致性校驗(yàn),只保留最終的有效數(shù)據(jù)。
  • 過(guò)濾的核心目的是通過(guò)減少無(wú)效請(qǐng)求的數(shù)據(jù)IO保障有效請(qǐng)求的IO性能。

    1.4 小結(jié)

    系統(tǒng)可以通過(guò)入口層的答題、業(yè)務(wù)層的排隊(duì)、數(shù)據(jù)層的過(guò)濾達(dá)到流量削峰的目的,本質(zhì)是在尋求商業(yè)訴求與架構(gòu)性能之間的平衡。另外,新的削峰手段也層出不窮,以業(yè)務(wù)切入居多,比如零點(diǎn)大促時(shí)同步發(fā)放優(yōu)惠券或發(fā)起抽獎(jiǎng)活動(dòng),將一部分流量分散到其他系統(tǒng),這樣也能起到削峰的作用。

    2 Plan B

    當(dāng)一個(gè)系統(tǒng)面臨持續(xù)的高峰流量時(shí),其實(shí)是很難單靠自身調(diào)整來(lái)恢復(fù)狀態(tài)的,日常運(yùn)維沒(méi)有人能夠預(yù)估所有情況,意外總是無(wú)法避免。尤其在秒殺這一場(chǎng)景下,為了保證系統(tǒng)的高可用,必須設(shè)計(jì)一個(gè) Plan B 方案來(lái)進(jìn)行兜底。

    高可用建設(shè),其實(shí)是一個(gè)系統(tǒng)工程,貫穿在系統(tǒng)建設(shè)的整個(gè)生命周期。

    具體來(lái)說(shuō),系統(tǒng)的高可用建設(shè)涉及架構(gòu)階段、編碼階段、測(cè)試階段、發(fā)布階段、運(yùn)行階段,以及故障發(fā)生時(shí),逐一進(jìn)行分析:

    • 架構(gòu)階段:考慮系統(tǒng)的可擴(kuò)展性和容錯(cuò)性,避免出現(xiàn)單點(diǎn)問(wèn)題。例如多地單元化部署,即使某個(gè)IDC甚至地市出現(xiàn)故障,仍不會(huì)影響系統(tǒng)運(yùn)轉(zhuǎn)。
    • 編碼階段:保證代碼的健壯性,例如RPC調(diào)用時(shí),設(shè)置合理的超時(shí)退出機(jī)制,防止被其他系統(tǒng)拖垮,同時(shí)也要對(duì)無(wú)法預(yù)料的返回錯(cuò)誤進(jìn)行默認(rèn)的處理。
    • 測(cè)試階段:保證CI的覆蓋度以及Sonar的容錯(cuò)率,對(duì)基礎(chǔ)質(zhì)量進(jìn)行二次校驗(yàn),并定期產(chǎn)出整體質(zhì)量的趨勢(shì)報(bào)告。
    • 發(fā)布階段:系統(tǒng)部署最容易暴露錯(cuò)誤,因此要有前置的checklist模版、中置的上下游周知機(jī)制以及后置的回滾機(jī)制。
    • 運(yùn)行階段:系統(tǒng)多數(shù)時(shí)間處于運(yùn)行態(tài),最重要的是運(yùn)行時(shí)的實(shí)時(shí)監(jiān)控,及時(shí)發(fā)現(xiàn)問(wèn)題、準(zhǔn)確報(bào)警并能提供詳細(xì)數(shù)據(jù),以便排查問(wèn)題。
    • 故障發(fā)生:首要目標(biāo)是及時(shí)止損,防止影響面擴(kuò)大,然后定位原因、解決問(wèn)題,最后恢復(fù)服務(wù)。

    對(duì)于日常運(yùn)維而言,高可用更多是針對(duì)運(yùn)行階段而言的,此階段需要額外進(jìn)行加強(qiáng)建設(shè),主要有以下幾種手段:

    • 預(yù)防:建立常態(tài)壓測(cè)體系,定期對(duì)服務(wù)進(jìn)行單點(diǎn)壓測(cè)以及全鏈路壓測(cè),摸排水位。
    • 管控:做好線(xiàn)上運(yùn)行的降級(jí)、限流和熔斷保護(hù)。需要注意的是,無(wú)論是限流、降級(jí)還是熔斷,對(duì)業(yè)務(wù)都是有損的,所以在進(jìn)行操作前,一定要和上下游業(yè)務(wù)確認(rèn)好再進(jìn)行。就拿限流來(lái)說(shuō),哪些業(yè)務(wù)可以限、什么情況下限、限流時(shí)間多長(zhǎng)、什么情況下進(jìn)行恢復(fù),都要和業(yè)務(wù)方反復(fù)確認(rèn)。
    • 監(jiān)控:建立性能基線(xiàn),記錄性能的變化趨勢(shì);建立報(bào)警體系,發(fā)現(xiàn)問(wèn)題及時(shí)預(yù)警。
    • 恢復(fù):遇到故障能夠及時(shí)止損,并提供快速的數(shù)據(jù)訂正工具,不一定要好,但一定要有。

    在系統(tǒng)建設(shè)的整個(gè)生命周期中,每個(gè)環(huán)節(jié)中都可能犯錯(cuò),甚至有些環(huán)節(jié)犯的錯(cuò),后面是無(wú)法彌補(bǔ)的或者成本極高的。所以高可用是一個(gè)系統(tǒng)工程,必須放到整個(gè)生命周期中進(jìn)行全面考慮。同時(shí),考慮到服務(wù)的增長(zhǎng)性,高可用更需要長(zhǎng)期規(guī)劃并進(jìn)行體系化建設(shè)。

    3 總結(jié)一下

    高可用其實(shí)是在說(shuō) “穩(wěn)定性”,穩(wěn)定性是一個(gè)平時(shí)不重要,但出了問(wèn)題就要命的事情,然而它的落地又是一個(gè)問(wèn)題——平時(shí)業(yè)務(wù)發(fā)展良好,穩(wěn)定性建設(shè)就會(huì)降級(jí)給業(yè)務(wù)讓路。解決這個(gè)問(wèn)題必須在組織上有所保障,比如讓業(yè)務(wù)負(fù)責(zé)人背上穩(wěn)定性績(jī)效指標(biāo),同時(shí)在部門(mén)中建立穩(wěn)定性建設(shè)小組,小組成員由每條線(xiàn)的核心力量兼任,績(jī)效由穩(wěn)定性負(fù)責(zé)人來(lái)打分,這樣就可以把體系化的建設(shè)任務(wù)落實(shí)到具體的業(yè)務(wù)系統(tǒng)中了。

    個(gè)人總結(jié)

    一個(gè)秒殺系統(tǒng)的設(shè)計(jì),可以根據(jù)不同級(jí)別的流量,由簡(jiǎn)單到復(fù)雜打造出不同的架構(gòu),本質(zhì)是各方面的取舍和權(quán)衡。當(dāng)然,你可能注意到,本文并沒(méi)有涉及具體的選型方案,因?yàn)檫@些對(duì)于架構(gòu)來(lái)說(shuō)并不重要,作為架構(gòu)師,應(yīng)該時(shí)刻提醒自己主線(xiàn)是什么。

    同時(shí)也在這里抽象、提煉一下,主要是個(gè)人對(duì)于秒殺設(shè)計(jì)的提綱式整理,方便各位同學(xué)進(jìn)行參考。

    閱讀目錄(置頂)(長(zhǎng)期更新計(jì)算機(jī)領(lǐng)域知識(shí))

    閱讀目錄(置頂)(長(zhǎng)期更新計(jì)算機(jī)領(lǐng)域知識(shí))

    閱讀目錄(置頂)(長(zhǎng)期科技領(lǐng)域知識(shí))

    歌謠帶你看java面試題

    總結(jié)

    以上是生活随笔為你收集整理的第一百一十一期:思考 | 一文说透秒杀系统如何设计的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

    中文字幕频道 | av在线专区 | 欧美aⅴ在线观看 | 激情av五月婷婷 | 中文字幕a在线 | 成年人在线观看 | 亚洲涩涩网站 | 久久成人毛片 | 日韩综合视频在线观看 | 日本精品一区二区三区在线观看 | 国产精品嫩草69影院 | 久久九精品 | 操操操人人| 亚洲精品国久久99热 | 亚洲成人av在线 | 亚洲视频h | 免费视频久久 | 中文字幕免费一区二区 | 久久这里只有精品9 | 国产精品自产拍 | 日韩经典一区二区三区 | 日韩免费精品 | 欧美电影黄色 | 中文字幕在线国产 | 日本中文字幕网站 | 欧美日韩中文另类 | 亚洲在线视频网站 | 国产无吗一区二区三区在线欢 | 日本久久电影 | 国产成人综合在线观看 | 久久精品美女视频 | 国产亚洲精品久久久久久电影 | 欧美调教网站 | 在线观看精品一区 | 国产精品mv在线观看 | 免费观看全黄做爰大片国产 | 2022中文字幕在线观看 | 精品国产一区二区三区四区在线观看 | 韩国av三级| 日日夜夜狠狠操 | 免费a现在观看 | av一区二区三区在线播放 | 国产成人一二三 | 天天天天天天操 | 五月婷婷六月丁香激情 | 人人澡人人爱 | 韩国av不卡 | 天天综合91 | 深爱婷婷久久综合 | 日日干干夜夜 | 国产九色在线播放九色 | wwxxx日本| aa一级片 | 最近日本韩国中文字幕 | 97涩涩视频 | 黄网站a| 亚洲少妇自拍 | 国产一级片一区二区三区 | 日韩精品免费在线观看视频 | 国语对白少妇爽91 | 久久无码精品一区二区三区 | 欧美一区二区三区特黄 | 99爱精品在线 | 808电影| 久久久精品欧美一区二区免费 | 一区二区三区精品久久久 | 欧美另类视频 | 极品久久久久久久 | 日日夜夜精品免费观看 | 麻豆91精品91久久久 | 久久久久黄 | 精品视频99| 国产精品 日韩精品 | 91麻豆高清视频 | av在线网站大全 | 日本公妇在线观看 | 久久av中文字幕片 | 亚洲成人午夜在线 | 色综合久久88色综合天天人守婷 | 黄网站www | 国产小视频精品 | 婷婷激情影院 | 六月丁香综合网 | 中文字幕xxxx | 欧美成人h版在线观看 | 国产成人精品在线 | 欧美性网站 | 69视频在线 | 97超在线| 久久久精品日本 | 99热这里只有精品久久 | 五月天亚洲综合小说网 | 在线欧美a| 91av精品 | 国产日韩精品在线观看 | 精品久久福利 | 日韩激情在线 | 911亚洲精品第一 | 中文字幕中文 | 在线观看视频精品 | 天天天天天天干 | 狠狠狠色丁香婷婷综合激情 | 久久久精品国产免费观看同学 | 国产精品久久综合 | 美女网站视频色 | 久久久伦理 | 亚洲国产精品成人av | 国产精品99免视看9 国产精品毛片一区视频 | 婷婷国产一区二区三区 | 99久久精品国产欧美主题曲 | 成人91在线观看 | 蜜桃视频在线视频 | 天天操天天操 | 久久精品—区二区三区 | 欧美日韩不卡一区二区 | 91麻豆精品 | 成片人卡1卡2卡3手机免费看 | 亚洲免费一级电影 | 96超碰在线| 日韩网站在线看片你懂的 | 国产精品免费久久久久影院仙踪林 | 日韩免费av网址 | 亚洲国产成人精品在线观看 | 四虎免费在线观看视频 | 中文字幕色在线视频 | 久久久免费少妇 | 久久国产露脸精品国产 | 国产激情电影综合在线看 | 成人黄色电影在线播放 | 久久免视频 | 日韩激情小视频 | 麻豆视频国产精品 | 视频在线国产 | 蜜臀av.com| 天海翼一区二区三区免费 | 国产精品久久久久av福利动漫 | 日韩电影精品一区 | 久久久久免费电影 | 亚洲精品久久久久999中文字幕 | 制服丝袜在线91 | 激情五月婷婷综合网 | 狠狠躁夜夜躁人人爽超碰91 | 久久精品站 | 国产麻豆剧果冻传媒视频播放量 | 日日干干夜夜 | 亚洲精品动漫在线 | 911精品美国片911久久久 | 超碰在线98 | 亚洲精品欧美专区 | 亚洲精品国产欧美在线观看 | 久草精品在线观看 | 欧美久久久久久久久久久久 | 在线日韩精品视频 | 国产男女无遮挡猛进猛出在线观看 | 91爱爱网址 | 六月丁香婷婷网 | 午夜10000 | 日韩精品一区二区不卡 | 久久久久久免费毛片精品 | 成人a在线观看高清电影 | 亚洲一区二区三区毛片 | 国产精品久久久久久久99 | 国产一区二区三区在线免费观看 | 亚洲国产中文字幕在线观看 | 成人精品影视 | 波多野结衣一区二区三区中文字幕 | 欧美二区视频 | 久久久久欧美精品999 | 一区二区三区手机在线观看 | 天天爽夜夜爽人人爽曰av | 人人澡澡人人 | 岛国大片免费视频 | 亚洲综合视频在线观看 | 国产91九色蝌蚪 | 国产精品成人品 | av中文字幕在线观看网站 | 婷婷在线五月 | 亚洲精品视频国产 | 免费在线观看91 | 一区二区三区四区在线免费观看 | 五月婷婷丁香在线观看 | 免费视频久久久久久久 | 国产精品久久电影观看 | 欧美一区二区三区免费观看 | 久久99久国产精品黄毛片入口 | 97日日碰人人模人人澡分享吧 | 日韩大片在线看 | 欧美成人精品三级在线观看播放 | 婷婷视频在线观看 | 久久久久欠精品国产毛片国产毛生 | 欧美一区二区三区免费观看 | 色婷婷六月天 | 99热最新| 国产精品国产亚洲精品看不卡15 | 欧美激精品 | 国产精品久久久久久69 | 夜夜操狠狠操 | 人人爽人人搞 | 亚洲成人黄色在线观看 | 黄色一级在线免费观看 | 日本aa在线 | 国产高清精品在线 | 91久久久久久国产精品 | 欧美一区日韩一区 | 一本一本久久a久久精品综合妖精 | 7777xxxx| 粉嫩av一区二区三区免费 | 精品一区二区三区香蕉蜜桃 | 国产精品第 | 在线观看午夜 | 国产在线观看二区 | 国产精品入口麻豆www | 亚洲专区视频在线观看 | 91高清在线 | 国产字幕在线播放 | 99热.com| 热久久电影 | 国产精品一区在线播放 | 91免费视频网站在线观看 | 天天摸天天操天天爽 | 精品国产诱惑 | 色视频国产直接看 | 国产精品mv在线观看 | 日韩中字在线观看 | 一级一片免费视频 | 免费观看国产精品视频 | 久久99国产视频 | 一区二区三区三区在线 | 精品成人国产 | 国产精品久久久久久久久久不蜜月 | 日韩二三区 | 国产九色在线播放九色 | 日本精品午夜 | 亚洲一区二区三区四区精品 | 天天干天天干天天 | 91福利视频久久久久 | 婷婷精品在线视频 | 中文字幕中文 | 中文字幕亚洲精品在线观看 | 日韩中文字幕免费视频 | 黄色大片国产 | 成人黄色大片在线免费观看 | 国产黄色精品网站 | av成人免费网站 | 一区二区三区在线观看 | 日韩免费在线视频观看 | 日韩欧美视频二区 | 激情 一区二区 | 超碰在97 | 久久精品99国产精品酒店日本 | 国产美女黄网站免费 | 丁香婷婷激情国产高清秒播 | 国产91av视频在线观看 | 亚洲永久字幕 | 中文字幕一区二区三区久久 | 91视频高清完整版 | 99精品一区二区 | 九九免费视频 | 香蕉影院在线播放 | 天天干天天做 | 亚洲五月婷 | 91av视频在线播放 | 色国产在线 | 久久久91精品国产 | 9幺看片| 亚洲一区视频在线播放 | 天躁狠狠躁 | 最近免费中文字幕大全高清10 | 日韩欧美精品在线 | 国产精品久久久久一区二区 | 天天综合色天天综合 | 国产精品2020 | 欧美性极品xxxx娇小 | 黄网站色成年免费观看 | 成年人视频免费在线播放 | 色婷婷a| 国产a高清| 中文在线免费一区三区 | 久久久久久久免费观看 | 99久久er热在这里只有精品66 | 日韩高清在线看 | 欧美日韩1区2区 | 亚洲黄色成人 | 婷婷www| 在线 成人 | 91av视频免费在线观看 | 亚洲专区 国产精品 | 久久国产美女视频 | 亚洲婷婷丁香 | 永久免费在线 | 99视频国产在线 | 免费av网址大全 | 成人黄色影片在线 | 久久久久久久久精 | 国产丝袜制服在线 | 波多野结衣一区二区三区中文字幕 | 欧美最猛性xxxxx(亚洲精品) | 色av男人的天堂免费在线 | 国产中文字幕视频在线 | 九九激情视频 | 99久久婷婷国产 | 成人久久18免费网站麻豆 | 欧美日韩国产综合网 | 激情www | 天天天干天天射天天天操 | 精品人人人 | 国产精品成人一区二区 | 国产精品剧情在线亚洲 | 99久久国产免费,99久久国产免费大片 | 日韩美在线| 日韩av线观看 | 成人久久久久久久久久 | 国产精品2区 | 日韩在线精品一区 | 免费黄色网址大全 | 久久精品亚洲一区二区三区观看模式 | 天天干天天操天天入 | 亚洲精品免费在线观看 | 色999精品 | 精品国产一区二区三区久久影院 | 久久一区二区三区日韩 | 精品久久网 | 婷婷激情小说网 | 久久精品99久久久久久 | 色婷婷伊人 | 亚洲少妇影院 | 日韩午夜电影院 | 91视频中文字幕 | 亚洲精品国产精品国自产在线 | 久久福利影视 | 91精品成人久久 | 99这里只有| 99视频在线看 | 久久av电影| 午夜影院三级 | 97综合视频 | 欧美日韩高清在线一区 | 国产亚洲精品久久久久久网站 | 久久欧美在线电影 | 狠狠狠狠狠狠狠 | 国内一级片在线观看 | 狠狠躁夜夜a产精品视频 | 成人国产精品av | www.久久com | 丁香婷婷深情五月亚洲 | 91麻豆精品一区二区三区 | 中文字幕在线日 | 国产一级淫片免费看 | 日韩videos高潮hd | 久久综合婷婷综合 | 亚洲综合成人av | 亚洲一区二区三区四区精品 | 日韩丝袜视频 | 亚洲国产理论片 | 免费视频一区二区 | 国产精品一区欧美 | 97视频网址 | 深爱激情五月综合 | 久久福利精品 | 日韩av电影免费观看 | 日韩天天综合 | 天堂av在线免费 | 黄色片免费电影 | 国产在线精品区 | 欧美另类xxxx | 美女视频黄是免费的 | 免费黄色av片 | 免费看片成年人 | 中文久久精品 | 在线三级中文 | 日韩在线视频一区二区三区 | 91精品国产99久久久久久红楼 | 久久草在线视频国产 | 久久草在线精品 | 中文字幕国产一区二区 | 亚洲精品成人av在线 | 在线观看爱爱视频 | 五月天激情综合 | 精品国产欧美 | 色综合久久久久久中文网 | 免费观看黄 | 在线观看不卡视频 | 99视频在线精品免费观看2 | 久久综合干 | 激情久久五月 | 亚洲精品久久久蜜臀下载官网 | 91精品爽啪蜜夜国产在线播放 | 亚洲国产视频a | 天天插天天狠天天透 | 国产精品久久久久一区二区三区共 | 99久久夜色精品国产亚洲96 | 国产综合精品一区二区三区 | 天天玩天天操天天射 | 欧美日韩亚洲第一页 | 99久久一区 | 中文字幕av在线播放 | 日韩视频免费 | 欧美日本不卡高清 | av在线播放快速免费阴 | 五月婷婷久| 黄a在线观看 | 亚洲专区视频在线观看 | av888av.com| 亚洲视频在线视频 | 日韩欧美高清在线 | 91免费观看视频网站 | 综合在线观看色 | 天天操天天能 | 综合国产在线 | 日韩免费观看一区二区三区 | 欧美大片大全 | 在线你懂的视频 | 视频二区在线 | 中文资源在线观看 | 美腿丝袜av| 久久精品中文字幕一区二区三区 | 色国产在线 | 亚洲精品乱码久久久久久 | 国产精品免费一区二区三区 | 亚洲成av人片在线观看www | 国产在线精品二区 | 国产免费高清视频 | 国产成人久久av免费高清密臂 | 成年人三级网站 | 亚洲精品动漫在线 | av日韩国产 | 在线观看日本高清mv视频 | 国产亚洲精品xxoo | 人人添人人 | 中文字幕 第二区 | 欧美婷婷综合 | 欧美国产91 | 亚洲欧美日本国产 | 国产精品 日韩精品 | 中文欧美字幕免费 | www免费网站在线观看 | 亚洲mv大片欧洲mv大片免费 | 香蕉网在线 | 亚洲一区二区视频在线 | 久久免费视频1 | 激情五月婷婷综合网 | 亚洲国产剧情av | 91精品在线麻豆 | 亚洲激情久久 | 色综合久久五月天 | 久久99国产精品自在自在app | 毛片在线播放网址 | 二区三区在线视频 | 日韩高清成人 | 国产精品白丝jk白祙 | 狠狠色婷婷丁香六月 | 在线免费国产视频 | 色婷久久 | 91在线免费播放视频 | 久草视频播放 | 97视频在线 | 91精品国产高清自在线观看 | 色综久久 | 亚洲成av人影院 | 日韩毛片精品 | 国产中文字幕在线 | 九色最新网址 | 久久人人爽视频 | 日av免费| 久草视频免费在线播放 | 92av视频| 日韩免费成人 | 中文字幕xxxx| 亚洲精品在线观看视频 | 国内久久久久久 | 国产伦理久久精品久久久久_ | av一本久道久久波多野结衣 | 婷婷丁香狠狠爱 | 91视频这里只有精品 | 在线观看视频黄 | www五月天com | 日一日操一操 | 久久国产精品一区二区三区四区 | 91在线公开视频 | 国内三级在线观看 | 伊人伊成久久人综合网小说 | 97视频免费在线观看 | 成人午夜剧场在线观看 | 91av视频在线播放 | 制服丝袜一区二区 | 欧美福利视频一区 | 日韩日韩日韩日韩 | 2023av在线| 91久久丝袜国产露脸动漫 | 91看毛片 | 婷婷色综 | 涩涩资源网 | 精品久久五月天 | 97色资源| 六月激情久久 | 97精品免费视频 | 日日爽天天 | 日韩在线视频国产 | a v在线视频 | 国产黑丝一区二区 | 成人午夜影院在线观看 | 九精品| 中文在线a天堂 | 92国产精品久久久久首页 | 国产一级特黄电影 | 中文av日韩 | 人人澡人摸人人添学生av | 精品亚洲午夜久久久久91 | 精品一区二区免费 | 国产不卡精品 | 久久理论视频 | 五月婷婷综合激情 | 在线观看精品一区 | 免费高清在线观看电视网站 | 日韩欧美一级二级 | 在线视频成人 | 黄色网中文字幕 | 香蕉在线视频观看 | 国产精品嫩草69影院 | 亚洲欧美日韩一区二区三区在线观看 | 婷婷在线视频 | 国产日韩亚洲 | 亚色视频在线观看 | 91网免费观看 | 久久电影网站中文字幕 | 91av综合| 国产乱码精品一区二区蜜臀 | 视频在线99 | 337p西西人体大胆瓣开下部 | 日本久草电影 | 97视频免费观看 | 国产精品久久久久久久久岛 | 成人一区在线观看 | 一个色综合网站 | 天天色天天上天天操 | 97人人模人人爽人人喊中文字 | 日本 在线 视频 中文 有码 | 久久久久久国产一区二区三区 | 亚洲专区免费观看 | 久日视频 | 亚洲欧美国产精品va在线观看 | 国产精品资源网 | 成人午夜在线观看 | 久久人91精品久久久久久不卡 | 91大神精品视频在线观看 | 日韩久久在线 | 视频二区| 国产精品国产自产拍高清av | 精品视频在线播放 | 91九色成人 | 五月天久久婷婷 | 国产精品久久久久久久久久免费看 | 西西444www大胆高清视频 | 日韩电影在线观看一区二区 | 国产三级视频在线 | 亚洲精品在 | 美女在线观看av | 国产免费又爽又刺激在线观看 | 国产成人精品久久久久蜜臀 | 国产91成人在在线播放 | 日日干日日色 | 国产免费嫩草影院 | 一区二区三区四区五区在线 | 日韩黄在线观看 | 国产精品免费久久久久久久久久中文 | 亚洲免费av观看 | 亚洲一级黄色 | 欧美日韩精品区 | 亚洲综合色视频 | 黄色在线观看免费网站 | 欧美激情综合色综合啪啪五月 | 91网免费看| 丁香一区二区 | 天天射,天天干 | 国产精品久久久久久久久久免费看 | 久久理伦片 | 狠狠撸电影 | 国产免费一区二区三区网站免费 | av中文字幕在线看 | 天天爽夜夜操 | 日韩av看片 | 精品国产乱码久久久久久1区2匹 | 天无日天天操天天干 | 欧美一级片免费在线观看 | 97av.com| 免费观看av网站 | 亚洲精品大全 | 成人91在线 | 91精品一| 免费观看版| 色丁香婷婷 | 在线日韩精品视频 | 免费看污污视频的网站 | 91av视频在线播放 | av高清影院 | 久久精品视频网站 | 日韩午夜大片 | 亚洲激精日韩激精欧美精品 | 国产精品精品久久久久久 | 久久免费精品国产 | 婷婷 中文字幕 | 欧美日韩免费观看一区=区三区 | 国产一级不卡视频 | 黄色毛片在线 | 日韩在线免费视频观看 | 九九免费在线观看视频 | 日韩精品免费在线观看 | 特级黄色片免费看 | 久久精品99国产精品亚洲最刺激 | 亚洲午夜精品一区 | 97超在线视频 | 久久综合综合久久综合 | 国产精品精品国产 | 超碰夜夜 | 亚洲成人二区 | 久久久久久久国产精品影院 | 日韩色综合网 | 免费看短 | 久久久午夜剧场 | 亚洲国产精品500在线观看 | 午夜精品久久久久 | 成av人电影 | 国产精品久久久久久久久久ktv | 免费看黄电影 | 美女福利视频一区二区 | 久久久久久久久久影院 | 精品久久影院 | 日本性生活免费看 | 中文在线字幕免费观看 | 992tv人人网tv亚洲精品 | 免费网站观看www在线观看 | 四虎在线观看网址 | 黄色大片中国 | 中文字幕之中文字幕 | 在线亚洲播放 | 久久99久久99精品免观看粉嫩 | 国产一区高清在线 | 五月花丁香婷婷 | 最新婷婷色 | 久久久久亚洲精品男人的天堂 | 99视频免费播放 | 亚洲精品视频在 | 国产性天天综合网 | 激情视频免费在线 | 黄色精品久久 | 成人福利在线播放 | 一区二区三区www | 色亚洲激情 | 天天se天天cao天天干 | 最近中文字幕视频网 | 在线成人免费av | 亚洲在线日韩 | 日韩理论在线视频 | 欧美性极品xxxx娇小 | 日韩欧美国产精品 | 456免费视频 | 色视频一区 | 国产男女爽爽爽免费视频 | 亚洲高清视频在线 | 成人精品一区二区三区电影免费 | 欧美一级性生活视频 | 中文字幕第一页在线 | 国产午夜精品久久久久久久久久 | 狠狠干狠狠艹 | 国产电影一区二区三区四区 | 婷婷五天天在线视频 | 国产黄免费 | 日日草夜夜操 | 十八岁以下禁止观看的1000个网站 | 深爱激情av| 日韩国产高清在线 | 日日干日日 | 激情婷婷欧美 | 一区二区三区四区五区在线视频 | 99精品热视频只有精品10 | 91色偷偷 | 成 人 免费 黄 色 视频 | 国产91精品一区二区绿帽 | 久久国内视频 | 国产精品日韩在线 | 超碰在线观看av | 国产亚洲va综合人人澡精品 | 区一区二区三在线观看 | 人人玩人人添人人澡97 | 美女网站视频久久 | 精品在线免费观看 | 中文字幕在线观看视频一区二区三区 | 天天草天天爽 | 日韩视 | 国产精品永久久久久久久www | 日日干激情五月 | 色视频在线观看免费 | 久久五月天综合 | 亚洲www天堂com | 国产精品麻豆一区二区三区 | 91av在线国产| www五月天com | 中文字幕免费高清在线 | 久一久久| 久久国产精品久久久久 | 波多在线视频 | 久保带人 | 国产女教师精品久久av | 国产免费xvideos视频入口 | 国产区精品 | 亚洲日本在线视频观看 | 天天看天天干天天操 | 97人人澡人人添人人爽超碰 | 操夜夜操 | 在线视频你懂得 | 91免费看黄色 | 午夜精品一区二区三区在线播放 | 天天摸天天操天天舔 | 国产精品久久久久999 | 久久涩涩网站 | 91视频91自拍 | 中文字幕一区二区三区乱码在线 | 久草视频资源 | 黄色a在线观看 | 久久激情视频免费观看 | www.久久爱.cn| 91精品国产综合久久福利 | 亚洲aⅴ免费在线观看 | 日韩在线观看a | 久久黄色影院 | 五月婷婷在线播放 | 9在线观看免费高清完整版 玖玖爱免费视频 | 成人午夜精品久久久久久久3d | 久久深夜福利免费观看 | 免费观看黄色av | www.色午夜| 国产黄a三级 | 国产精品九九久久99视频 | 天天拍天天爽 | av三区在线 | 中文字幕av全部资源www中文字幕在线观看 | 亚洲午夜久久久久久久久久久 | 亚洲,播放 | 九九免费观看视频 | 欧美专区日韩专区 | 欧美精品久久久久 | 中文字幕精品一区二区三区电影 | 天天天操天天天干 | 九九九免费视频 | 综合中文字幕 | 精品在线小视频 | 色综合久久天天 | 国产美女主播精品一区二区三区 | 蜜臀av免费一区二区三区 | 蜜臀av性久久久久蜜臀aⅴ流畅 | 色婷婷av在线 | 91探花国产综合在线精品 | 国产拍在线 | 国产精品嫩草影院99网站 | 亚洲综合精品在线 | 狠狠色狠狠色综合系列 | 久草在线中文888 | 久草在线视频免赞 | 国产精品一区二区av麻豆 | 国产成人精品午夜在线播放 | 粉嫩高清一区二区三区 | 国产小视频在线免费观看视频 | 亚洲va欧美va人人爽 | av中文字幕在线免费观看 | 国产精品 中文字幕 亚洲 欧美 | 中文 一区二区 | 亚洲欧美国产精品18p | 国产视频网站在线观看 | 99久久精品国产一区二区三区 | 在线观看久草 | 国产中文字幕国产 | 蜜臀aⅴ国产精品久久久国产 | 国产日韩欧美在线播放 | 国产一级淫片免费看 | 成人精品在线 | 在线三级av | 97网在线观看 | 久草9视频 | 国产 亚洲 欧美 在线 | 亚洲综合在 | 国产午夜免费视频 | 一区二区三区免费在线 | 国产综合在线视频 | 日韩美av在线 | 超碰97免费 | 最新午夜 | 91亚洲精品乱码久久久久久蜜桃 | 十八岁以下禁止观看的1000个网站 | 黄污视频大全 | 玖玖在线观看视频 | 天堂成人在线 | 国产成在线观看免费视频 | 国产精品igao视频网网址 | 91精品视频在线 | 亚洲永久国产精品 | 国产美女网站在线观看 | 国产精品免费成人 | 丁香婷婷色月天 | av黄色成人 | 国产视频亚洲精品 | 国产免费一区二区三区最新6 | 国产一级做a爱片久久毛片a | 久久午夜色播影院免费高清 | 婷婷色影院 | av中文天堂 | 免费观看丰满少妇做爰 | 高清一区二区三区av | 二区精品视频 | 国产在线国偷精品产拍 | 国产精品久久麻豆 | 日韩综合视频在线观看 | 91精品欧美一区二区三区 | 久久精品一区二区三区四区 | 美女网站黄在线观看 | 免费观看www7722午夜电影 | 午夜视频色 | 天天躁天天躁天天躁婷 | 91成人欧美 | 日日夜夜狠狠干 | 中文字幕乱码一区二区 | 日本最新高清不卡中文字幕 | 日韩剧情| 日日激情| 91在线免费观看网站 | 欧美日韩在线观看一区二区三区 | www久久精品 | 久久综合影视 | 四虎国产精品永久在线国在线 | 日韩专区在线播放 | av在线播放国产 | 欧美精品久久久久久久久久久 | 亚洲精品国内 | 久久美女视频 | 91麻豆精品一区二区三区 | 欧美一级免费黄色片 | 久久免费精品 | 亚洲精品乱码久久久一二三 | 91国内在线 | 91精品久久久久久综合乱菊 | 天天综合导航 | 欧美午夜理伦三级在线观看 | av免费看网站 | 欧美资源在线观看 | 欧美中文字幕第一页 | 少妇bbw搡bbbb搡bbb | 99久久精品久久久久久动态片 | 中文字幕91在线 | 日韩福利在线观看 | 久久久国产影视 | 99日韩精品 | 久久一二三四 | 亚洲国产精品成人va在线观看 | 伊人官网 | 久久久久久久福利 | 精品久久久久久久久亚洲 | 国产99久久久精品 | 久久久久久久18 | 国产69精品久久久久99 | 日韩中字在线观看 | 91在线视频播放 | 日本女人的性生活视频 | 免费在线色电影 | 色五丁香| 日韩av片无码一区二区不卡电影 | 欧美射射射 | 日本在线观看黄色 | 日韩欧美视频一区 | 国产 日韩 欧美 在线 | 国产精品视频地址 | 四虎在线观看视频 | 日韩久久精品一区二区 | 在线三级播放 | 久久精品这里都是精品 | 久久国产高清视频 | 日韩精品一区二区三区免费观看视频 | www.99久久.com | 国产精品三级视频 | 国产黄色精品 | 成人午夜性影院 | 国产精品mv在线观看 | av福利在线免费观看 | 久久国语 | 亚洲成人免费在线 | 99精品国产亚洲 | 欧美一级欧美一级 | 一级黄色片在线观看 | 欧美在线久久 | 日本精品视频免费 | www.888.av| 日韩欧美xxx| 国产一区免费看 | 国产欧美三级 | 欧美动漫一区二区三区 | 欧美日韩在线观看一区二区三区 | 亚洲色图22p| av亚洲产国偷v产偷v自拍小说 | 四虎永久免费网站 | 国产一区二区在线播放视频 | 天天色天天操综合 | 超碰人人做 | 日韩毛片久久久 | 国产一级片免费观看 | 麻豆小视频在线观看 | 免费网址你懂的 | 黄色录像av | 国产男女无遮挡猛进猛出在线观看 | 五月天激情综合 | 天天做天天爱天天爽综合网 | 亚洲精品国产高清 | 麻豆视频免费播放 | 日韩欧美在线一区 | 久久色亚洲 | 少妇性xxx | 91福利社区在线观看 | 日本性久久 | 国产日产精品一区二区三区四区 | 国产精品免费久久久 | 青青河边草手机免费 | 奇米网网址 | 一区二区三区 中文字幕 | 久久国产精品二国产精品中国洋人 | 亚洲精品观看 | 91日韩精品| 一区二区视频免费在线观看 | 欧美日韩中字 | 欧美日韩99 | 天天天天色射综合 | 免费在线激情电影 | 亚洲九九 | 日韩免费在线一区 | 欧美日韩高清不卡 | 国产精品久久久久久久久久久久午夜 | 波多野结衣久久资源 | 久久免费观看少妇a级毛片 久久久久成人免费 | 99久久www| 国产精品一区二区久久国产 | 色婷婷在线播放 | 天天色天天 | 在线一区二区三区 | 国产伦精品一区二区三区四区视频 | 午夜色性片 | 国产亚洲精品福利 | 西西444www大胆无视频 | 人人看黄色 | 中文字幕免费观看视频 | 日本在线观看一区二区三区 | 成人免费共享视频 | 久色小说 | 精品久久一区二区 | 99精彩视频在线观看免费 | 免费精品 | 国产a高清 | 91视频高清免费 | 天天综合狠狠精品 | 亚洲专区欧美 | 九色porny真实丨国产18 | 网站免费黄 | 激情影音| www.伊人网 | 欧美日韩精品在线一区二区 | 日韩不卡高清 | 国产一区二区三区高清播放 | 黄色软件在线看 | 91免费高清观看 | 国产永久免费观看 | 中文字幕在线看视频国产 | 欧美日韩一区二区在线观看 | 99久久国产免费看 | 国产精品原创 | 最新av网站在线观看 | 欧美整片sss | www日韩在线 | 在线免费91| 99色在线播放 | av在线不卡观看 | 中文字幕乱码电影 | 久久免费视频这里只有精品 | 亚洲精品国产成人 | av成人动漫 | 欧美一区二区伦理片 | 亚洲成人av影片 | 在线看的av网站 | 日韩不卡高清视频 | 久久亚洲精品国产亚洲老地址 | 亚洲a免费 | 日韩在线国产 | 日本爱爱片 | 综合久久精品 | 欧美 亚洲 另类 激情 另类 | 天天干,天天操 | 国产精品毛片完整版 | 午夜影视av | 婷婷综合在线 | 婷婷午夜天| 99久久久国产精品 | 亚洲免费精彩视频 | 成人激情开心网 | 91精品视频一区二区三区 |