欧美成人午夜精品久久久,国产?V天堂一区二区三区,欧美精品va在线观看,亚洲一区二区三区免费在线观看,av无码精品一区二区久久,欧美性爱视频不卡一区三区,欧美乱人伦视频在线观看,国产一级牲交高潮

ARTICLE DETAIL

資訊詳情

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

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

全文檢索與高頻更新沖突?三種架構(gòu)方案與選型指南 1. 先搞清矛盾根源全文檢索和高頻更新為什么天然打架幾年前我接手過一個電商后臺的搜索模塊業(yè)務(wù)方提了一個看似普通的需求商品標(biāo)題、賣點、品類路徑要做全文檢索同時價格、庫存、狀態(tài)這類字段每天會被訂單系統(tǒng)和庫存系統(tǒng)高頻更新高峰期每秒上百次修改大促時還會翻幾倍。當(dāng)時團隊的第一反應(yīng)是直接上 Elasticsearch 不就行了結(jié)果上線后第一周就出現(xiàn)了搜索延遲飆到 2 秒、CPU 頻繁打滿、段合并把寫入毛刺放大到無法接受的問題。那次經(jīng)歷讓我徹底明白一件事全文檢索和高頻更新放在一起不是加一臺機器能解決的存儲架構(gòu)必須從一開始就認真選型。先理解為什么這兩件事天然沖突。全文檢索依賴倒排索引而倒排索引為了追求查詢效率通常設(shè)計成不可變的。以 LuceneElasticsearch 的底層引擎為例一次文檔更新本質(zhì)上不是改掉那行數(shù)據(jù)而是把舊文檔標(biāo)記為 deleted再寫入一個全新文檔。這個標(biāo)記刪除 新寫入的動作落在磁盤上就是不斷產(chǎn)生新的小 segment 文件。后臺的 segment merge 線程會持續(xù)把這些小文件合并成大文件合并過程中又涉及 IO 和 CPU 的大量消耗。高頻更新對這套機制的沖擊是全方位的。你寫入越快refresh 產(chǎn)生的 segment 越多segment 越多查詢時需讀取的文件越多耗時自然上升merge 越頻繁CPU 和磁盤 IO 越緊張又反過來拖慢寫入。結(jié)果就是寫得更快查得更慢兩頭堵。更隱蔽的是被標(biāo)記刪除的文檔并不會立刻釋放空間如果你的更新頻率遠大于新增頻率索引文件會越來越大磁盤占用虛高最后連緩存命中率都跟著下降。所以看到全文檢索 高頻更新這個組合第一反應(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 還是雙寫。我在做方案評審的時候習(xí)慣先讓團隊把下面四個問題用一句話回答清楚。這四個答案基本能鎖定 80% 的選型空間。第一個問題業(yè)務(wù)允許搜索結(jié)果的延遲是秒級還是毫秒級全文檢索的近實時特性決定了它天然有延遲。Elasticsearch 默認 1 秒 refresh意味著你寫入一條數(shù)據(jù)后最多 1 秒才能被搜到。如果業(yè)務(wù)要求用戶剛修改的商品標(biāo)題必須立刻能搜到那 ES 單寫方案基本出局除非你能接受更復(fù)雜的實時性補償。反過來如果延遲 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)存壓力、合并風(fēng)暴、冷熱節(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)。默認配置是為批量導(dǎo)入設(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ù)比如從主庫重新導(dǎo)一次就能恢復(fù)的檢索索引。3.3 關(guān)閉副本寫入寫完再恢復(fù)寫入期間把副本數(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è)計上降低更新代價把會高頻更新的字段和幾乎不變的字段分開處理。比如商品標(biāo)題、描述這種低頻修改字段正常建立倒排索引價格、庫存這種高頻字段用doc_values: false或者干脆不建索引、只做存儲。倒排索引的更新代價遠高于列存你為價格搜索這個低頻需求付出的成本會在每次庫存更新時加倍奉還。方案一適合什么情況我建議數(shù)據(jù)量在百萬級、更新 QPS 在 500 以下、團隊只有一兩個人維護 ES 的小團隊優(yōu)先考慮。它的好處是架構(gòu)簡單不需要引入額外的中間件和鏈路。缺點是天花板低只要業(yè)務(wù)增長到一定程度你早晚要面對調(diào)不動了的尷尬。我們當(dāng)時在方案一上撐了大概半年直到大促壓測時發(fā)現(xiàn) 30 秒的 refresh 已經(jīng)讓 merge 線程持續(xù) 100% CPU才下定決心做架構(gòu)升級。4. 方案二MySQL ES 雙寫用 CDC 把更新動作解耦當(dāng)更新頻率超出單 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 的更新由下游消費者負責(zé)業(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 抖動就會導(dǎo)致 Canal 消費積壓、延遲升高進而影響 binlog 的拉取進度。加上一層 Kafka/RocketMQ 后Canal 只負責(zé)生產(chǎn)消息消費速度由下游單獨控制天然就有了削峰填谷和故障隔離能力。4.3 消費者側(cè)的冪等與去重這是雙寫方案最容易翻車的地方。ES 的更新操作必須是冪等的——同一個文檔更新 10 次和更新 1 次最終結(jié)果一致。做法很簡單用業(yè)務(wù)主鍵作為 ES 文檔的_id消費者每次都執(zhí)行index全文檔覆蓋寫而不是update局部更新。這樣即使 MQ 重復(fù)投遞或者消費端重啟后重放也不會產(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é)果的標(biāo)題是新的但描述是舊的這類靈異問題。4.4 對賬與補償機制異步鏈路跑久了必然會出現(xiàn)漏消費、MQ 消息丟失、ES 寫入失敗等事故。所以一定要設(shè)計定期對賬任務(wù)每天凌晨掃描一批業(yè)務(wù)主鍵比對 MySQL 和 ES 中的關(guān)鍵字段發(fā)現(xiàn)不一致就觸發(fā)重新同步。對賬的頻率取決于你對數(shù)據(jù)質(zhì)量的容忍度。我們當(dāng)時是每小時對賬一次最近 24 小時有變更的商品全量對賬放到凌晨低峰期做。4.5 這個方案的邊界和代價最大的代價是鏈路變長定位問題不再像以前那樣一條命令能解決。另外binlog 的保留時間也要關(guān)注MySQL 默認可能只保留幾天如果 MQ 消費延遲超過這個窗口就必須用全量重建的方式補齊。還要注意Canal 本身也有單點問題生產(chǎn)環(huán)境至少部署兩個實例做主備切換。方案二是我個人最常用的推薦尤其是數(shù)據(jù)量達到千萬級、更新頻率達到每秒數(shù)千次的業(yè)務(wù)。它在穩(wěn)定性和架構(gòu)復(fù)雜度之間取得了一個比較好的平衡。但這個方案的 ES 集群依然要承擔(dān)全部更新壓力只是從業(yè)務(wù)直接打變成異步批量打。如果你的更新頻率已經(jīng)高到所有商品的價格庫存每小時全量變一遍那方案二的 ES 寫入量依然是全量文檔數(shù) × 更新次數(shù)這時候就要考慮方案三了。5. 方案三ES 只做索引層把易變字段隔離出去第三個方案的思路更激進一點既然 ES 怕高頻更新那就不讓它存那些高頻變動的字段。ES 里只保存用于檢索、排序、過濾的靜態(tài)字段標(biāo)題、描述、類目、品牌等而價格、庫存、狀態(tài)這些高頻字段留在 MySQL/Redis 等主存儲中。查詢時先通過 ES 拿到命中的文檔 ID 列表再用 ID 去主存儲批量拉取最新字段做最終的結(jié)果組裝。5.1 為什么這樣設(shè)計能解決本質(zhì)問題回到第一節(jié)說的矛盾根源ES 的寫入成本主要來自倒排索引的不可變特性更新一個字段需要重寫整個文檔。如果你把價格從 ES 文檔里挪出去那一次庫存變更就不再觸發(fā) ES 的任何寫入。ES 里的商品文檔可能一個月才更新一次標(biāo)題改了、描述改了而價格庫存每天變一千次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段合并風(fēng)暴基本消失查詢 P99 從 800ms 降到了 120ms。代價是應(yīng)用層多了一段合并邏輯以及對 Redis/主庫的額外讀取壓力。5.3 什么字段適合留在 ES什么字段必須拆出去我按字段特征做了一個劃分需要參與倒排索引、分詞匹配的字段標(biāo)題、賣點、描述——必須留 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ā)生在初始導(dǎo)入階段。但高頻更新意味著每個 segment 里都有大量被標(biāo)記刪除的舊文檔這些舊文檔不會被立刻清理而是占著空間等 merge。后臺要不斷把含垃圾的 segment 合并成新 segment才能釋放空間。這會導(dǎo)致一個讓人崩潰的循環(huán)寫入越多 - 標(biāo)記刪除越多 - 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è)計下高頻更新只影響當(dāng)天那個索引其他索引的查詢和寫入穩(wěn)如泰山。6.5 冷熱分離把近期高頻更新的索引放在熱節(jié)點SSD、高 IO 配置把歷史索引放在冷節(jié)點機械硬盤、低配置。這樣即使某個熱索引發(fā)現(xiàn) merge 風(fēng)暴也不會干擾到冷節(jié)點上承載的歷史檢索和聚合報表。我們在實踐中還把冷節(jié)點的副本數(shù)調(diào)成 0進一步降低集群整體負載。這么看下來你已經(jīng)能理解為什么高頻更新 ES是一個需要嚴肅對待的組合。單純在業(yè)務(wù)代碼里調(diào) API 是沒用的如果不從底層機制上做規(guī)避性能天花板就在那里。但反過來說只要理解了段合并的運行機制前文提到的方案三把易變字段拆出去為什么能同時解決寫入放大和查詢變慢就很好理解了——ES 的寫入量直接減少了一個數(shù)量級merge 的頻率自然降下來了。7. 三套方案實測對比延遲、吞吐、成本和坑位盤點紙上談兵沒有說服力這里把我們當(dāng)時在同一業(yè)務(wù)場景下做的一組壓測數(shù)據(jù)分享出來。測試環(huán)境是 3 臺 8C16G 的云主機ES 集群 3 節(jié)點單索引 20 個分片副本 1數(shù)據(jù)量約 800 萬商品文檔。寫入負載是每秒 2000 次文檔更新其中 80% 是價格/庫存類高頻字段更新20% 是標(biāo)題/描述等低頻字段更新。查詢負載是固定的 200 QPS 關(guān)鍵詞搜索。指標(biāo)方案一單體 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ù)一致性強一致單鏈路最終一致需對賬最終一致查詢回源保證準(zhǔn)確架構(gòu)復(fù)雜度低中中高運維成本高需長期調(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 仍然偏高——當(dāng)時的瓶頸在 MQ 消費積壓導(dǎo)致 ES 批量寫入的 wave 效應(yīng)。方案三的查詢 P99 最低但這是犧牲了價格庫存字段的索引能力換來的如果業(yè)務(wù)需要按當(dāng)前價格做搜索過濾比如價格區(qū)間查詢方案三的那些字段就無法參與這種查詢了必須回源后在內(nèi)存里二次過濾。這是方案三最需要權(quán)衡的點。成本和坑位方面方案一的人力成本最被低估。很多人以為不用引入新組件就是省錢但當(dāng) 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)驗我給一套可落地的選型建議姑且當(dā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)。這相當(dāng)于一個更細粒度的拆分。最后分享幾條自己的保命經(jīng)驗。第一永遠不要只依賴一條鏈路。不管是方案二還是方案三必須預(yù)留一條全量重建退路。我們每個月會跑一次全量同步腳本把 MySQL 全量數(shù)據(jù)重新灌入 ES用新索引 別名切換的方式發(fā)布確保任何增量鏈路問題最終都能靠全量修復(fù)兜底。第二監(jiān)控不要只看集群整體指標(biāo)單索引級別的 segment 數(shù)量、merge 耗時、deleted 文檔占比這三個指標(biāo)一定要配告警。deleted 文檔占比超過 30% 時基本可以判斷更新模型出了問題該考慮拆索引或換方案了。第三線上調(diào)參一定要留變更記錄。ES 的_settings接口改起來太方便生產(chǎn)環(huán)境經(jīng)常有人隨手改掉 refresh 或 merge 參數(shù)出了問題卻不知道誰改的。至少對索引 settings 的變更走一次代碼評審流程。關(guān)于這套架構(gòu)后續(xù)還可以怎么演進我目前的計劃是在方案三的基礎(chǔ)上加入實時數(shù)倉的維度把價格庫存的歷史變化軌跡單獨存儲這樣既能做當(dāng)前價過濾又能支持價格趨勢分析檢索系統(tǒng)和高頻更新系統(tǒng)之間的邊界會更干凈。選型這件事沒有銀彈關(guān)鍵是搞清楚自己的業(yè)務(wù)屬于哪種更新模型再決定讓哪個組件承擔(dān)什么職責(zé)。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
丁香婷婷综合影院| 日日肏天天操| 嫩BBB搡BBBB榛BBBB| 久9热| 人人操AV| 色婷婷五月天天天天天天天天天| 国产欧美大香蕉一区| 五月天久久网站| 中文字幕欧美久久| 麻豆AV一区二区三区| 五月婷婷伊人网| 激情综合网激情五月丁香五月俺也去| 婷婷亚洲五月| 九九99在线观看视频| 这里只有精品免费视频在线观看| 色婷婷色综合激情91| www.色婷婷.com| 丁香婷婷久久 | 丁香婷婷六月在线资源观看| 91丁香五月| 五月婷激情| 狠狠擼综合| 超碰2021| 婷婷五月激情中文字幕| 91成人性爱视频| 黄色三级日本| 亚洲黄网在线| 在线播放成人网站| 五月天亚洲综合网| 色婷婷欧美在线| 婷婷婷久久| 久99久热| 综合深爱五月| 六月丁香深深爱综合网| 亚洲国产成人AV在线| aaa久久| 狠狠婷婷爱| 99这里有精品| 秋霞免费三级片| 五月丁香婷婷欧美色图视频五月丁香777电影| 噜噜色婷婷| 91狠狠色丁香婷婷综合久久| 日本 色综合| 大香蕉AV在线| 亭亭五月丁香五月天激情| 严洲天天插| 熟女网站久久| 婷婷的五月天另类视频| 夜夜做夜夜愛| 九九精品综合| 色婷婷影院| 99久久6| 99re视频在线播放| 九九亚洲视频| 色九月丁香婷婷蜜桃在线观看| 国产毛片操B| 激情五月丁香五月色| 日韩黄在免| 夫妇交换刺激做爰| 成人午夜在线视频| 大香蕉啪啪啪| 激情激情激情网| 播五月丁香六月| 玖玖精品视频| 狠狠五月婷婷| 亚洲五月婷| 国精产品一区二区三区| 久久五月人人摸| 五月婷婷综合影院| 国产亚洲av片| 久久综合图片| 玩熟女五十AV一二三区| 久久伊人大香蕉| 久久久噜噜噜久久人妻| 夜夜操激情| 狠狠88综合久久久久噜噜噜| 秋霞免费三级片| 在线91日韩| 国产亚洲精品久久久久久牛牛| 免费啪啪亚州视频| 欧美在线骚货| 丁香五月天导航| 大香蕉人人人| 丁香婷婷婷五月综合色情| CHINESE熟女老女人HD视频| www.操.com| 五月天婷婷永久免费视频| 中文字幕 码精品视频网站| 69精品人妻不卡视频| 江苏少妇性BBB搡BBB爽爽爽| 日本熟妇乱妇熟色A片蜜桃| 激情综合色| 色五月天成人| 五月婷婷影院| 亚洲成人无码网站| 色在线99| 色久女| 婷婷六月丁香五月| 五月婷婷综合丁香视频| 婷婷五月综合啪| 日韩精品二三区| 五月天久久www| 思思久久精品视频| 五月丁香网中文字幕| 五月总合激情网| 丁香五月欧美激情| 99在线热| 色色色色网站| 亚洲激情久久| 九色综合网| 最近中文字幕2019视频1| 五月天婷婷丁香| 99综合视频一体| 成人一级片| 五月丁香| 99日本视频在线观看专区| 久色视频首页| 五月丁香啪啪啪| 欧美日韩99| 怡春院久操| 日本毛片内射| 婷婷五月AV| www.91在线观看| 久久久久亚洲A∨成人乱码电影| 亚洲一区二区无码蜜乳av| 九九99免费视频| 丁香六月婷婷激情| 丁香五月婷在线| 99精品网| 啪啪啪啪五月天| 亚洲精品亚洲人成人网| 色色五月丁香婷婷| 99精品久久| 色婷婷偷拍| 中文字幕乱轮| aV欲望人妻中文字幕| 久久九九99亚洲国产久精综合| 欧洲色色| 日本激情五月| 99婷婷五月天激情| 欧美视频五区| 六月99天天婷婷激情综合| 九九九九国产| 九九国产精视频| 96精品久久久久久久久| 亚洲第一黄网| 超碰99在线观看| 激情综合网五月在线播放| 亚洲操人| 激情的五月| 亚洲亚洲人成综合网络| 丁香六月亚洲综合| 五月天婷婷基地综合网| 丁香色色网| 99天堂网| 婷久久高清| 色婷婷视频综合| 狠狠一日| www久久艹| 一起草无码| 五月丁香六月婷| 五月婷婷日| 97碰碰视频| 久久大香蕉视频| 91人碰| 98色花堂98t.R| 免费婷婷| 久久这里只有精品网| 婷婷综合丁香| 国产成人在线精品| 日日色五月天| 激情婷婷九月| av中文在线| 先锋资源 996| 丁香婷婷九月| 国产黄大片在线观看画质优化| 五月丁综合在线观看| 亚洲深喉aV| 激情五月丁香综合网站 | 天天开心AV色综合婷婷五月天| 国产免费性爱| 婷婷伊人综合中文字幕| 丁香婷婷五月六月天| 热99热久| www.狠狠| 另类 在线| 色综合色五月| 婷婷日韩| 九九热免费视频| 六月天丁婷婷| 性色欲情 网站| 成人无码精品1区2区3区免费看| 色丁香五月婷婷在线| www.91在线看| 亚洲国产精品成人午夜| 99婷婷| VA婷婷亚洲| 久久视频婷婷| 中文字幕91,综合| 欧美久热| 激情九月综合| 丁香五月天论坛| 欧美熟女99| 久草婷婷网| 婷婷五月色综合| 婷婷六月开心网| 久艹久| 激情五月天婷婷丁香| 六月婷婷国产| 亚洲第一色色色色| 亚洲五月天,激情视频| 婷色影院| 中文字幕免费高清电视剧| 婷婷久久精品| 亚洲色视频| 在线五月色播| 激情五月第四色| 婷婷色一二三区波多野结衣| 综合久久五| 九九色热| 九久9精品| www.五月天社区| 日本a片网址| 国产视频福利| 99热精品观看| 99热免费精品| www91在线| 天天干天天日蜜臀av| 99爱爱| 丁香五月婷婷大香蕉| 这里只有精品在线免费视频| 九九热这里只有精品一| 能看的av片| 91一起操| 婷婷丁香六月综合激情站| 97婷婷五月激情六月丁香伊人| 欧美性色A片免费免费观看的| 色欲久久综合| 日日爽夜夜爽| 精品无码久久久久久久久| 五月婷婷激情综合| 天天日天天爽| 被男人添B超爽视频| 99无码精品| 91婷婷在线| www.婷婷五月天.com| 天天日天天日天天搞| 五月丁香好婷婷姑娘综合网| 五月天色官网| 2025年最新亚洲在线欧美| va中文资源在线观看| 五月天大香蕉| 丁香五月激情综合在线观看| 五月天激情.com| 国产成人va在线| 79色色免费| 成人欧美Va| 亚洲无码成人性爰网| 99久热这里有精品| 久久这里只有国产精品视频| 五月婷婷丁香在线| 夜夜资源站| 久操激情| 嫩BBB槡BBBB搡BBBB| 久久这里只有精品热在99| 五月丁香无码| 丁香色五月 97干| 国产日韩欧美性爱| 伊久大香蕉| AV片在线观看| 久久久久激情| 九九热10| 思思热精品在线| 综合激情站| 婷婷五月丁香五月| 色墦五月丁香| www.玖玖婷婷在线| 九九人人操| 丁香婷婷五月天亚洲| 深爱开心激情网| 99热精国产这里只有精品| 婷婷五月天激情基地| 婷婷五月丁香六月| 色五月丁香五月| 国产成人精品一区二区三区视频| 成人 九九九九| 99热主页日本| 色色日韩无码| 国产婷婷五月天| 久久激情网| AV色色天堂中文| 五月婷免费视频| 伊人色综合影院视频| 深爱 五月天| 99热亚洲精品66| 日本九九视频| 天堂久久丁香| 26UUU一区二区| 丁香六月婷婷综合在线| 婷婷五月影院| 天天肏高清在线| 婷婷在线观看五月天在线视频| 欧美丁香六月激情视频| 97色婷婷| 伊人婷婷五月天av| 国产另类综合| 丁香五月色| www.激情com| 亚洲成人色五月婷婷综合| 狠色色狠网| 色婷婷基地| 亚洲中文AV| 久操婷婷| 色在线99| 五月天久久激情| 五月停停直播| 超碰在线人妻| 五月婷婷啪啪啪| 色婷婷激情五月天| 99久久国产宗和精品1上映| 丁香五月激情棕合| 伊人婷婷五月天| 国产精品人人做人人爽人人添 | 97欧美在线| 99原创自拍视频在线观看| 另类图片色五月| 婷婷五月天激情文学| 激情六月婷婷| 激情婷婷五月亚洲| www.色婷婷| 在线超碰91| 婷婷丁香五月综合网上| 超碰cap| 美女亚洲五月丁香| 狠狠干,狠狠操| 丁香五月亚洲激情婷婷射| 另类视频五月天| 北条麻妃伊人 | 欧洲亚洲欧洲99久久| 99自拍视频| 亚洲一级AV在线免费播放| 操逼在线视频| 曰韩五月丁香色婷婷无码| 五月激情丁香久久综合网| 91偷拍视频| 啪啪操超碰| 日本操B视频| 丁香五月欧美婷婷| 一级性爱视频| 射琪琪| 五月丁香六月情| 91re色综合视频| 日韩av干| 婷婷色色丁香| 91肏| 2015好吊操| 另类激情中文| 婷婷五月情色| www.久久久久久久久久.com| 开心五月网 | 激情美女五月天| 激情伊人五月天| 色婷婷亚洲婷婷| 久久xx| 天天情天天狠天天透| 九热视频| 六月婷婷色五月| 日韩中文字幕| 人人视频人人干人人做| 色综合久久天天综合网| 成人无码精品1区2区3区免费看| 丁香五月综合激情久久潮喷| 婷婷综合婷婷| xxx.色婷婷| 国产夫妻操逼内射视频| 国产日批视频| va婷婷在线| 思思99热热热99| 色色五月天丁香| 97色啪| 色色色色色五月| 五月激情久久| 天天网曰日曰夜夜综合永久免费| 九月av在线| 久久婷婷五月综合网| 六月婷婷毛片| 97碰碰久久| 性欧美大战久久久久久久83| 五月丁香花成人社区| www.五月天| 亚洲人妻av伦理| 天天操天天插| 白人荫道BBWBBB大荫道| 黄色视频网站在线播放| 六月丁花香啪啪激情欧美| www.婷婷六月天| 九九久久综合| 麻豆AV一区二区三区| 国外亚洲成AV人片在线观看| 久久金品黃色| 久久 天天| 欧洲色色| 99自拍视频在线观看| 五月婷婷性爱| 婷婷五月天综合网| 国产,欧美,学生妹,视频| 九九成人电影婷婷| 五月婷视频在线观看| 丁香五月婷婷少妇| 任你弄在线视频免费| 青青夜夜狠狠夜夜狠狠| 疯狂做受XXXX高潮A片动画| 丁香婷婷综合激情五月色,开心五月丁香花综合网,激情综合五月亚洲婷婷,五月天 | 国产午夜精品一区二区三区四区| 99热骚货| 激情五月婷色| 久婷五月| 色噜噜婷婷| 99热在这里只有精品| 极品色丁香| 日本色婷婷| 五月天另类综合网| 色五月色开心开心五月| 日本色五月| 在线天堂9| 在线网黄| 婷婷舔| 黄色国久久| 亚洲无码yw| 99re这里只有精品免费| www色婷婷| 色色综合热| 99热个人在线| 99re6在线视频精品免费| 丁香婷婷五月天激情四射| 射久久丁香五月| 性爱动图国产麻豆一区二区三区| 97在线/亚洲| 婷婷综合天堂| 青青久久91| 丁香婷婷五月香蕉91| 六月婷婷中文字幕| 99热这里只有精品青草| 五月叮香啪| 欧美五月婷婷| 色综合久久99色| 噜噜狠狠色| 99热这里只有精品免费观看| 久热A| 婷婷五月丁香伊人网| 人人操Av| 色婷婷最爱五月| 六月婷婷六月天天在线免费| 丁香五月天激情五月天激情五月天激情网 | 97五月天婷婷| 五月丁香花婷婷玉莉AV| 色婷婷小说| 五月激情网综合| 俺去也在线官网| 久久婷婷五月天激情| 婷婷五月天六月综合| 66久久视频在线| 婷婷色五月天第7色| 超碰三级秋霞| 狠狠干激情五月| 国产热精品| 日批在线看| 狠狠干青青草| 九九久久网| 色婷婷亚洲六月婷婷中文字幕| 无码任你操| 精品人妻伦一二三区久| 在线观看的av| 99ri视频| 热99.com婷婷| 91人操人人人操人| 天天插天天狠| 五月丁香花激情综合网| 婷婷五月激情小说| 日本色道视频网站| 伊人在线视频| 色色色天堂网| 久久久WWW| 亚洲午夜精品久久久久久人妖| 亚洲 25P| 天天日天天干天天天| 99热亚洲| 天天日天天色| 五月激情婷婷四射| 五月天狠狠网站| 337p午夜影院| 色色色色色色色色色色色色色97| 91色色色| 色99无码| 婷婷丁香六月影视| 欧美狠狠色| 婷婷五月花| 久久艹 五月天| 婷婷五月激情五月丁香五月| 五月丁香日本一抹本| 婷婷综合激情五月综合| 日本色久| 色五月丁香com| 香蕉97碰碰碰超视精品| 五月丁香六月激情综合啪啪| 色综合九九| 婷婷五月在线观看| 青青久在线视频免费观看| cao视频,现在观看| 梁铮版蜘蛛女在线观看| 婷婷九月在线| 色婷婷在线视频观看| 九九热在线99| 五月婷婷综合影院| 超碰人人在线| 日日插日日干| 色伦专区97中文字幕| 超碰99热精品| 五月天精品综合| 婷婷97| 色欲AVV| 久久99婷婷| 成 久久| 五月综合久久| 婷婷丁香成人五月天| 色的色综合| 影音先锋噜一噜| 秋霞九九无码| 色综合xx| 涩涩涩五月天| 久久伦乱| www.夜夜操.com| 色狠狠色噜噜AV天堂五区| 欧美日韩国产一区| 五月婷婷丁香婷婷| 久久综合五月情| 国产日批视频| 婷婷五月天小说| www.henhenl| 色五XX| 亚洲色就是色色色| 激情综合网五月天天| 日韩在线视频中文字幕| 91视频综合网| 婷婷丁香五月婷婷| 国产精品岛国片在线观看免费| 色五月激情综合| AVDV久久| 九月丁香婷婷综合激情| 日本99视频| www.日本91| 美女天天爽| 色五月色综合| www.五月激情红色| 91性交在线播放| 日本www五月婷婷| 91久久久久久| 九九99视频精品| 久热免费| site:jszngf.com| 五月婷婷啪啪| VA国产在线综合网站| 色五月亚洲| 丁香啪啪| 色婷婷小说| 国产片天天爽夜夜爽| 久久婷婷视频| 婷婷基地成人五月天| 日本天天色| 天天搞夜夜叫| 丁香五月五月婷婷欧美大香蕉 | 久久人妻伦理| 九热视频精品| 99精品久久久| 婷婷色五月激情| 丰满老熟妇BBBBB搡BBB| 亚洲性色XXXXX| 国模九区| 成人短视频在线免费观看| 黄色一级影片| 婷婷五月色播放| 激情五月图| 99久久国产宗和精品1上映| 5月婷婷性视频| 亚洲超碰青涩| 色五月成人| 六月丁香啪啪啪| 色色色图| 99久久婷婷五月天| 五月亭大香蕉| 丁香六月婷婷综合| 婷婷六月花| 丁香久久九九99| 91成人看片| 婷婷激情小说网| 偷拍丁香九月激情| 婷婷色片| 南京搡BBBB搡BBBB| 日本三级网址| 日韩一级片| 五月天激情社区| 超碰人人99| 狠狠做深爱婷婷久久综合一区| 伊人青草成人| 日韩AV中文字幕在线| 色综合久久99色| 久久亚洲网| 香蕉久久五月| 精品人妻一区| AV操操操| 开心婷婷五月花| 操人精品| 国产SUV精品一区二区883| 激情五月六月婷婷| 五月天婷亚洲天综合网综合| 視频福利乱色| 久热在线中文字幕色999舞 | 激情深爱五月天| 久久九九视频| 77799热| 99re青青草| 青青青在线视频国产| 婷婷综合激情| www.五月婷婷久久.com| 激情五月丁香五月| 婷婷五月丁香A∨| 亚洲操逼网| 欧美成人A片AAA片在线播放| 五月婷婷开心爱| 久久久久久久久久久97| 婷婷狠狠干| 久久ab| 五月丁香六月激情视频| 色综合久久天天综合网| 日本妈妈乱| www.综合久久.com| 亚洲成人综合网在线免费观看| 激情五月色婷婷| 国产日韩欧美性爱| 婷婷丁香五月综合网上| 国产热精品| 色 免费网站视频| 玖玖精品婷婷| 精品九九婷婷| 激情电影五月婷婷| 国产在线网| 丁香六月综合激情| 人人爽天天爽| 婷综合| 五月天婷婷乱论小说| 婷婷丁香五月,狠狠综合| 开心五月天私房婷婷| 全高清无码视頻| 色婷婷四色| 韩日AV片| 色综合久久无码| 牛牛热这里只有jingpin| 99热免费| 欧美日韩成人在线| 五月天婷婷色| 中文幕无线码中文字蜜桃| 99这里只有精| 国产精品色色| 婷婷激情五月综合| 极品少妇XXXX精品少妇偷拍| 五月丁香啪啪| 欧美日韩精品人妻狠狠躁免费视频| 丁香婷婷激情| 久久性爱视频| 青柠影视免费高清电视剧| 无码AV免费精品一区二区三区 | 婷婷五月图片小说网| 丁香五月综合在线播放| 狠狠狠狠操| 色人妻五月| 国产精品A片| 色天天综合| 久色资源网| 夜夜骑夜夜撸| 夜夜躁婷婷AV| 欧美黄色AA片哗啦啦啦| 噜噜在线| 免費观看aV在线网址| 亚洲天堂玖玖| 91狠狠色丁香| 九九综合视频在线观看| 五月天自拍网| 五月婷婷婷婷网| 六月丁香五月婷婷| 人人爱操| 欧美性生交XXXXX无码小说| 日本一級黃色一級片| 狠狠爱婷婷五月天| 狠狠99| www久久99com| 丁香五月天激情网| 午夜成人综合| 少妇性按摩无码中文A片| 九九综合影音先锋| 人人操人人爰人人一天天碰夜夜拍夜夜爽-中国A级毛片天天看天天谢… | 99在线观看亚洲| 亚洲瑟瑟精品在线| 五月丁香五月婷婷| 五月综合无码| 婷婷干| 大香蕉伊人99| 婷婷激情鹿城五月天| 五月丁香六月激情综合欧美| 九九re精品视频在线观看| 五月丁香啪| 久久久久久久久久久jjjj| 欧美天堂久久| 国产精品色一哟哟| 最新av在线观看| 成功精品影院| 色婷婷激情四射视频| 天天日天天插天天操| 色综合色综合色综合| 婷婷色网站| 亚洲日韩操B| 97人人操人人| 久久精品亚洲热| 99操| 久草五月婷| 色色综合日韩| 99九九热在线观看| 色色丁香婷婷五月天| 另类视频在线| 99亚洲视频| XX色综合| 69热在线| www.色九月| 婷婷五月天 丁香五月天 裸体| 99在线热| 丁香色五月天| 少妇高潮呻吟A片免费看软件| 五月丁香久人妻中文| 日日操,天天操| 99性爱| enecarbon-materials.com污K127封锁请涟系@wip1688 | 久久永久网址| 日本久久性| 色九月综合| 五月天另类综合网| 99热这里只有精品2| 色婷成人狠干| 五月深爱网| 免费无码毛片一区二区A片 | 九月激情婷婷丁香| 丁香五月AV综合| 久久性爱视频| 91热网址| 欧美丁香五月夫妻天| 五月丁香亭亭激情操逼网| 婷婷五月色花丁香社区| 大香蕉av在线| 五月丁香精品| 六月撸婷婷| 性爱人人网| AAAA网站| 99久久終合| 天天做天天爱天天做| 大香焦啪啪啪| 婷婷丁香激情五月| 亚洲V国产V欧美V久久久久久| 中文精品久久久久人妻不| 伊人久久99| 婷婷精品在线| 99久久9| 欧美精品999| 欧美性爱五月天| 99久久久免费| 婷婷五月天久久| 婷婷色网| 91精品久久久久久综合五月天| 久久之人妻| 色色色综合色| 国产99热在线看| 色色a| 丁香亭亭久久| 午夜天堂一区人妻| 深爱激情网婷婷| 中文字幕日本最新乱码视频| 五月激情婷婷播播网| 亚洲日本韩国| 亚洲AV电影av| 色导航色婷婷五月天在线观看| 夜色.cnm| 日本婷婷在线| 深夜男女福利刺激影院一区完整| 99热这里有精力| 色色网站免费在线视频| 99ER热精品视频| 狠狠草综合网| 玖玖99精品视频| 91人人操人人爱| 婷婷五月成人| 香蕉久久国产AV一区二区| 五月婷婷啪啪网| 综合超碰熟| 91精品无码| 99r这里只有精品哦| 日韩一区二区A片免费观看| 五月天激情视频五月天| 婷婷终合色图| 日韩aaa| 五月丁香在线偷拍视频| 国精产品一区二区三区| 色综合com| 秋霞网在线观看理论91| 久色大香蕉| 久久性操| 狠狠操狠狠狠| 欧美在线视频免费播放| 激情丁香五月| 婷婷丁香成人五月天| 成人av中文字幕| 风流少妇A片一区二区蜜桃| 五月天婷婷影院影院观看| 97干视频| 七月丁香婷婷 色色| 五月香婷婷| 久久只有精品| 综合网啪| 99视频| 97热精品| 丁香五月婷婷激情123| 丁香激情五月| 日日操夜夜擼| 久久九九爽| 噜噜噜噜噜色| 国产精品久久久99视频| 婷婷丁香黄色| 五月色网| 色丁香五月| 丁香六月天婷婷开心综合| 另类A片| a级毛片一区二区免费视频| 色九区| 26uuu欧美日本| 思思久ren热| 婷婷五月天AV在线| 婷婷激情五月呦呦| 亚洲激情网| 99在线免费观看| 色婷婷深爱五月| 丁香婷婷色| www.久久色.com| 五月婷丁香| 国产精品社区| 精品久久艹| 99热青青草原| 天天色月| 丁香五月手机在线| 91丨九色丨国产打屁股网站| 蜜桃人妻无码AV天堂三区| 丁香六月婷婷综合激情欧美| 五月天综合图片| 777丁香六月青青草婷婷综合久月| 九九热自拍| 激情五月天福利| 婷婷99视频在线| 丁香六月婷婷| 色色色色五月| 婷婷天堂综合| 很很操很很操| 欧美三9久九观看| 成人AV在线电影| 欧美精品999| 丁香婷婷91在线观看视频| 开心婷婷五月天激情网| 五月天自拍视频| 日本色婷婷综合| 99re熱| 四色永久成人网站| 91热在线| 97在线刺激| 亚洲色人妻| 亚洲精品中文字幕成人片| 婷婷丁香五月综合久久| 99久操视频| 玖玖色综合色| 久久九网| 国内精品免费一区二区2009| 日韩AC在线免费观看| 激情人妻蜜夜系列区| 国产偷人爽久久久久久老妇APP| 4399成人黄A片| 99天堂网| 欧美性生交A片免费看| 中字幕视频在线永久在线观看免费| 97av在线视频| 成人片黄网站色大片免费毛片| 婷婷久久综合| 99久久人妻精品无码二区| 无码少妇高潮喷水A片免费| 无码人妻AV久久久一区二区三区 | 婷婷五月天桃花网| 久久婷婷青青草| 天天干天天日蜜臀av| 丁香五月激情五月色综合| 五月丁香A片| 成人午夜在线视频| 超碰97免费在线| 五月色色网| 九九九这里只有精品| 开心婷婷五月激情网小说| 色婷婷婷婷成人网| www.激情五月天com| 五月婷视屏在线观看| 99色| 色色性爱视频| 国产真实乱对白精彩| www.ywav| 91婷婷色| 立川无码av| 婷婷色欧美激情| www.婷婷六月天| 天天狠狠夜夜狠狠2023| 欧美性生交XXXXX无码小说| 色.五月综合网| 久久的爱大香蕉| 99精品久久| 亚洲 在线 性爱| 久久久这里有精品| 久久久久9999| 草草夜夜操| www.久久久久久久久久久| 丁香五月婷婷啪啪| 五月丁香六月欧美| 99精品在线观看视频| 好吊丝aV| 五月激情天天干| 激情性爱五月天| 超碰97在线操| 六月婷婷综合激情| 俺五月| 色五月婷婷影院| 中文字幕日产A片在线看| 九色porny在线观看激情四射| 色五月激情综合| 思思99精品视频| 五月天开心激情综合网| 日日操夜夜撸| 国产综合丁香五月天| 成人噜噜网| 人妻久久久久久久久久久| 激情综合网五月激情| 视频一区二区在线| 91精品久久久久久综合五月天| 第四色婷婷色五月| 五月久久婷婷| 丁香五月停停av| 99惹在线精品免费观看| 五月激情六月综合| 国产精品扒开腿做爽爽爽A片唱戏 亚洲爆乳无码精品AAA片蜜桃 | 无码四色色色| 99九九视频| 国产乱人偷精品人妻A片| 天天肏高清在线| 亚洲中文乱字字幕线在永久| 色五月琪琪| 色婷婷人人| 丁香五月婷婷丫| 久久五月丁香婷婷| 丁香五月天社区婷婷| 激情婷婷五月天伊人在线观看 | 极品九九九九九九| 思思热在线精品视频网站| 日本久久高清| 啪啪东京热| 久久成人精品视频| www.激情| www色色com| 少妇人妻人伦A片| 久久男人网婷婷| 色婷五月天亚洲| 五月天啪啪| 538任你爽视频不一样的| 色五月婷婷丁香婷婷| 99色| 欧美在线视频99| 91丨九色丨丰满人妖| 综合色视频| 懂色AⅤ| 91久久精品国产91性色TV| 婷婷四月 成人 狠狠干| 操人无码| 99热爱爱干干日| 99在线免费视频| 久热在线观看视频9| 婷婷香五月| 综合色色五月| 26UUU亚洲欧美| 丁香五月社区| 天天噜天天插| 国产激情综合五月久久| 伊人久久五月天| 日本啪啪天堂| 色情久久久| 大香蕉中文| 亚洲成人另类| 婷婷五月大香蕉| 人妻激情在线| 任你日视频| 婷婷爱爱蜜臀天天操| 色婷婷综合影院| 人人九色| 五月婷婷AV| 综合婷婷| 99热这里只有精品8| 就要爱综合| 丁香五月综合| 99热这里只有在线播放| 欧美日韩成人在线| 五月天欧美 另类小说| 激情五月婷婷| 亚洲VA在线| 丁香五月天堂亚洲社区| 亚洲色激情| 久久五月情| 色婷婷五月天成人网| 精品99在线看| 久久激情五月| 色亚洲视频| 丁香五月天操B| 热思思| www.五月天婷婷| 97自拍视频在线| peg 2区三区四区的| 国产成人精品一区二三区熟女在线| 亚洲色色色色| 婷婷综合偷拍| 久久婷综合| WWW五月天| 青青久久五月天丁香婷婷| 日本成人噜噜噜| 欧美六月| 亚洲亚洲人成综合网络| 久久五月激情| 操操自拍| 激情五月综合| cc精品国产性传播| 久久免费操| 五月婷婷丁香六月| 99热这里只有精品搜| 玖玖激情五月天| 久久久激情| 天天撸天天干天天插| 激情AV在线| 蜜桃五月天| 这里只有精彩视频| 五月久久五月激情| 丝袜熟女一区二区三区| 色婷婷久久综合| 亚洲综合五月天综合| 99热99在线精品| 色五月欧美| 丁香五月区| 91chinese在线| 久热精品免费视频4| 九九婷婷综合| 婷婷色五月色妇| 国产五月天婷婷| 97超碰婷婷五月天| 激情综合在线观看| 日本九九热| 综合色五月| 日本波多野结衣视频| 色综合婷婷| 毛片毛片毛片毛片| 伊人五月天综合网| 五月丁香A∨在线| 超碰99在线观看| 狠狠搞狠狠操| 天天操夜夜夜拍拍拍| 欧美啪啪9| 人人操9| 九九在线精品| 丁香综合婷婷五月天| 天天成人综合| 亚洲天堂爱爱| 五月婷中文娱乐综合| 九九亚洲| 五月色色网| 人人爱人人摸人人澡| 免費亭亭成人| AV在线资源| 狠狠色网| 真实的国产乱XXXX在线91| 婷婷五月天激情网| 五月丁香久久久久| 婷婷丁香五月亚洲免费| 九月婷婷综合八月丁香在线观看| 91青娱乐青青草| 成片免费观看大全| 东京热五月婷婷| 色婷婷视频| www.色婷婷| 操逼六区| 激情综合色播| 婷婷涩五月天综合| 99热这只有| 思思99热热热99| 中美月韩免费A片| 97爱综合| 美女被肏网站在线看| 激情五月婷婷| 婷色五月天| 亚洲综合五月天婷婷| 成人av中文字幕| www.婷婷,com| 人人草人人看| 丁香婷婷视频| 野外99热| 久久亭亭电影| 99久热在线精品99re6热| 91精品激情9| 国自产拍偷拍精品啪啪一区二区| 五月婷婷五月天| 日日综合网| 大香蕉AV在线| 五月天激情电影| 在线中文av| 五月丁香婷婷中文| 九九热中文| 夜夜 操无码| 狠狠丁香| 在线日韩视频| 夜夜干 夜夜操| 五月丁香六月激情在线| 五月天婷婷在线播放| 天天狠狠夜夜狠狠2023| 亚洲无码99| 婷婷丁香六月| 少妇AB又爽又紧无码网站| 日韩免费视频| 亚洲三级无码| 曰韩五月丁香色婷婷无码| 色五月婷婷在线观看第一页舔| 97超碰,人人舔,人人操,人人摸| 亚洲V国产V欧美V久久久久久| 色色欧美色色色| AV操一操| 五月天婷婷色色网| 天堂A∨在线| 天天做天天爱天天摸| 丁香六月亚洲| 色五月天在线| 五月丁香六月婷婷国产视频| 色五月综合资源推荐| 91色综合| 噜噜在线| 91狼友视频网页更新| 久久sp免费视频| 99热偷拍| 激情五月综合ì香亚洲| 99热精品9| 久久激情网| 人妻无码精品一区| 亚洲A片成人无码久久精品青桔| 婷婷亚洲在线| 日韩日比视频| 色八月婷婷| 五月婷婷狠狠干| 欧美日韩成人在线网站| 色色色综合网| 婷婷五月综合性爱| 亚洲无码yw| 色婷婷91激情小说| 五月天婷婷丁香六月| 99在线资源| 桃色成人网| 激情丁香久久久久久| 亚洲激情亚洲激情| 五月婷导航| 99热这里都是精品| 国产婷婷色综合AV蜜臀AV | 99碰在线视频| 色婷婷综合久色AV五色最新| 色色亚卅| 久久婷婷成人| 久久99最新地址| 另类激情码| 丁香婷婷六月天| 色色婷婷丁香五月天| 荡乳尤物3HP1V5| 六月婷色| 色综合开心五月深爱五月| 182TV大香蕉| 99热热热99精品婷婷| 免费国产视频| 丁香婷婷久久老熟女综合网| 9l视频自拍9l视频自拍九色学生| 国产成人精品亚洲线观看| 男人視頻站| 天天日夜夜草进麻麻的子宫| 久操97| 色婷婷狠狠禁18久久| 五月丁香六月婷| 综合久久综合| 99ER热精品视频| 亚洲色图81p| 婷婷AV丁香| 在线观看欧美| 精品九九九久| WWW色综合| 在线中文亚洲| 婷婷丁香久久网| 五月网激情| 黄色五月婷婷| 婷婷干六月综合旧址| 电影《战争与艾拉》免费观看| 开心五月网 | 成人av在线电影| 99热久久这里只有精品2010| 啪啪啪大香蕉| 91黄址| 天天做天天爱天天爽综合网| 成人无码精品1区2区3区免费看| 日本啪啪天堂| 成人va视频| 五月婷无码| 亚洲综合色丁香婷婷六月| 激情婷婷六月天| 伊人网大香| 色噜噜狠噜噜视频| 无码字幕中文| 五月天婷婷开心| 色五月婷婷中文字幕| 六月婷婷激情| 91成人电影| 五月天婷婷激情在线色图| 婷婷五月天激情五月天| http:色情日本com| 久久亚洲婷婷综合色五月| 亚洲综合九九| 久久久精品AV| 五月天 婷 欧美亚洲| 九九综合88| 九九性视频| 五月丁香狠狠爱婷婷综合| wwccc久久久| 免费无码毛片一区二区A片| 亭亭丁香aV| 狠狠干狠狠干| 六月丁香婷婷拍拍| 婷婷丁香五月激情| 婷婷97| 99精品综合| 亚洲一个色| 亚洲色婷婷| 99在线观看精彩视频| 久热99| 天堂婷婷五月色| 人与禽A片啪啪| 性爱电影科技贸易有限公司| 午夜天堂一区人妻| 先锋男人99资源| 老美AA片| 国产在线另类五月婷婷| 九九色婷| 五月天激情视频五月天| 日本大逼91| 9热在线观看| 日本九九九九|