亚洲有码Av一区二区三区_国产高清啪啪免费视频_69色视频国产_国产成人人人爆出白浆_国产精品自在线拍国_一本久久伊人热热精品无码_午夜性刺激在线看免费带字幕_助力高品质欧美狂喷水_亚洲精品日韩无码_精品无码一区二区三区蜜臀_麻豆高清国产AV_熟妇人素无码中文字幕_亚洲a级片在线观看_国产欧美日韩三区_99国产成人高清在线观看

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運營的一線實戰(zhàn)洞察。

全文檢索與高頻更新沖突?三種架構(gòu)方案與選型指南

全文檢索與高頻更新沖突?三種架構(gòu)方案與選型指南 1. 先搞清矛盾根源全文檢索和高頻更新為什么天然打架幾年前我接手過一個電商后臺的搜索模塊業(yè)務(wù)方提了一個看似普通的需求商品標題、賣點、品類路徑要做全文檢索同時價格、庫存、狀態(tài)這類字段每天會被訂單系統(tǒng)和庫存系統(tǒng)高頻更新高峰期每秒上百次修改大促時還會翻幾倍。當時團隊的第一反應(yīng)是直接上 Elasticsearch 不就行了結(jié)果上線后第一周就出現(xiàn)了搜索延遲飆到 2 秒、CPU 頻繁打滿、段合并把寫入毛刺放大到無法接受的問題。那次經(jīng)歷讓我徹底明白一件事全文檢索和高頻更新放在一起不是加一臺機器能解決的存儲架構(gòu)必須從一開始就認真選型。先理解為什么這兩件事天然沖突。全文檢索依賴倒排索引而倒排索引為了追求查詢效率通常設(shè)計成不可變的。以 LuceneElasticsearch 的底層引擎為例一次文檔更新本質(zhì)上不是改掉那行數(shù)據(jù)而是把舊文檔標記為 deleted再寫入一個全新文檔。這個標記刪除 新寫入的動作落在磁盤上就是不斷產(chǎn)生新的小 segment 文件。后臺的 segment merge 線程會持續(xù)把這些小文件合并成大文件合并過程中又涉及 IO 和 CPU 的大量消耗。高頻更新對這套機制的沖擊是全方位的。你寫入越快refresh 產(chǎn)生的 segment 越多segment 越多查詢時需讀取的文件越多耗時自然上升merge 越頻繁CPU 和磁盤 IO 越緊張又反過來拖慢寫入。結(jié)果就是寫得更快查得更慢兩頭堵。更隱蔽的是被標記刪除的文檔并不會立刻釋放空間如果你的更新頻率遠大于新增頻率索引文件會越來越大磁盤占用虛高最后連緩存命中率都跟著下降。所以看到全文檢索 高頻更新這個組合第一反應(yīng)不應(yīng)該是選某個具體數(shù)據(jù)庫而是先搞清楚你真正的更新負載是什么樣的。這決定了后面所有技術(shù)選型的方向。我這篇文章會把常見的幾種架構(gòu)方案拆開來講包括單集群調(diào)優(yōu)、主存儲與檢索層分離、更新緩沖層設(shè)計以及它們各自適用的場景和實測表現(xiàn)希望對正在做技術(shù)選型的人有實際幫助。我理解很多人看到全文檢索就直接想到 Elasticsearch但 ES 默認配置是為讀多寫少、數(shù)據(jù)基本不變設(shè)計的。它的refresh_interval默認是 1 秒意味著每秒都可能把內(nèi)存中的索引緩沖刷成一個可查詢的 segment。這對索引構(gòu)建類的場景沒問題但如果是高頻更新每隔幾秒就有一大批文檔需要更新默認配置會制造大量碎片化 segment。避免這個問題的第一步是把索引刷新周期拉開同時理解這背后可見性與寫入成本的博弈。2. 選型前必答的四個問題實時性、一致性、數(shù)據(jù)規(guī)模、運維邊界架構(gòu)選型最忌諱一上來就討論用 MySQL 還是 ES、用 CDC 還是雙寫。我在做方案評審的時候習慣先讓團隊把下面四個問題用一句話回答清楚。這四個答案基本能鎖定 80% 的選型空間。第一個問題業(yè)務(wù)允許搜索結(jié)果的延遲是秒級還是毫秒級全文檢索的近實時特性決定了它天然有延遲。Elasticsearch 默認 1 秒 refresh意味著你寫入一條數(shù)據(jù)后最多 1 秒才能被搜到。如果業(yè)務(wù)要求用戶剛修改的商品標題必須立刻能搜到那 ES 單寫方案基本出局除非你能接受更復雜的實時性補償。反過來如果延遲 3 到 5 秒完全沒問題大多數(shù) B 端運營后臺、商品管理后臺都屬于這一類那 ES 的近實時機制反而能給你省下大量架構(gòu)成本。第二個問題更新后數(shù)據(jù)的一致性是強一致還是最終一致業(yè)務(wù)方嘴上說要一致但你要追問一句如果用戶搜到的商品價格是 3 秒前的會造成資損嗎會造成嚴重客訴嗎如果不會那就是典型的最終一致場景完全可以用異步鏈路。真正需要強一致的高頻更新場景比如秒殺庫存、銀行賬戶余額這些字段本來就不應(yīng)該放進全文檢索系統(tǒng)——它們應(yīng)該留在業(yè)務(wù)主庫或者放到 Redis 這類高性能存儲里檢索層只保存可搜索但不強一致的副本字段。第三個問題數(shù)據(jù)量級和更新比例是多少我見過一個團隊ES 集群只有 3 個節(jié)點但商品表每天有 2000 萬條記錄需要更新更新比例超過全量數(shù)據(jù)的 60%這已經(jīng)不是調(diào)優(yōu)能解決的了。你需要估算三件事全量文檔總數(shù)、日均更新文檔數(shù)、更新字段占整個文檔的比例。如果更新文檔數(shù)超過總量的 20%或者單個文檔的更新頻率達到每分鐘一次以上我都建議不要在 ES 里做原地震動更新而是考慮分層架構(gòu)。第四個問題團隊有多少精力能投入到 ES 集群運維上這是最現(xiàn)實的問題。ES 集群的坑非常深分片分布不均、堆內(nèi)存壓力、合并風暴、冷熱節(jié)點規(guī)劃每一樣都需要專人跟進。如果團隊只有一兩個后端平時還要兼顧業(yè)務(wù)開發(fā)那就老老實實選一個運維簡單、出問題好排查的方案。比如把全文檢索放在 PostgreSQL 的 GIN 索引上或者接受用 MySQL 的LIKE %keyword%頂著——雖然并發(fā)能力差一點但至少不會半夜被 on-call 電話叫醒。這四個問題回答完之后選型就變成了一個約束求解問題。比如延遲 3 秒可接受、最終一致、更新占比 40%、運維人力有限那答案大概率是主庫 異步任務(wù)更新 ESES 只做檢索而不是死磕 ES 參數(shù)。3. 方案一單體 ES 集群硬扛調(diào)參調(diào)出第二春如果數(shù)據(jù)量不大單分片 30GB 以內(nèi)、更新頻率不算變態(tài)每秒幾百次以內(nèi)、業(yè)務(wù)能接受秒級延遲那最簡單的方案不是推翻 ES而是把 ES 的參數(shù)調(diào)到適配高頻更新的形態(tài)。默認配置是為批量導入設(shè)計的你需要反向調(diào)整。3.1 拉開 refresh 間隔減少 segment 碎片refresh_interval從默認的 1 秒調(diào)到 30 秒甚至更久高頻更新場景下收益非常明顯。每次 refresh 都會把 buffer 里的數(shù)據(jù)生成一個新的 segment如果每秒更新 500 條默認配置下 1 分鐘會產(chǎn)生 60 個 segment查詢時要把這些 segment 全部掃一遍調(diào)到 30 秒后1 分鐘只有 2 個 segment。PUT /your_index/_settings { index: { refresh_interval: 30s } }代價是數(shù)據(jù)從寫入到可搜索的延遲從 1 秒變成最長 30 秒。對運營后臺這類場景搜索按鈕點下去等幾秒才出現(xiàn)結(jié)果用戶完全能接受。但對 C 端搜完立刻下單的場景30 秒延遲就是災(zāi)難這條要提前想清楚。3.2 調(diào)整 translog 刷新策略減少磁盤同步次數(shù)ES 默認每次寫請求都會把 translog fsync 到磁盤這是保證數(shù)據(jù)不丟的關(guān)鍵機制但高頻更新下會變成嚴重的性能瓶頸。對可以接受丟失幾秒數(shù)據(jù)的場景可以改成異步刷盤并調(diào)大刷盤閾值。PUT /your_index/_settings { index: { translog.durability: async, translog.sync_interval: 5s, translog.flush_threshold_size: 1gb } }這里要特別提醒async意味著如果節(jié)點宕機最近幾秒的寫入可能會丟。數(shù)據(jù)庫領(lǐng)域有一句老話沒有免費的可靠性你省下的每一次磁盤同步都是用數(shù)據(jù)安全換來的。這個方案只適合丟了能重建的數(shù)據(jù)比如從主庫重新導一次就能恢復的檢索索引。3.3 關(guān)閉副本寫入寫完再恢復寫入期間把副本數(shù)臨時設(shè)為 0只寫主分片寫完再改回去。這樣寫入鏈路少了一半的副本同步開銷對吞吐的提升非常直接。但副作用是副本數(shù)為 0 期間一旦主分片所在節(jié)點宕機數(shù)據(jù)就沒了。實操中我會選擇在業(yè)務(wù)低峰期做這種操作并且控制窗口時間。很多團隊會在這里踩坑改設(shè)置改得爽忘了改回來之后集群一直處于無副本狀態(tài)。3.4 用 index 代替 update減少讀改寫ES 的updateAPI 內(nèi)部邏輯是讀取舊文檔 - 合并字段 - 索引新文檔比直接index多了一次讀操作。如果更新的是整個文檔比如商品詳情的多個字段一起變了直接用indexAPI 寫入完整文檔性能會好不少。如果確實只需要更新其中一兩個字段也寧可構(gòu)造完整文檔去 index而不是依賴 update 的部分字段能力。高頻場景下省一次讀就是省一次分片間的網(wǎng)絡(luò)往返。3.5 從 mapping 設(shè)計上降低更新代價把會高頻更新的字段和幾乎不變的字段分開處理。比如商品標題、描述這種低頻修改字段正常建立倒排索引價格、庫存這種高頻字段用doc_values: false或者干脆不建索引、只做存儲。倒排索引的更新代價遠高于列存你為價格搜索這個低頻需求付出的成本會在每次庫存更新時加倍奉還。方案一適合什么情況我建議數(shù)據(jù)量在百萬級、更新 QPS 在 500 以下、團隊只有一兩個人維護 ES 的小團隊優(yōu)先考慮。它的好處是架構(gòu)簡單不需要引入額外的中間件和鏈路。缺點是天花板低只要業(yè)務(wù)增長到一定程度你早晚要面對調(diào)不動了的尷尬。我們當時在方案一上撐了大概半年直到大促壓測時發(fā)現(xiàn) 30 秒的 refresh 已經(jīng)讓 merge 線程持續(xù) 100% CPU才下定決心做架構(gòu)升級。4. 方案二MySQL ES 雙寫用 CDC 把更新動作解耦當更新頻率超出單 ES 集群的承受范圍或者業(yè)務(wù)主庫已經(jīng)是 MySQL/Oracle 這類關(guān)系型數(shù)據(jù)庫時最常見的升級路徑就是雙寫 異步同步。這里的核心思路業(yè)務(wù)系統(tǒng)只寫主庫ES 不再接收業(yè)務(wù)方的直接寫入而是通過 CDC 工具訂閱主庫的 binlog異步更新到 ES。4.1 業(yè)務(wù)寫入鏈路業(yè)務(wù)后端正常寫 MySQL事務(wù)提交后什么都不用管。ES 的更新由下游消費者負責業(yè)務(wù)系統(tǒng)不用感知 ES 的存在。這一步就把業(yè)務(wù)邏輯和檢索索引維護徹底解耦后續(xù) ES 集群抖動、重啟、甚至整體重建都不會影響主鏈路。4.2 CDC 組件選型MySQL 生態(tài)里最常用的是 Canal阿里開源和 Debezium。兩者的原理一致偽裝成 MySQL 的從庫讀取 binlog解析成結(jié)構(gòu)化變更事件。我用 Canal 比較多部署相對簡單配置也直觀# canal.properties 關(guān)鍵配置 canal.instance.master.address127.0.0.1:3306 canal.instance.dbUsernamecanal canal.instance.dbPasswordcanal canal.instance.connectionCharsetUTF-8 canal.instance.filter.regexproduct_db\\.product_info拿到 binlog 事件后下一步是推到消息隊列。這幾乎是必須的原因是 Canal 本身只是一個數(shù)據(jù)通道如果直接把變更事件同步調(diào)用 ES一旦 ES 抖動就會導致 Canal 消費積壓、延遲升高進而影響 binlog 的拉取進度。加上一層 Kafka/RocketMQ 后Canal 只負責生產(chǎn)消息消費速度由下游單獨控制天然就有了削峰填谷和故障隔離能力。4.3 消費者側(cè)的冪等與去重這是雙寫方案最容易翻車的地方。ES 的更新操作必須是冪等的——同一個文檔更新 10 次和更新 1 次最終結(jié)果一致。做法很簡單用業(yè)務(wù)主鍵作為 ES 文檔的_id消費者每次都執(zhí)行index全文檔覆蓋寫而不是update局部更新。這樣即使 MQ 重復投遞或者消費端重啟后重放也不會產(chǎn)生臟數(shù)據(jù)。消費者的偽代碼大致是public void onMessage(ProductChangeEvent event) { // 1. 根據(jù)主鍵查詢最新數(shù)據(jù)從主庫或緩存 Product product productService.getById(event.getProductId()); if (product null || product.isDeleted()) { // 2. 已刪除則從 ES 中刪除 esClient.delete(product_index, event.getProductId()); return; } // 3. 全文檔覆蓋寫入 esClient.index(product_index, event.getProductId(), buildDoc(product)); }注意第 1 步不要直接用 binlog 里的變更字段構(gòu)造 ES 文檔。因為 binlog 記錄的是這一次變更的字段不是完整文檔。如果你只用變更字段去 update遇到多個字段先后變更、順序錯亂時ES 里的數(shù)據(jù)就是缺胳膊少腿的。這也是為什么很多團隊用雙寫方案后經(jīng)常出現(xiàn)搜索結(jié)果的標題是新的但描述是舊的這類靈異問題。4.4 對賬與補償機制異步鏈路跑久了必然會出現(xiàn)漏消費、MQ 消息丟失、ES 寫入失敗等事故。所以一定要設(shè)計定期對賬任務(wù)每天凌晨掃描一批業(yè)務(wù)主鍵比對 MySQL 和 ES 中的關(guān)鍵字段發(fā)現(xiàn)不一致就觸發(fā)重新同步。對賬的頻率取決于你對數(shù)據(jù)質(zhì)量的容忍度。我們當時是每小時對賬一次最近 24 小時有變更的商品全量對賬放到凌晨低峰期做。4.5 這個方案的邊界和代價最大的代價是鏈路變長定位問題不再像以前那樣一條命令能解決。另外binlog 的保留時間也要關(guān)注MySQL 默認可能只保留幾天如果 MQ 消費延遲超過這個窗口就必須用全量重建的方式補齊。還要注意Canal 本身也有單點問題生產(chǎn)環(huán)境至少部署兩個實例做主備切換。方案二是我個人最常用的推薦尤其是數(shù)據(jù)量達到千萬級、更新頻率達到每秒數(shù)千次的業(yè)務(wù)。它在穩(wěn)定性和架構(gòu)復雜度之間取得了一個比較好的平衡。但這個方案的 ES 集群依然要承擔全部更新壓力只是從業(yè)務(wù)直接打變成異步批量打。如果你的更新頻率已經(jīng)高到所有商品的價格庫存每小時全量變一遍那方案二的 ES 寫入量依然是全量文檔數(shù) × 更新次數(shù)這時候就要考慮方案三了。5. 方案三ES 只做索引層把易變字段隔離出去第三個方案的思路更激進一點既然 ES 怕高頻更新那就不讓它存那些高頻變動的字段。ES 里只保存用于檢索、排序、過濾的靜態(tài)字段標題、描述、類目、品牌等而價格、庫存、狀態(tài)這些高頻字段留在 MySQL/Redis 等主存儲中。查詢時先通過 ES 拿到命中的文檔 ID 列表再用 ID 去主存儲批量拉取最新字段做最終的結(jié)果組裝。5.1 為什么這樣設(shè)計能解決本質(zhì)問題回到第一節(jié)說的矛盾根源ES 的寫入成本主要來自倒排索引的不可變特性更新一個字段需要重寫整個文檔。如果你把價格從 ES 文檔里挪出去那一次庫存變更就不再觸發(fā) ES 的任何寫入。ES 里的商品文檔可能一個月才更新一次標題改了、描述改了而價格庫存每天變一千次ES 全都感知不到。高頻更新壓力被完全擋在了檢索系統(tǒng)之外。5.2 查詢鏈路的改造查詢邏輯會變成兩步。第一步用關(guān)鍵詞在 ES 里搜拿到 doc id 列表和靜態(tài)字段的排序分數(shù)。第二步拿這批 id 去 Redis或者 MySQL批量獲取最新價格、庫存、狀態(tài)再在應(yīng)用層做合并。// 第一步ES 檢索只拿 id SearchResponse response esClient.search(product_index, keyword, pageNum, pageSize); ListLong ids extractIds(response); // 第二步批量回源獲取最新可變字段 ListProductPriceInfo priceInfos redisClient.mget(ids); // 第三步應(yīng)用層組裝結(jié)果 ListProductResult results merge(response.getHits(), priceInfos);這個方案的查詢延遲理論上會多一跳網(wǎng)絡(luò)開銷但 Redis 的批量讀取是微秒到毫秒級整體影響不大。而且換來的是一個寫入壓力極低的 ES 集群查詢穩(wěn)定性會好很多。實測中我們用這個方案把 ES 的寫入 QPS 從 5000 降到了不到 200段合并風暴基本消失查詢 P99 從 800ms 降到了 120ms。代價是應(yīng)用層多了一段合并邏輯以及對 Redis/主庫的額外讀取壓力。5.3 什么字段適合留在 ES什么字段必須拆出去我按字段特征做了一個劃分需要參與倒排索引、分詞匹配的字段標題、賣點、描述——必須留 ES。需要范圍過濾、排序的數(shù)值字段價格、銷量如果更新頻率高強烈建議拆出更新頻率低如一天一次可以留。狀態(tài)類字段上下架、審核狀態(tài)幾乎每次業(yè)務(wù)操作都會變動拆出。冗余的商家名稱、類目路徑低頻變動的可以留 ES 用于展示和過濾。這個方案的變體也很實用如果實在拆不干凈也可以保留雙份字段即 ES 里留一個用于展示但允許過期的價格查詢時用主存儲的最新價格覆蓋。搜索列表頁可以先展示過期價格占位詳情頁再用最新價大部分用戶根本感知不到。5.4 這個方案最大的坑最容易被忽視的問題是如果 ES 文檔的 ID 在主存儲中已經(jīng)不存在商品被刪了、下架了回源查詢時會發(fā)現(xiàn) ID 取不到數(shù)據(jù)。此時要在結(jié)果組裝階段過濾掉這些空文檔否則前端拿到一個沒有價格沒有狀態(tài)的商品卡片體驗很差。我們最初的實現(xiàn)就漏了這一步上線后出現(xiàn)了一批幽靈商品排查了半天才發(fā)現(xiàn)是回源時沒做存在性過濾。方案三比較適合文檔量大、單文檔更新頻率極高、更新字段集中在少數(shù)幾個業(yè)務(wù)屬性的場景。比如電商、OTA 酒店房價、招聘網(wǎng)站的職位狀態(tài)都屬于這個類型。它不是所有場景的最優(yōu)解但如果你正在被 ES 的寫入毛刺折磨這個思路值得認真考慮。6. 高頻更新壓垮 ES 的真正元兇段合并與寫入放大很多人以為 ES 寫入慢是因為每個文檔都要做分詞、建索引其實分詞的開銷遠沒有想象中大。真正吃 CPU 和磁盤的是隱藏在寫入鏈路底層的段合并segment merge。我單獨用一節(jié)來講因為這個知識點決定了你在做前三章方案時能不能想明白為什么 ES 不適合高頻更新。6.1 段合并的全過程ES 的每個分片shard底層是一個 Lucene 索引而 Lucene 索引由多個 segment 組成。寫入流程大致是數(shù)據(jù)先進內(nèi)存 bufferrefresh 時生成一個 segment 并寫盤此時該 segment 可以被查詢。隨著寫入持續(xù)進行小 segment 越積越多。Lucene 后臺線程會根據(jù)合并策略挑選一些 segment把它們讀出來、合并排序、寫成一個更大的新 segment然后刪除舊 segment。這個過程是異步的但它的 CPU、IO 開銷非常可觀合并時既要讀舊 segment 的全部數(shù)據(jù)又要寫新 segment 的全部數(shù)據(jù)等于一次全量搬運。6.2 什么是寫入放大假設(shè)你有 100GB 的索引數(shù)據(jù)不更新時 merge 只發(fā)生在初始導入階段。但高頻更新意味著每個 segment 里都有大量被標記刪除的舊文檔這些舊文檔不會被立刻清理而是占著空間等 merge。后臺要不斷把含垃圾的 segment 合并成新 segment才能釋放空間。這會導致一個讓人崩潰的循環(huán)寫入越多 - 標記刪除越多 - merge 越頻繁 - merge 又搶走寫入的 CPU - 寫入變得更慢 - 業(yè)務(wù)方加大寫入重試 - 更多 segment 產(chǎn)生。這就是典型的寫入放大現(xiàn)象磁盤 IO 和 CPU 消耗可能達到實際數(shù)據(jù)量的 3 到 5 倍。6.3 調(diào)優(yōu) merge 策略Lucene 默認的TieredMergePolicy把 segment 按大小分層次合并理論上效果不錯但高頻更新場景下需要調(diào)整參數(shù)PUT /your_index/_settings { index.merge.policy.segments_per_tier: 10, index.merge.policy.max_merge_at_once: 5, index.merge.scheduler.max_thread_count: 1 }這里的思路調(diào)小max_merge_at_once和max_thread_count是為了限制 merge 并發(fā)避免它在高峰期和寫入搶資源segments_per_tier控制每一層允許多少 segment調(diào)大一點可以減少合并頻率但可能會讓查詢讀取的文件數(shù)變多。這是一個在查詢性能和寫入穩(wěn)定性之間找平衡的游戲。沒有絕對正確的值只能靠自己的業(yè)務(wù)壓測去試。6.4 更治本的做法分片/索引粒度拆分如果你已經(jīng)預(yù)見到某個索引會被高頻更新不要把所有數(shù)據(jù)塞進一個大索引。按時間滾動索引比如按天建索引是最常見的解法。每天的索引獨立生成、獨立 merge不會互相拖累。配合 ILMIndex Lifecycle Management策略可以把 3 天前的索引自動切到只讀甚至 force merge 成一個大 segment徹底杜絕舊數(shù)據(jù)的 merge 開銷。這種設(shè)計下高頻更新只影響當天那個索引其他索引的查詢和寫入穩(wěn)如泰山。6.5 冷熱分離把近期高頻更新的索引放在熱節(jié)點SSD、高 IO 配置把歷史索引放在冷節(jié)點機械硬盤、低配置。這樣即使某個熱索引發(fā)現(xiàn) merge 風暴也不會干擾到冷節(jié)點上承載的歷史檢索和聚合報表。我們在實踐中還把冷節(jié)點的副本數(shù)調(diào)成 0進一步降低集群整體負載。這么看下來你已經(jīng)能理解為什么高頻更新 ES是一個需要嚴肅對待的組合。單純在業(yè)務(wù)代碼里調(diào) API 是沒用的如果不從底層機制上做規(guī)避性能天花板就在那里。但反過來說只要理解了段合并的運行機制前文提到的方案三把易變字段拆出去為什么能同時解決寫入放大和查詢變慢就很好理解了——ES 的寫入量直接減少了一個數(shù)量級merge 的頻率自然降下來了。7. 三套方案實測對比延遲、吞吐、成本和坑位盤點紙上談兵沒有說服力這里把我們當時在同一業(yè)務(wù)場景下做的一組壓測數(shù)據(jù)分享出來。測試環(huán)境是 3 臺 8C16G 的云主機ES 集群 3 節(jié)點單索引 20 個分片副本 1數(shù)據(jù)量約 800 萬商品文檔。寫入負載是每秒 2000 次文檔更新其中 80% 是價格/庫存類高頻字段更新20% 是標題/描述等低頻字段更新。查詢負載是固定的 200 QPS 關(guān)鍵詞搜索。指標方案一單體 ES 調(diào)優(yōu)方案二MySQL CDC ES方案三ES 索引層 Redis 回源寫入鏈路業(yè)務(wù)直接寫 ES業(yè)務(wù)寫 MySQL異步同步 ES業(yè)務(wù)寫主存儲ES 幾乎無寫入更新延遲30s 后可搜到約 3s 可搜到取決于 MQ 消費速度靜態(tài)字段更新秒級價格庫存實時回源ES 寫入 QPS約 2000已接近上限約 1500Canal 消費速率限制不到 200只有低頻字段變更查詢 P99800ms350ms120ms高峰期 CPU持續(xù) 95%75%40%磁盤占用虛高大量 deleted 文檔未清理正常正常數(shù)據(jù)一致性強一致單鏈路最終一致需對賬最終一致查詢回源保證準確架構(gòu)復雜度低中中高運維成本高需長期調(diào)參優(yōu)化中依賴 MQ、Canal 穩(wěn)定性高需要維護 Redis 回源邏輯適合規(guī)模百萬級數(shù)據(jù)、更新頻率每秒幾百次內(nèi)千萬級數(shù)據(jù)、更新頻率每秒數(shù)千次大文檔量 極高更新頻率、字段可拆分有幾個數(shù)據(jù)點值得展開解釋一下。方案一在 2000 QPS 更新下已經(jīng)出現(xiàn)明顯毛刺這個毛刺來自 merge 線程和寫入線程的 CPU 競爭調(diào)參只能緩解不能根治。方案二的查詢 P99 比方案一好是因為寫入從同步變成異步ES 的壓力小了但 350ms 仍然偏高——當時的瓶頸在 MQ 消費積壓導致 ES 批量寫入的 wave 效應(yīng)。方案三的查詢 P99 最低但這是犧牲了價格庫存字段的索引能力換來的如果業(yè)務(wù)需要按當前價格做搜索過濾比如價格區(qū)間查詢方案三的那些字段就無法參與這種查詢了必須回源后在內(nèi)存里二次過濾。這是方案三最需要權(quán)衡的點。成本和坑位方面方案一的人力成本最被低估。很多人以為不用引入新組件就是省錢但當 ES 成為瓶頸后你會花大量精力做索引調(diào)優(yōu)、擴容評估、段合并監(jiān)控這些隱性成本往往超過一套 MQ 加 CDC 的硬件費用。方案二穩(wěn)定運行的前提是 MQ 集群本身靠譜如果公司已經(jīng)有 Kafka/RocketMQ 基礎(chǔ)設(shè)施那方案二是性價比最高的。方案三引入了 Redis 依賴如果 Redis 抖動搜索結(jié)果會直接受影響這種查詢鏈路中的單點故障需要提前設(shè)計降級方案。8. 我的最終選型建議與幾條保命經(jīng)驗綜合這些年的實際項目經(jīng)驗我給一套可落地的選型建議姑且當成一個決策清單來用更新頻率低每小時幾百次以內(nèi)、數(shù)據(jù)量百萬級、團隊不想引入新組件優(yōu)先方案一但必須接受秒級延遲和持續(xù)調(diào)參。更新頻率中等每秒數(shù)百到數(shù)千次、已有 MySQL 主庫、公司有 MQ 基礎(chǔ)設(shè)施方案二是最穩(wěn)妥的選擇鏈路雖長但每一環(huán)都是成熟組件。單文檔更新頻率極高每分鐘多次、價格庫存等字段占更新 80% 以上、搜索又不依賴這些字段做過濾直接上方案三ES 只做靜態(tài)檢索可變字段全走 Redis 回源。如果搜索必須支持按最新價格過濾這種需求那方案三的適用性就要打折扣。這時候我會考慮把價格字段做成獨立索引比如價格區(qū)間 上下架狀態(tài)單獨放一個輕量 ES 索引主文檔索引只存靜態(tài)信息兩個索引通過商品 ID 關(guān)聯(lián)。這相當于一個更細粒度的拆分。最后分享幾條自己的保命經(jīng)驗。第一永遠不要只依賴一條鏈路。不管是方案二還是方案三必須預(yù)留一條全量重建退路。我們每個月會跑一次全量同步腳本把 MySQL 全量數(shù)據(jù)重新灌入 ES用新索引 別名切換的方式發(fā)布確保任何增量鏈路問題最終都能靠全量修復兜底。第二監(jiān)控不要只看集群整體指標單索引級別的 segment 數(shù)量、merge 耗時、deleted 文檔占比這三個指標一定要配告警。deleted 文檔占比超過 30% 時基本可以判斷更新模型出了問題該考慮拆索引或換方案了。第三線上調(diào)參一定要留變更記錄。ES 的_settings接口改起來太方便生產(chǎn)環(huán)境經(jīng)常有人隨手改掉 refresh 或 merge 參數(shù)出了問題卻不知道誰改的。至少對索引 settings 的變更走一次代碼評審流程。關(guān)于這套架構(gòu)后續(xù)還可以怎么演進我目前的計劃是在方案三的基礎(chǔ)上加入實時數(shù)倉的維度把價格庫存的歷史變化軌跡單獨存儲這樣既能做當前價過濾又能支持價格趨勢分析檢索系統(tǒng)和高頻更新系統(tǒng)之間的邊界會更干凈。選型這件事沒有銀彈關(guān)鍵是搞清楚自己的業(yè)務(wù)屬于哪種更新模型再決定讓哪個組件承擔什么職責。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
婷婷激情四射| 欧美九九爱| 欧美淫乱视频| 116美女午夜| 欧美人与动性人交a| 在线视频一区二区传媒| 久久亚洲婷婷| 强奸国产在线| 日本色日夜干| 超碰这里有精品| 91人妻精华帖| 91色夜| 91原创在线观看| 日本东京热加勒比久久| 国产精品黑人一区二区三区| 91蜜桃传媒精品久久久一区二区| 天天摸夜夜摸| 色五月婷婷五月天| 国产亚洲欧美每日在线| 欧美碰碰综合色| 日本天堂网| 日本国产欧美高清在线| 在线观看不卡一区二区三区| 狠狠爱综合网| 日骚逼视频| 99热线麻豆 | 天美精品一区二区三区四区在线观看| 亚洲性爱高潮影院| 在线啊v一区| 超碰色男人操熟女| 乱伦熟女专区| 亚洲97在线观看| 日本三级韩国三级美三级91| 好舒服视频| 美女大乳久久久久久久女人18| 九九色热| 中文字幕 国产区| 国产成人精品必看| 国产视频一区二区三区在线免费观看 | 性一交一乱一交A片久久四色| 免费精品中文字幕| 男女激烈网站最新| 无码外流操逼视频| 毛片久久| 自拍偷拍草一草| 啊啊啊网站| 亚洲熟女人妻中文字幕一区二区| 伊人久久AV诱惑悠悠| 久艹99| 男人的亚洲天堂| 韩国女主播青草在线| 中亚av| 国产久久久久久久久一区二区| 秋霞久久亚洲精品成人| 亚洲国产一级精品毛一级精品看免费视频 | 天天操熟妇| 后入式在线免费观看60秒| sss视频华人在线| 91久久精品国产| 91色综| 超踫中文字幕| 一区二区你上我| 天天爽天天| 日韩美一区| 久久熟女人| 不卡超碰护士AV在线免费播放| 午夜免费视频1000| 日本三级小说中文字幕| 97色97好| 欲色综合| 人人看黄色视频| 人人贴人人摸| 免费一级视频特黄色大片| 偷拍亚洲熟女视频播放| 久久精品国产免费观看99| 8050午夜少妇无码| 五月天成人综合| 久操精品网| 五月婷婷综合在线| 亚洲少妇在线影音| 日韩91网| 91午夜无码| 中文字幕精品资源在线| 久久婷婷视频| 精品国产一区二区三区久久久蜜臀 | 日本一区二区不卡精品| 天天综合网1| 好吊爽好吊爽在线视频,中文字幕精品一区二区日本,国产良妇出轨视频在线观看, | 91国产美女丝袜足交精品视频| 亚洲熟久久| 91N综合网在线| 亚州欧美在线| 亚洲 一区二区 自拍| 激情专区综合| 亚洲和欧美裸体美女双飞视频| 91伊人久久在线| 亚洲同性aV综合| 欧美精品69性爱| 亚洲天堂 视频你懂的| 亚洲人精| 久9爱精品| 综合 亚洲 欧美| 影音先锋日本一区二区| 粘花网06av视频| 丝袜天堂网| 成人a v在线播放免费| 亚欧性爱ab| 欧美性,色九九| 欧美色图99| 91网九色蝌蚪操熟女| 国产强奸超碰AV| 日韩有码一区三区| 九九九九九九精品| 人人妻人人狠人人| 蜜桃精品一区二区三区久在线| 啊啊啊啊好多水| 99这里有精品| 亚洲涩图欧美| 高清一区AV无码| 91蜜臀在线久久久久| 啊啊啊好疼| 日本熟女不卡视频| 日日骚 av| 97国产超碰| 欧美色婷婷| 在线小视频| 久久免费99精品久久久久久| 天天日天天射天天干| 欧美爱爱97| 色五月首页| ...日韩成人一区二区三区字幕| 老熟女91| 超碰97男人| 亚洲av成人精品一区| 高清无码网址| 美女啊啊啊啊啊啊| 日韩一级二级| 啊啊啊啊啊在线| 激情综合五月婷婷| 天天日天天操天天射河南省| 欧美乱色| 欧美操人视频| 一区,二区,三区视频| 亚洲精品乱码线路中文字幕| 欧美在线视频播放| 久久久久久欧美精品se一二三四| 78超碰| 96精品在线| 日本操逼无码| 久久精品老司| 国模无码一区二区三区在线| 欧美日韩亚洲国产中文永久天天看| 国产精品亚洲一级av第二区| 色眯眯av| 欧美色图天堂在线| 中文字幕视频二区| 熟妇一区二区三区| 国产操偷| 粉嫩AV一区二区夜夜| 超碰av人人人| 91大神精品长腿在线观看网站| 大香蕉男人的天堂| 人妻精品一区二区在线| 人妻天堂网| 日欧美色| 99综合| 欧美天天干| 国产欧美一区激情交| 蜜桃狠狠色伊人亚洲综合 | HEYZO高无码国产精品227| 亚洲综合大片| 久久亚洲不卡一区二区三区| 欧美精品999| 草草电影院| 欧美天堂亚洲电影院一区在线播放| 超碰伊人在线| 欧美日韩性感| 91 亚洲 欧美 日韩 国产 综合| 亚洲综合九| 人妻久久久久久| 亚洲欧美另类激情小说| 亚洲好色人妻| 欧美人妻二区三区| 野狼激情网| 欧美色人| 99精品久久久久久久婷婷蜜桃| 天天干人人乐| 久久综合女优| 视频分类 国内精品| 91性情| 精品超碰中文在线| 亚洲 欧美日韩 另类| 一区二区三区不卡视频| 国产熟女自拍| 色超碰综合| 在线另类| 熟女被操视频网址| 欧美疯狂做爰xxxx| 久久精品国产96精品亚洲拳交| 久久产精品一区二区三区电影| 97资源站久久| 国产97综合| 欲香欲色天天天综合和网| 亚洲色图 欧美热图 清纯唯美 另类自拍 | 日韩av在线播放不卡| 久久欲| 亚洲国产精品无码AV久久| 亚洲熟女乱综合一区二区在线-...亚洲国产日韩欧美一区二区三区,久久久久久精 | 67194无码不卡| 人妻久久久久久| 思思性爱| 国产 v乱码一区二| 免费人成?大片在线播放| 亚洲暴力强奸AV| 日韩欧美tv一区二区在线观看| 最新av网站在线观看| 白丝被操91| 曰韩人妻中文字幕在线| 日韩综合成人免费视频| 免费一级a毛片久久久久久鸭绿欲| 亚洲性网| 亚洲一区二区三区中文字幕| 欧美亚洲日本视频久久久| 特级毛片特黄久久免费看 | 人人澡综合涩| 欧美日韩精品青青| 人妻精品一区二区三区| 九九亚洲| 岛国在线免费视频| 亚洲最大的综合性av| 日韩av不卡在线观看| 少妇高潮对白在线观看| 99综合网| 亚洲中文电影| 日韩无码第3页| 欧美翘臀视频网站一区二区三区| 在线视频 亚洲精品| 国产免a费看黄片在线| 乱伦Av网| 98一区二区精品| 国产a级精品| 天天色踪合| 777超碰| 免费福利视频中文字幕| 色小视频蜜乳| 91网站18在线| 国产精品人妻无码久久久互動交流 | 亚洲av综合伊人久久| 日韩欧美国产一区二区三区四区| 日韩三级一区| 亚州综合图片| 欧美亚洲情色| 国产尤物AV尤物在线观看不卡| 欧美一级A片在线看视频性色| 色色激情五月天| 十八禁网站在线| 中文日韩欧美熟| 天天爽天天操啊啊啊| 国产AV色黄看到爽| 久久色一区| 久久人妻少妇| 精品国产一区二区三区香蕉欧美| 玖玖97综合| 国产日韩欧美| 岛国黄片网站| 欧美1727免费观看视频| 东北操逼| 51久久夜色精品国产麻豆| www.色五月| 欧洲精品人妻| 欧美一区二区三区另类精品| 怡红院怡春院| 无码人妻一区二区三区免费九色| 国语av最新自产拍在线观看| 四虎国产成人精品免费一女五男| 日本韩国五十路六十路七十路老熟女作爱视频网站 | 91精品丝袜久久久久久| 午夜啪啪片| 国产一区96在线| 啊啊啊不要嗯嗯在线观看| 一级乱伦网站| 美女诱惑爱爱| 国产一级内射高清视频| 一区二区三区在线资源| 久久久555| 亚洲欧洲网站免费观看| 九九九偷拍| 综合免费无码中文| 中亚黄色三级大片 | 啊啊啊啊二区好大| 午夜视频久久久久一区| 亚洲乱色视频一区、二区在线| 抽插一区二区视频| 日本天天操| 欧美线天码中字| 无码精品一区二区三区潘金莲| 欧美精品 - 91爱爱| 亚洲学生妹高清av| 97 亚洲 日韩 欧美 在线| www国产精品| 欧洲熟妇xxXx欧美老妇裸体| 亚州,欧美在线| av婷婷色婷婷色六月| 久久久9 9 9精品| 国产 热久久久久国产精品| 和协影院中文字幕三区| 国产精品69人妻无码久久久| 97一区二区三区视频| 婷婷在线视频在线观看| 搡老女人老91妇女熟女| 黄色片大香蕉| 青青在线视频免费| 超碰三级秋霞| 免费久久一级毛片大黄| 色哟哟1区2区| 婷婷色五月激情| 性一级黄色录像片网站导航| 精品人妻二区三区| 日韩性爱再线视频| 鸥美中出| 久久久婷| 久草视频分类在线| 91av熟女人妻| 97精品97久久| 伊人久久88国产女| 99久久e免费热视| 97在线观看免费| 久久婷婷伊人| 中国国产精品一区视频| 久久老熟女| 黄色成品网站| 激情五月天社区| 日韩在线观看三级电影| 九九九九九九九九九九九蜜桃| AV中文在线| 搡老熟女免费视频 | 中文字幕交换人妻| 天天肏夜夜肏| 亚洲情色在线| 超碰97精品在线| 伊人久久在线视频观看| 超碰在线91| 国精综合一二三区影视| 亚洲综合在线视频| 99re国产精品视频| 香蕉99秘 一区精品蜜桃臀| 91久久18禁| www.yw尤物| 91人妻最真实刺激绿帽| 亚洲精品97久久| 一区二区三区在线日韩影院观看| 日本精品88888888| 久久婷婷六月综合| 能在线播放的国产三级| 超碰在线欧美性爱激情| 啊啊啊啊嗯嗯在线久久久| 久久有碼| 97亚洲国产影视| 国产精品秘 福利姬在线观看| 五月天婷婷在线看| 日韩肏逼视频| 国产精品一区二区三| 天天在线91| 亚州高清色综合| 久草视频制服诱惑| 91超碰人人| 91精品久久久久久77777| 亚洲字幕一区二区| 亚欧毛片基地国产毛片基地| 成·人免费午夜在线观看| 美女网站黄页| 欧美一二级| 欧美国产一区二区三区麻豆传媒| 91 国产丝袜在线放观看| 97干在线| 狠狠操狠狠爱| 五月婷婷五月天| 久久香蕉国产线看观看猫咪av| 日日噜噜夜夜狠狠视频无| 精品性爱| 欧美偷拍区| 国产精品第一区第一页| 国产成人91一区二区三区| 免费在线视频97| 婷婷10月天青娱乐| 国产综合久| 中文字幕第7页| 久久久久久免费电影| 久久9999| 欧美激情 亚洲色图| 色欲天香天天综合网-成年人三级片网站-欧美乱妇狂野-日韩国产专区-久久久久久 | 成人性交午夜免费片| 91精品国产91久久久久久久久久久久| 一级免费精品| 91丝袜| 肏逼视频日本| av无码精品久久久久| 岛国大片在线观看网站入口| 免费av大片| 精品久久人妻成人网| 丁香五月婷婷基地| 亚洲人妻一区二区三区| 成年男人的天堂| 吉田爱美AV在线| 亚洲欧美国产va在线| 婷婷精品国产欧美精品亚洲人人爽| 风月影院男女十八禁| 久久风骚城市| 国产无码三级视频在线观看| japan日本高清乱xxxx| 亚洲强奸乱伦影视网| 五月丁香啪啪网| 日本熟妇熟色97一本在线观看| av操操不卡| 好屌色综合| 日日躁狠狠躁天天躁精品| 999热这里只有精品| 中英熟女操女| 欧美人妻久久精品二区三区| 日本三级久| 樱花草社区www中国| 97精品视频在线| 欧美亚洲激情| 国产吞精a级片激情电影| 亚洲有码 视频一区| 五月开心久久AV官网| 麻豆一区二区三区在线看| 亚洲色婷婷久久91| 97碰在线视频| 91成人国产综合久久精品蜜月| 日韩日韩日韩-国产乱码精品一区二区| 视频不卡中文字幕| 国产精品制服丝袜清纯唯美| 欧洲天天在线| 日日骚av| 强奸乱伦AV网站| 9久综合网| 亚洲精品 欧美精品| 国语少妇精| 亚洲中文一区二区三区| 成人AV素股で擦久久| 欧美性视频二区三区| 欧美亚洲情色| 天天综合色| 欧美天堂亚洲电影院一区在线播放| 欧美综合天堂| 国产乱伦一二三区| 国产25页| 日韩操逼性鲍| 色眯眯射| 欧美夜夜草视频| 午夜丁香| 91综合天天| 中文字幕亚韩| 久久久免费懂色| 国产乱伦性爱区| 91人人爽人人爽| 欧美日韩人妻精品系列一区二区三区| 国产女人操逼视频| 亚洲日韩少妇一道本视频| 欧美视频一| 北条麻妃99精品青青久久| 久久九九97| 免费精品福利在线观看| 人妻少妇无码| 色噜噜婷婷| 黑人性欧美| 强免费黄色网址| 久久少妇人妻| 被体育老师抱着c到高潮| 99精品人人爽| 久久社区一区二区三区| 欧美影音在线| 欧美一区二区观看在线| 亚洲在钱| 伊人99热| 亚洲高清视频在线免费观看| 亚洲、日韩、综合、另类| 大JI巴好深好爽又大又粗视频| 四虎AV在线观看| 黄页av| 欧美精品在线观看| 亚洲国产91精品一区二区久久| 欧美色九九九| 日日夜夜精品| 97视频在线观看网站| www色日本| 97碰久久| 3PAV乱伦视频| 国产五码丝袜屁眼| 精品一区二区在线针对华人免费观看这里只有精品免费观看 | 亚洲丝袜少妇在线| 狼人综合婷婷激情四射| 蜜乳视频网站| 激情综合网一盗摄| 看一级黄色视频| 91亚洲网| 色偷综合| 人妻天堂综合网| 操逼逼一区视频| 亚洲AV色图一区| 天综合网| 欧美一级久久久久久久大片动画| 亚州色图欧美色图| 青青草视频久久久久| 午夜啪啪片| 美女t无毒不卡不卡| 曰韩欧美国产传媒麻豆第一区| 黄色视频高清无码网站| 98福利在线视频| 亚洲无码色| 国产一区免费午夜视频| 亚洲熟女乱综合一区二区在线-...亚洲国产日韩欧美一区二区三区,久久久久久精 | a一区二区三区乱码在线| 精品久久艹| 大香蕉色十月| www.av在线观看| 色吧5亚洲| 久超碰这里只有精品| 嗯~啊~快点 死我视频| 免费中文在线| 欧美一二三级精品在线| 9 1果冻精品视频| 丰满少妇高潮无码| 大色网久久| 亚洲少妇在线影音| 91大胆欧美| 睡产熟女乱伦| 一区不卡在线观看av| 一本色道人妻久久| ...日韩成人一区二区三区字幕| 区日韩亚洲乱码av电影| 国产尹人在线视频免费| www.久久制服糖| 欧美色图色综合| 97色欧洲| 加勒比久久av| 啊啊啊不要好爽日韩无码一区| 日韩pv中文| 婷婷综合激情| 国产精品老师| 浓厚中出中文字幕在线| 91九色丰满高潮| 欧美18禁91| 婷婷丁香六月天| 欧美偷拍区| 91蜜桃传媒精品久久久一区二区| 国产精品一区二区后入| 久久 亚洲 日韩 人妻| 丁香婷婷色五月| 夜夜影视四色| 无码乱人伦中文视频| 亚洲第一精品在线视频| 亚洲国产ⅴ高清在线观看| 丁香婷婷五月| 欧美精品精品一区二区| 国产一区二区三区高清视频| 男女一进一出视频久久| 97这里只有精品| 国产精品片| 久久春色| 1769成人国产精品视频| 午夜小电影在线插入淫高潮| 久久狠狠色噜噜狠狠狠狠97| 欧美不卡五十路| 亚洲春色一区二区三区| av网站免费线看| 最新av中文字幕高清| 日本操逼视频不卡直接放| 蜜桃传媒一区二区亚洲| 熟女一区二区| 日韩少妇无吗| 好吊爽好吊爽在线视频,中文字幕精品一区二区日本,国产良妇出轨视频在线观看, | 少妇三P| 中出789在线视频| 免费久久9999| 肉丝中文无码高清| 青女偷拍网| 久艹日日日| 日本在线观看网址| A V视频日本| 国内三级自拍小视频在线观看| 六月丁香啪啪| 国产高清不卡视频| 亚洲激情欧美色图 | 国岛片视频| 啊v视频在线观看| 青青草密桃在线播放| 91撸色网 玖玖网 欧美| 天天热精品| 女生91网站| 国产精品一区av在线| 午夜黄色免费在线观看| 久热色情精品| 加勒比性爱成人在线| 九久9精品| AV一区观看| 婷婷综合五月| 亚洲限制级| 日产123区精品免费观看| a片久久久久久久久久久久 | 国产懂色精品国产av| WWW黄片COM| 精品二区三四区五电影| 97人人爱人人乐| 欧美成人免费在线观看| 插日本熟女视频| 欧美大码在线视频| 后入日本1234| 蜜乳AV免费观看| 成人片在线播放| 天天影视射综合网| 五十路三区在线| 强奸乱伦日韩AV| 69AV女优男人的天堂| 亚洲天堂久| 一个色导综合| 9久超碰| 亚州 综合 色图| 亚洲综合在线第一页| 色色福利| 91久久久视| 天天噜| 99久久网站| 91色色综合| 国产精品麻豆成人av| 99人人干| 黑人综合色| 亚洲三区视频| 和协无码影院| 中文字幕精品探花视频| 91丝袜美女国产| 丰满熟妇大乳做爰| 久久久久久国产手机AV| 97久久精品国产| 视频一区二区免费在线| 国产乱码久久| 玖玖综合网| 午夜婷婷| 天堂综合网| 色色色综合网| 大香蕉淫人| 久99| 一本久道久久综合狠狠爱一密臀精| 亚洲日韩成人性爱视频| 男人天堂免费| 免费综合亚洲中文| 亚洲玖玖爱| 久久人人爽人人爽人人片Ⅴ| 精品久久久一本一道| av天堂手机版追回| 蜜汁欧美| 亚洲国产精品久久久久久久久久| 强奸乱亚洲| 亚洲精品熟妇1区2区3区。| 国模少妇一区二区三区| 色九色久| 免费视频无码| 精品国产一区探花在线观看| 丝袜喷水在线| 国产性爱在线视频一区二区| 美女干逼2| 人人射人人操人人摸| 欧美女同在线| 五月天婷婷欧美三区| 男人在线天堂| 麻豆一区二区三区精品| av无码精品久久久久| 青青草女人天天干| 日本超碰在线国产一区| 98人妻精品一区二区色欲| 国产乱弄免费在线视频。 | 午夜国产成人福利视频| 999热日韩精品| 婷婷五月天成人| 精品人妻一区二区三区日产乱码| 国产精品 午夜福利| 日韩Va亚洲va欧美Ⅴa久久| 女上位精品在线| 骚逼高潮久久精品| 国产亚洲欧美每日在线| 四虎免费在线播放| 六月婷激情福利天堂69| 亚洲第一精品在线视频| 欧美激情 亚洲色图| 久久一区无码| 国产视频不卡在线观看| 综合另类| 色97综合中文字幕| 91视频观看网站| 亚洲无码久久久久久久| 亚洲欧美小说| 色综合 加勒比| 操九九九九九九| 亚洲精品啪视频| 欧美一区二区男人天堂| 婷婷探花久久精品一区| 区一二区日韩亚洲乱码av电影| 蜜臀操逼黄色视频操的好爽| 一级做受视频免费是看美女| 青草伊人网| 99抽插| 人妻天天夜夜爽一区二区| 国精综合一二三区影视| 色欲天天综合网| 欧美国产精品| 一区二区乱码福利| 综合亚洲欧美| 亚洲人精品午夜不卡| 伊人青青一区成人视频在线观看区| 欧美强奸乱| 青娱乐福利99| 欧美爱爱97| 久久精品超碰| 天天干夜夜操一区二区| 超碰这里只有精品| 国产精品久久久久久夜夜夜| 五月综合激情| 97精品综合久久| 久久久国产亚洲精品系列| 富女玩鸭子一级毛片| 青青青在线高清视频在线一二三四区| 狠操91,com| 国产美女口爆吞精| 操人妻逼91| 久久久久久久久久久人妻| 亚洲激情久久| 超碰在线91| 91久久99久久91熟女精品| 最新中文字幕在线亚洲| 亚洲最新中文字幕免费| 大香蕉黄色一级片免费看| 老司机午夜精品视频| 97在线视频免费观看| 97亚洲中文| 欧美成人精品一区| 欧美综合1性辶| 欧美另类丝袜熟女| 天天干人妻视频| 久草电影网| 色欲天香天天综合网-成年人三级片网站-欧美乱妇狂野-日韩国产专区-久久久久久 | 久久亚洲日韩国产欧| 青青草狠狠撸| 91色综合色| 欧美亚洲清纯| 快播久久人人aV| 超碰九九| 精品黄色电影| 色吧 综合| 99久久精品欧美国产| 久久精品人人做人人看| 亚洲精品国产熟女| 91人妻中文| 日韩中文字幕二区| 99热这里只有精品9| 久久黄黄| 91被操| 欧美一级特黄淫片在线观看| 亚洲美女自拍偷拍视频| 五月婷丁香| 日本天天吊| 青青草大香蕉在线视频| 精品人妻一二三四区视频| 91亚洲黄色网| 精品久久久久久中文字幕视频免费| 日韩av在线精品观看| 久久久久久久伊人精品| 99久久e免费热视| 久久久久久欧美精品se一二三四| 大香蕉97久久| 亚洲Av噜噜一区二区三区妖精| 久久国产999| 一区二区影视| 日本三级A片网站com| 无码 有码 国产18p| 天天综合亚在线| 欧美999999| 天天夜夜rb| A一区片| 欧美一区二区亚洲天堂| 九九玖玖精品| 天天爽入口| AVE乱伦| 操婷婷逼| 久久天天躁日日躁狠狠躁 | 老熟女乱伦片| 粉嫩在线一区二区懂色| 欧美成不卡网| 一本大道久| 操逼视频色| 亚洲精品男人的天堂| 欧美78| 青娱乐啪啪视频| 精品国产丝袜一区二区三区乱码 | 91综合网| 90后性网国产欧美| 91网站18在线| 玖草在线视频| 乱色视频中文字幕| 国精综合一二三区影视| 91色狼| 国产伦精品一区二区三区在线观 | PMv在线观看| 亚洲第一综合| 天天干1区2区在线| 免费福利视频中文字幕| 麻豆人妻精品一区二区| 99re在线视频这里只有精品| 无码直播久久久| 淮穴色AV| 久操国产在线| 性做久久久久久免费观看软件| 嗯嗯啊啊好疼| 97免费在线视频在线观看| 亚洲AV不卡在线观看| 天天日天天搞天天干| 天天看片天天爽| 久久系列| 亚洲va综合va国产va中文| 好一吊区二区| www黄片免费看com| 69人妻精品丰满熟女区| 日韩欧美福利视频看看| 久久久久久久一级黄色打同平台| 自拍啪啪视频| 日本 欧美 国产一区| 久久网亚洲| 日本性爱少妇| 国产中午字一暮区| 午夜精品探花| 天天综合网亚洲综合网| 色呦呦呦在线观看视频| 国产精品不卡一区二区三区| 收看日本人日bb| 91熟女综合| 国产成人自拍视频视频| 青青青青草av在线观看| 性暴力欧美猛交在线直播| 麻豆人妻少妇在线免费观看| 黄色操人| 精品人妻无码一区二区三区不卡-精品人妻无码一区二区...|精品少妇一区二区三 | 美女尤物福利视频| 欧美在线天堂| 欧插网站| 日韩av电影成人在线| 天美一二三在线观看Av| 亚洲图片激情综合另类| 超碰在线97国产| 欧美成人一级免费电影| 日本中文字幕熟妇| 中文字幕性感少妇av| 日韩天天综合| 亚洲AV无码天美传媒一区| 亚洲福利影院一区久久| 欧美18禁91| 思思热免费在线视频| 亚洲色图第四色| 久久99综合| 午夜性刺激视频免费观看| 国产精品亚洲四五区在线观看| 伊人精品久久网站| 亚洲色天堂九9| 五月激情小说| 1000部熟女视频在线观看| 330dv亚洲成年视频网| 激情啪啪拍91| 干超碰碰熟女| 亚洲综合射| 91老妇女| 大香蕉伊人网WWWn0n| 高潮毛片无遮挡高清免费| 欧美,亚洲,日韩,v,天堂,手机在线观看| 久草视频分类在线| 狠狠婷婷亚洲中文综合久久| 学生妹天天看| 久久五月份| www.91逼逼.com| 蜜臀AV一区二区三区| 日韩二级| 日本99久久| 国产精品久久久久久高清无码免费看| 另类专区加勒比| 混色激情av| 久久激情亚洲精品无码?V| 啊啊啊啊网站| 91视频综合在线| 欧美亚洲国内自拍| 国产强奸超碰AV| 一级黄色性爱裸体视频| 夜夜精品视频一区二区| 日本不卡码黄色 | 色偷偷2020免费视频播放| 久久国色天香香蕉| 8050午夜少妇无码| 亚洲 中文字幕 精品| 久久成人东京热人妻| 久久111| 国产成人亚洲精品自产在线| 亚洲αv一区二区三区| 天天干人人看综合| 啊啊啊水好多| 精品人妻一区二区三区夜夜| 日本韩国一本产品小视频日本韩国一本产品久久久产品小视频日本韩国一本产品久 | 色眯眯av| 免费人人搞97| 情色日播放AV| www超碰| 日本欧美一区二区三区免费| 日韩成人高清一区二区| 亚欧美综合网| 97操97干| 91老熟女91老女人| 久久久久大香青草精品综合| 日日干日日操五月天伦理视频| 99热只有| 中文字幕一区二区三区视频播放| 精品久久久久av影院| 91人精品妻入口| 欧美91在线| 96久久久久| 伊人性在线视频| 亚洲久久东京热一二三四五区视频| 黑丝日韩av丝袜av| 91欧美偷拍| 午夜呻吟欧美| 亚洲。日韩。欧美| 九色 人妻 大香蕉| 国产欧美日韩在线观看麻豆传媒公司| 后入式999| 免费超碰97久久| 青青草玖玖爱| 欧美日韩国产人人| 亚洲综合校园春色| 欧美 综合 亚洲| 久湿久久| 久久中文字幕女同性恋一区| 久久 久久国内精品亚洲 | 精品超碰国产| 丁香五月性| 婷婷99| 国产免费一区二区三区最新不卡 | 97色碰| 亚洲欧美一区二区网址| 强奸乱伦AV一天堂网| 香蕉国产精品麻豆亚洲欧美日韩| a片在线播放| 久久日韩精品一区二区| 精品成人无码| 国产理论视频在线播放| 欧美人妻一区| 婷婷五月天激情四射| 天天干天天爽| 嗯啊啊啊轻点视频| 天天干天天日天天射黄色大片 | 亚洲本色精品一区二区久久| 欧美日韩*字幕一区| 亚洲三区视频| 欧美亚洲中文字幕| 啊啊啊操一区| 97视频在线观看高清资源| 欧美色日| 久久丝袜| 国模无码人体一区二区三| 久草国产在线视频| 超碰在线国产| 精品人妻二区三区| 亚洲污污网站| 久久婷婷成人综合色怡春院| 亚洲 暴爽 AV人人爽日日碰| 国产一级137片内射麻豆| 成人网站 免费观看| 色优久久| 国精综合一二三区影视| 日日躁狠狠躁天天躁精品| 999综合网| yellow网站免费观看日韩高清无码| 日本在线激情一区二区三区| 内射日韩大臀美女| 麻豆天美在线喷水AV| 99热伊人| 操操操日本的逼| 五月丁香影院| 国产 大胆 对白| 久久岛国| 亚洲日韩美女中文字幕乱| 人妻AV 中文字幕的| 香港日本韩国人妇99www.wccm20| 亚洲天天天| 日韩黄色片子| 五月天婷婷基地| 国产地址二三| 伊人加勒比| 日本在线播放不卡一区| 色老汉色| 后入国产| 91精品人妻电影| 三级片大波波| 欧美 亚洲精品首页| 欧美一级A片不卡视频。| 久7色| 久操免费电影| 国产精品黄色三级av| 久久欧美按摩999| 福利伊人玖玖国产| 青青草吊丝| 欧综合网| 亚洲国产一区二区三区四区国产| 欧美中文字幕一区| 91欧美经典| 女人双腿搬开让男人桶| 日韩精品99久久久久久中文字幕 | 亚洲欧美国产日本一区二区三区| 97er欧美性| 日韩欧美亚欧在线视频| 色色色网站| 色天使AV天堂| 国产高清免费不卡av| 色女综合| 亚洲色婷婷久久91| 无码色| 久久黄黄黄| 强奸a片网| 很狠操| 色乱二区| Aa东京男人的天堂| 国产av强奸美女| 无码视频一区二区| www.色吧5.com| 日本三级小说中文字幕| 91视频在线观看18| 狠狠干综合| 人人操人人肉久久精品| 丁香九月婷婷| 97chaopengongkai| 丁香六月婷婷综合| 亚洲色图A| 婷婷精品| 日日爱99| 久久不卡一区二区| 极品销魂美女一区二区| 日韩性色b| 肏逼视频日本| 二对二中文字幕。| 老子午夜伦不卡影院| 大香蕉99热| 久久国产免费激情视频| 午夜后入| 屁屁影院一区二区三区国产| 精品无码产区一区二| 久久精品国产72国产精品福利| 久久久久久久综合,国产| 色官网在线| 伊色久人大在线| 丰满人妻一区二区三区四| 久久性爱视频免费看| 中文字幕版| 国产91乱伦| 91综合天天看| 蜜臀久久一区二区| av毛片aaaaa免费看| 丰满少妇高潮无码| 色嗨嗨在线| 欧美少妇高潮| 欧美久久九九| 老司机深夜18禁污污网站| 中文字幕第23区| 国产激情视频在线观看| 免费观看一区| 97超碰久久色| 自偷自拍的亚洲视频| 91中出| 高清肉丝中文无码| 2018色综合天天操| 乱伦强奸区日韩| 欧美熟妇亚洲版| 欧美色色色| 日本伦乱九九九综合| 偷拍综合亚洲| 又大又白奶子| 老熟女乱子伦中文字幕一区二区| 久草电影网| 日日干日日操五月天伦理视频| 亚洲欧美综合区自拍另类| 97国产|免费| 日本一片一区| www.99色| 色综合天天| 蜜臀AV午夜精品久| 色香在线| 欧美性天天影视| 人妻日日干| A级在线视频| 另类老少妇| 精品国产一区二区三区久久久蜜臀| 久久男女激情视频网站| 国产精品久久久久久久无码AV | 99热9| 一区二区三区探花在线观看| 9118禁| 99最新日韩偷拍视频| 日本不卡码黄色| 色情综合| 久操网线| 精品国产三级av韩国在线| 999色欧美中文字幕| 韩国女主播青草在线| 偷拍伦理视频| 亚洲砖码砖专无区2023| 被窝影院午夜看片无码| a啊啊啊啊啊啊啊啊一区二区| 欧美国产有色电影| 日本一区二区电影网站| 9色在线| 91成人久久| 亚洲欧洲日本精品中文a∨| 美女91| 欧美色女人| av2014 日韩在线中文字幕| 亚洲自拍一区夜夜操 | 国产精品播放| 91熟女视频网| 91激情综合| 欧美日韩少妇色情| 亚洲91av| 中文字幕高清20页视频| 激情专区综合| 亚洲一区二区三区欧美日韩| 精品无码不卡视频| 成人av福利在线观看| 99人妻碰碰碰久久久久禁片| 亚洲美女精品九九视频| 国产蜜臀精品一区二区尤物| 大香蕉在线SuP| 超碰伊人在线| 欧美天天在线| 中出在线视频| 黄久在线| 伊人久久亚洲色欲综合网站| 天美传媒av在线| 极品色电影院| 国产中文日韩欧美一区二区三区人妻丝袜美腿| 亚洲精品国产AV天美传媒| 欧美日韩理论一区| 97se综合网| 久久精品国产99国产精品亚洲| 97超碰色屌| 啊啊啊不要啊啊受不了了视频在线 | 美女高潮视频91| 欧美性后入| 久久国产对白激情浪潮| 婷婷另类小说| 久久精品国产久精国产| 久久久久久少妇| 久久久久深夜无码| 无码二级三级| 99av| 亚洲AV无码乱码| 夜夜天天噜狠狠爱2021| 国产美女mm131爽爽爽爽| 亚洲 欧美日韩 另类|