欧美成人午夜精品久久久,国产?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
返回資訊列表
91成人电影| 性色播| 欧美激情综合| 五月丁香色六月激情干大屄| 久久久婷| www.婷婷五月天| 久久久婷婷婷| 色五月婷婷777| 97韩国久久电影院| 99热青青草| 色中色综合| 黄桃AV无码免费一区二区三区| 久久九九@| 日本三级日本三级99| 成人短视频免费| 五月天激情久久| 91狠狠综合久久| 99ri精品在线| 欧美丁香五月天| 婷婷丁香九月| 五月天丁香啪啪综合| 午夜不卡久久精品无码免费| 综合激情视频| 狠狠做深爱婷婷久久综合一区| 99re久热只有精品6在线直播.com| 日韩精品999| 深爱五月网| 色黑鬼导航| 青青草轻轻操| 9久久久久久久久久久| 五月综合视频| 97性视频| 免费AV播放| 欧美va在线观看| 亚洲激情综合五月婷婷啪啪| 俺也去在线久久精品23欧美综合视频网站,丰满人妻一区二区三区在线视频53,丰满 | 操操日韩| 另类丁香综合| 五月开心久久| 97人妻碰碰碰久| 伊人久久大香网| 成人一区在线观看| 九九精品99久久久| 久久综合五月天| 97在线碰| caobi四区| 激情五月天婷婷图| va婷婷在线| 九九热这里只有精品23| 一起草无码| 4399欧美另类视频| 成片免费观看视频大全| 免费国产视频| 久久99热这里只有| 天天综合五月| 亚城区在线| 99久久九九| 可以免费看的av网站| 91超级碰碰| 99人妻碰碰碰久久久久禁片| www.99热在线观看| 五月婷婷色综图片| 五月婷婷综合性爱噜噜| 婷婷五月激情四射手| 日日杆天天| 激情小说五月天| 天天做天天爱天天高潮| 俺也去色| 99偷拍视频在线日本| 成人亚洲精品久久久久| 俺去也五月| 国产精产国品一二三在观看| 精品人妻午夜一区二区三区四区 | 激情五月综合网| 五月丁香啪啪啪| 日韩九九| 就要去操亚洲成人精品五月天丁香婷婷| 国产又粗又大又爽又黄| 大婷婷色呦呦噜噜色呦呦噜噜| 久久天堂婷婷五月| 嫩草视频。| 亚洲激情久久| 这里只有精品久久| 日本人妻A片成人免费看片| 4399成人黄A片| 亚洲99一级无嗎特制在线| 亚洲sesesese| 婷婷丁香一月| 九九热中文| 丁香婷婷大香蕉| 亚洲网站观看视频| 婷婷五月天视频亚洲| 五月亭亭色| 婷婷五月花.97| 婷婷久久综合久| 99九九久久| 婷婷趴趴| 色婷婷精品小视频| 丁香 婷婷 激情 综合 五月| 99热综合在线| 色五月婷婷一二| 色五月av| 99热资源在线| 色五月婷婷激情五月| 婷婷六月中文字幕| 丁香五月天啪啪| 九七色色六月丁香| 看婷婷五月天网| 99人人操人人摸| 丁香五月网址| 伊人影院久久网| 天天五月丁香五月| 99干日本| 五月亭大香蕉| 婷婷色爱| 97在线观看| 操人精品| 狠狠色丁香久久婷婷综合五月| 人人摸人人干人人做| 激情五月天在线视频| 国产密乳av一区二区三区四区| 欧美日韩aaa| 欧美日韩99| 国产操逼网站| 婷婷五月18永久免费视频| 99热官网精品在线| 亚洲午夜成人av电影网| www.91在线观看| 香蕉久久五月| 99热99精品在线观看| 五月天激情无码专区| 国产黄色在线观看| Www.se.久久| 婷婷情色五月| 久久伦乱| 99热这里只有精品在线免费| 99热这里只有精品268| 国产AV成人精品| 亚洲精品444久久久久久| 香蕉影院色| 丁香影院五月综合| 美女激情综合| 亚洲五月丁| 国产精品久久久丁香五月八戒视频| 最近中文字幕大全免费版在线| 色情综合网| 国产精品日日躁夜夜躁| 亚洲AV色婷婷人禽五月天| 中文字幕在线免费观看视频| 色色色五月天婷婷| 天天射天天射一道本日本社区| 五月天激情综合网| www.无码com| 99爱在线视频观看| 激情综合婷婷久久| 伊人久久大香线蕉av最新| 四色综合网| 九九这里是免费的视频5| 777精品久无码人妻蜜桃| 丁香五月综合无码趴趴| 99热只有这里才是精品| 婷婷色综合| 九九碰九九爱97| 五月丁香大相交| 七月激情六月婷婷综合在线播放| 狠狠色噜噜狠狠狠888了| 婷婷综合五月天| 婷婷色五月天色| 天天天天天天操| 91N 一起草| 99热这里只有精品最新| 年轻的妺妺伦理HD中文| 色在线99| 在线99热| 色婷婷视频| 欧美色综合天天久久综合精品| 天天干天天av天天射| 九九成人精品免费视频| 国产成人av在线播放| www.99精品日操伊人乱碰在线| 日本啪啪网| 亚洲在线操| 日本综合久久| 色欧美色色色| 五月婷婷免费在线视频| 亚洲视频在线网| 噜噜久| 激情丁香五月天图片| 五月天五月色| 久久久精品99| 这里只有精品在线观看视频| 91无码视频| 性色播| AA片在线观看视频在线播放 | 婷婷五月天天激情| 美女婷婷六月色| 久色欧美| 日本操B视频在线观看| 夜色.cnm| 丁香六月视频| 激情综合网五月天| 亚洲色色五月天| 婷婷中文字幕版| 激情图片婷婷丁香五月| 97人妻碰碰中文无码久热丝袜| 国产FREESEXVIDEOS性中国| 亚洲va综合va国产va中文| 熟女人妻视频| 久久这里有精品| 中文字幕成人| 激情婷婷综合| 五月激情小说| 色婷婷六月开心中文字| 九九这里有精品| 久久人妻系列| 激情四射五月天| 人人插操| 在线中文av| 91视屏在线观看com.wwwvv| 国产精产国品一二三在观看| 色狠狠综合网| 91一起艹| 色九月综合网| 98国产精品综合一区二区三区| 婷婷综合视频| 99热这里都是精品| 婷婷五月精品在线| 日本69日人视频| 四川女人毛多水多A片| 五月婷婷六月丁香激情深爱| 久久久激情| 色婷婷亚洲在线| 色婷婷先锋| 少妇高潮呻吟A片免费看软件| 99热精品在线| 五月丁香色综合| BBWCUCKOLD精品熟妇| AⅤ色区| 性爱五月丁香| 五月天婷婷丁香人人操91| 婷婷色五月丁香六月欧美啪| 久久久久9999| 大香蕉五月天婷婷丁香91| 色呦呦美女| 激情亚洲五月| 婷婷色五月激情| 人人叉久| 大香伊人婷婷影院| 久久艹 五月天| 婷婷久久久| 久久婷婷激情视频| 五月丁香六月婷婷婷婷| 97色久| 琪琪色网址| 色噜噜婷婷| 婷婷五月电影院| 天天婷婷色六月| 色爱99| 婷婷综合精品| 青青草原亚洲天堂| 91干视频| 婷婷射综合| 亚洲99精品九九在线| 91久久久久久久久18| 99精品久久久久久久久| 人人干Av| 婷婷五月激情视频网| 亚洲俩性性爱图片久久第六页| 五月天综合区| 婷婷久久欧美| 色婷婷超碰| 超碰cap| 五月天久久久| 亚洲精品V天堂中文字幕| 自拍盗摄 另类| 精品国产va久久久久| 久久9情免费| 色色99| 丁香五月五月婷婷| 99热综合| 噼里啪啦在线观看免费完整版视频 | 亚洲欧洲中文日韩久久AV乱码| 五月婷视屏在线观看| 操B五月天| 婷婷五月丁香91| 成人在线视频一区| 91pornav在线| 九九精彩久久| 99网址在线看| 69精品人人人人| 久久久激情视频| 婷婷丁香九月| 99五月丁香丁| 干婷婷五月天| 九月丁香婷婷网| 五月婷婷碰碰| 久久99三级在线视频| 思思热在线| 99这里都是精品| 99热国产这里只有精品| 国产精品国产| 亚洲激情av| 激情五月无码| 99日韩网站| 精品久久久久久久人妻| 678五月丁香亚洲综合| 激情爱爱网站| www激情网| 丁香婷婷天堂| 五月丁香激情啪啪| 丁香五月综合网亚洲综合欧美狠狠| 97五月天| 五月天激情中文字幕| 少妇性按摩无码中文A片| 五月婷婷co.m| 91婷婷色 | 99这里只有精品| 丁香六月婷月91婷月| 激情五月天婷婷五月天| 啄木鸟黑丝一区二区| 国产精品美女久久久久AV超清| 狠狠操天天操天天操| www.minyis.com【JT】实力收量可预付QQ2101460746 | 欧美性爱中文字幕| 色九九九综合| 91狠狠综合久久久久久| 日本人妻伦在线中文字幕| 久久丁香五月| 丁香六月综合激情| 99热欧美精品| 婷婷色五月激情| 久久九九大香蕉电院| 啪啪啪啪五月天| 91久久免费| 思思久久精品| 婷婷五月天丁香久久| 亚洲AV成人在线| 精品人妻午夜一区二区三区四区| 1024操逼| 色综合色色| 天天日天天操天天干| 深爱激情五月天色婷婷| 亚洲综合色五月| 亚洲性爱电影| 综合色在线| 久久婷婷人人| 色婷婷五月网| 五月激情婷婷丁香| 色原狠狠综合| 丁香六月亚洲| 综合另类视频| 丁香五月婷婷国产在线| 精品网站:999WWW| 六月丁婷婷| 丁香五月六月激情久久| 久久久久久97| 综合狠久久| 超碰大香蕉网| 五月天天天天天天天天天天天天天天天婷婷婷| 免费视频无码| 99啪啪视频| 精品无码视频| 强辱丰满人妻HD中文字幕| 色婷婷在线电影| 大香蕉五月婷婷| 另类小说五月天综合网| 草草视频91| 天天操电影院色狼性av| 日韩 中文 欧美| 中国女人做爰A片| 蜜桃婷婷狠狠久久| 99热无码首页| AA丁香综合激情| 中文字幕黄色电影网址| 五月天婷婷基地丁香| 久久杏爱视频| 亚洲激情五月天| 久久九九Com| 丁香五月自拍| 开心激情综合| 99色综合| 亚洲色激情| 亚洲蜜乳AV| 91九九热| 九月婷婷在线观看| 青青999| 丁香花狠狠婷婷亚洲中文字幕| 丁香婷婷啪啪| 丁香色婷婷五月天| 5月婷婷激情6月| 国产avapp 网| 无遮挡国产高潮视频免费观看| 亚洲第一精品网站| 色色射| 婷婷五月精品| 久久亚洲色导航| 亚洲天堂久久| 欧美激情综合| 婷婷五月六月丁香| 国产亚洲色婷婷99精品| 五月激情婷婷国产精品久久久久久| 91丨九色丨东北熟女| 久久婷婷五月天丁香| 99久久精品色老| 日狠狠| 久久婷婷五月综合网| 久久婷婷91| 99精品在线下载| 亚洲国产精品SUV| 伊人大香五月天| 激情五月五月婷婷| 熟女乱论网| 色无码| 婷婷五月综合婷婷| 婷婷在线精品| 婷婷舔| 无遮挡国产高潮视频免费观看| 色色五月天丁香婷婷| 色高清无码视频| 亚洲欧美日韩VIP| 影音先锋 91工厂| 国产AV一区二区三区日韩| 色色色色色色色色色色色色色97| www.开心激情| www91在线| 激情六月天| 婷婷丁香宗合888| 99ri国产| 深爱激情AV| 久久se 综合网| 2w在线视频| 五月天激情综合在线| 激情亚洲五月| 人妻啪啪啪| 欧美三级视频下载| 涩五月婷婷| 婷婷激情五月天综合| 久久婷婷五月丁香网| 99久热在线精品99re6热| 色色综合日韩| 五月天丁香看婷婷| 丁香六月综合激情| 五月丁香六月婷婷中文版| 久久99网| 色婷婷a三区麻| 东北熟女视频99| 久久电影4399| 欧美婷婷五月激情| 人人爽欧美婷婷久久久五月丁香| 五月天激情www| 99精品高潮| 五月婷婷综合网| 深爱激情小说五月婷婷| 天堂成人A片永久免费网站| 极品色丁香| 欧美顶级少妇做爰HD| 久久aaa| 日本久久色| 第四色五月婷婷| 香蕉婷婷色五月| 人人操碰| 丁香六月婷婷久久综合| 婷婷五月天色综合翘| 五月婷婷六月激情| 婷婷五月天网| 婷婷六月插屄激情| 婷婷成人综合| 中文AⅤ大全| 日良久久| 婷婷开心久久| 久久国产精品乱子伦_靑青草…| 五月婷婷久久久| 中文字幕成人| 综合激情五月婷婷| 四月婷婷丁香| 99热精品在线| 五夜婷婷| 99热亚洲| 碰碰碰97国产| 色波激情五月天| 五日激情综合| 亚洲精品无码A片一区二区| 黄色五月婷| 五月丁香视频在线观看| 久久99激情丁香婷婷小说网| 操碰99| av婷婷丁香| 天堂AV三级| 色色国产| www色哟哟| 夜夜涩涩涩| 天天日夜夜| 婷婷综合成人| 五月天激情综合网| 免费色色色| 久色网址| 亚洲精品小视频| 日本WWW九九九| 97碰精品| 激情综合网激情五月婷婷| 久久久精品色| 亚洲va欧美va国产综合久久久| 色五月自偷自拍婷婷婷婷| 91人人操.COM| 五月天激情网站| 色五月激情问网站| 九九香蕉网| 99热九九在线| AV大片在线观看| 久久只有精| 91丨九色丨高潮丰满日本| 极品少妇高潮啪啪AV无码| 婷婷六月天| site:ornaments52.com| 日本3级片一区2区| 一起操 91N.com| 亚洲五月天婷婷在线| 99热精品在线播放| 91色综合| 日韩啪啪视频| 久久综合五月天| 丁香五月欧美午夜视频| 日韩乱轮AV| 五月丁香六月激情综合啪啪| 丁香六月亚洲| 成人免费黄色短视频| 五月天婷婷激情| 丁香亚洲婷婷五月| 欧美在线视频99| 99热精品无码| 中文字幕五月久久婷| 五月婷婷六月爱| 亚洲超碰在线| 6月丁香婷婷激情| 九九性视频| 激情四射五月天| www.天天干| 五月天激情综合| 在线成人视频免费| 99精品热视频| 久久婷婷综合五月天| www99热| 五月激情综合美女久久| 五月婷婷中文网| wwwxxx五月婷婷小说| 久久婷婷五月天| 天天做天天爱高潮片| 综合九九久久| 婷婷午夜精品久久久| 日韩一级淫乱片一区二区三区| 色情综合| 丁香五月激情图片婷婷| 老师的粉嫩小又紧水又多A片视频| 伊人婷婷综合| 97久久久| 视频一区二区在线| 99热色婷婷| 182TV亚洲| 色婷婷丁香六月| 欧美色色色| 六月激情婷婷色| 国产精品18久久久| 天天草天天摸| 超碰精品在线| 日本不卡高字幕在线2019| 丁香五月影院| 国外亚洲成AV人片在线观看| 中文无码精品一区二区三区| AA片在线观看视频在线播放| 五月婷婷六月丁香激情深爱| 五月婷婷之综合激情| 日韩久久视频| 99热18| 五月天婷婷黄色| 国产精品美女| 99精品偷自拍| 色婷婷性爱| 黄网在线免费观看| 1995年关宝慧版蜘蛛女| 99成人网一区| 久久久久人妻| 五月天五月天激情网| 日韩三十六页| 伊人久久99| 免费精品66| 伊人久久大香| \\五月天婷婷激情| 无月播播激情在线观看视频| 人人人舔人人人操人人人摸人人人97| 久草视频一,二三四| 九九热大香蕉| 精品成人在线| 996热| 五月好婷婷| 亚洲免费看片| 在线亚洲综合网| 69热在线| 丁香五月天之婷婷影院| 婷婷五月综合社区| 狠狠色综合久久久久| 墨西哥毛片内射精| 深夜婷婷五月丁香| 色99日韩| 殴美97色| 99 这里只有精品| 五月天丁香成人| 密着浓厚中出乚交尾GvG935| 1024久婷| xx色综合| 欧美婷婷五月丁香| 丁香五月777| 五月丁香九九九综合| 色色色色色色色色综合网| 99久久激情视频| 国色天香伊人狠狠色| 五月天伊人久久| 五月天婷婷久久| 人人草人人看| 九九热99精品在线| 激情综合网激情五月天| 五月天桃色深爱网| 婷婷久久综合| 国产成人va在线| 欧美激情丁香五月| 天堂爱啪啪| 啪啪一区| 五月停亭六月,六月停亭的英语| 丁香五月综合色婷婷| 激情五月婷婷综合秋霞| 天天做天天爱天天高潮| 久久久网站| 丁香婷婷五月人体| 久久se 综合网 | 爱性综合网| 久久看婷婷| 超碰爱爱爱| 99免费在线视频| 精品婷婷| 亚洲综合视频天天精品| 国内裸舞二区| www.色99| 2050人人操免费工开爱| 亚洲操操操| 色婷婷aV四虎| 五月激情婷婷丁香| 九九热99在线视频| 色偷偷色婷婷| 色五月婷婷伊人| 六月婷婷在线视频| 丁香五月天激情四射网络不好 | www.色婷婷.com| 色护士综合| 可以免费看AV网站| 伊人九九九久| www夜夜操com| 888久久久| 色播播婷婷| 39视频第二区| www.色五月| 精品久热69| 五月丁香大相交| 成人五月天丁香婷| 激情影院丁香五月| 九月婷婷综合八月丁香在线观看| 五月丁香综合| 五月天激情图片| 九九这里都是精品| 热99精品视频观看| 久久人妻超碰一区| 色五婷婷开心缴| 五月天另类图片区99| 五月丁香激情深爱婷婷| 婷婷丁香在线| 天插天啪天啪天啪| 丁香花五月天社区| 伊人久久大香网| WWW.天天日| 国产成人精品亚洲线观看| 天天色播| 亚洲亚洲人成综合网络| 色婷婷五月基地在线| 超级97碰碰| 男人視頻站| 久9免费视频| 99久久婷| 五月天天丁香婷婷在线中| 在线观看亚洲视频影院| 99在线免费视频播放| 人妻丰满精品一区二区A片| 五月婷婷六月丁香综合在线| 99热碰碰热| 99re思思久久| 五月婷婷色| 婷婷五月丁香基| 91九色PORNY中文啦| 深夜婷婷 丁香| 琪琪狠狠干| 五月婷婷婷| 91丨九色丨国产打屁股| 婷婷午夜精品久久久| 午夜日日| 五月婷色| 色五月视频无码播放| 大香蕉久久伊人婷婷五月丁香| 六月丁AV| 热99国产精品| 97碰91| 激情五月天网站| 五月丁香色停停啪啪啪| 丰满少妇乱A片无码| 婷婷六月激情丁香| 狠狠色丁香久久综合婷婷亚洲成人福利| 色域五月婷婷丁香| 色色网站免费观看| 翔田千里 50岁 无码| 亚洲中文字幕AV| 五月婷婷丁香六月在线| 婷婷六月天| 婷婷综合五月| 婷婷综合五月| 精品色色网| 五月丁香啪啪综合| 亚洲精品**不卡在线播he| 五月天婷婷无码视频| 大香蕉伊在| 欧美成人精品A片免费一区99| hd五月婷婷在线| 亚洲欧洲国产精品| 4438全国最大视频成人网站在线观看| 99资源在线视频| 色狠狠综合| 五月天婷婷色在线视频免费观看 | 综合久久高清| 99riAV国产精品视频| 这里只精品热在线18| 亚洲色欲欧美一区二区三区| 激情丁香五月激情婷婷| 五月婷婷欲色| 成人视频一区| 色色丁香婷婷五月天| 激情五月天情色| 五月丁香六月久久| 天天干天干| 婷婷久久综合| 五月丁香婷婷激情四射迷人| 五月丁香大相交| 国产欧美日韩一区二区三区| A网在线欧洲| 99天堂网| 欧美偷偷操| 麻豆科斗777| 久久婷婷五月天蜜桃| 亚洲旡码| 色五月婷婷丁香凹凸| 久久婷中文字幕| 伊人日日干| 97碰碰人人| 99久久婷婷综合| 五月丁香激情综合啪| 丁香婷婷六月激情综合| 第五色婷婷| 国产肥白大熟妇BBBB视频| 禁片二区| 日日想日日夜日日操| 五月草视频| 粉嫩AV久久一区二区三区| 97超级碰人人| 色9色| 免费黄色片子| 五月婷婷综合性爱噜噜| 婷婷丁香五月天婷婷| 26UUU精品一区二区Com| 色在线99| 91jiuseshunv| 99热精品综合| 色爱综合网| 思思久久99热只有频精品66| 色五月婷婷婷婷婷婷婷婷婷婷| 婷婷五月天亚洲综合网| 99操视频| 精品一区二区三区四区五区六区| 外国碰视频网站97| 五月丁香 啪啪| 99视频久久| 成人看片网站| 色五月婷婷老师| 人人爱操| 免费观看全黄做爰的视频| 久综合色| 婷婷五月激情五月激情| 五月天婷婷在线视频| 天天色,天天操,天天射| 开心婷婷中文字慕| 日本的α片xxxwww| 六月丁香婷婷色69| 五月开行婷婷色五月| 欧洲激情五月天婷婷| 色99热| 亚洲色色色色色色色色色| 亚洲秘 无码一区二区三区妃光/1| 无码一区精品一区视频| 91综合在线| 色色色热热热| 91九色国产| 九九热这里只有精品6| 99热精品中文字幕| 日韩啪| 丁香五月天堂网| 99久久国产宗和精品1上映| 色播五月天激情| 国产乱妇乱子在线播视频播放网站 | 91超碰九色| 99久久a线观| 俺去也在线www色官网| 色婷婷4| 可以观看的AV| 色色免费网站| 人妻丰满精品一区二区A片| 五月香婷婷| 成人性生活免费观看。| 色天使色综合| 亚洲av日韩无码| 女人天堂av| 激情五月天伊人av| 爱射综合| 天天日天天肏天天奸| 少妇性BBB搡BBB爽爽爽视頻| 婷婷激情五月综合| 影音先锋91视频| 欧美日韩99| www.人人操人人看人人想人人摸 人人人人操,COM | 中文字幕日产A片在线看| 天天综合精品| 亚洲AV成人无码电影| 无码色综合| 日本女va| 欧美这里只有精品| 精品婷婷| 丁香九月激情久久| 月婷婷亚洲| 这里只有精彩视频| 蜜桃五月天| 中文AV在线观看| 五月丁香综合伦理片| 99成人无码| 91啪啪视频| 色色网站日本91| 欧美黑人大吊| 色五月丁香五月| 色婷婷基地 | 日本97在线视频| 精品99爱免费视频在线观看| 五月丁香狠狠| 五月天婷婷丁香| 国产成人亚洲综合亚洲| 五月丁香久人妻中文| 婷婷五月综合在线| 五月婷婷五月天激情网| 超碰二区| 六月丁香婷婷爱| 激情综合网之激情五月| 亚洲 在线 性爱 | 国产婷婷五月色情综合| 久久丁香五月| 婷婷五月精品| 狠狠干五月丁香| 婷婷久久五月| 99热99在线精品| 五月婷婷六月激情网| 天天做天天爱| 色婷婷中文| 天天搽天天射| 91人人爽狠狠狠| 艹天天射| 五月丁香六月婷婷的女人| 亚州操操| 丁香婷婷婷婷十二月在线观看视频| 五月婷婷深深爱| 狠狠色综合久久| 国产五月视频| 亚洲成人色五月婷婷综合| 五月婷婷啪啪网| 五月天激情小说| 无码se| 丁香五月婷婷综合精品素人| 另类小说五月天| 久久久18| 九九久久99精品免费观看www| 色色婷婷五月| 婷婷色网| 婷婷五月色播放| 婷婷色情网| 激情婷婷丁香| 99资源在线| 亚洲视频图片婷婷五月| 五月天激情小说网| 久久婷婷五月综合| 国产激情综合五月久久| www五月婷婷88导航| 久久99久久99精品免观看粉嫩| 能看的av片| 人妻丰满精品一区二区A片| 色99婷婷五月天| www.五月天性.com| 另类少妇人与禽zOZZ0性伦| 婷婷五月天综合AV| 99热久| 91呦呦呦| 丁香五月激情综合啪啪| 思思热视频| 婷婷情色五月天| 日本色天堂| 日韩性视频| 91九色在线| 欧美久热| 96丁香六月婷婷蜜桃综合久久| 91亚洲免费片| 九九热这里只有精品6| 亚洲色无码A片一区二区麻豆| 丁香五月在线自慰| 日韩无码成人电影| 99热色无码| 五月丁香影视| 欧美性爱特黄一级aaaassss| 超碰99在线观看| 久久婷婷成人视频| 丁香网站| 国产成人va在线| 色天使色综合| 丁香五月天婷婷中文字幕| 五月天激情美女久久| WWW色五月天| 激情内射人妻1区2区3区| 丁香色六月| 亚洲亚洲人成综合网络| 婷婷丁五月| 国产毛片欧美毛片久久久| 超碰99在线| 五月婷婷综合网| 午夜无码精品色综合久久| 三男玩一女三A片| 人人做天天爱| www.99久久久久99| 婷婷伊人网| 日本色婷婷五月天成人电影| 操99| www.丁香黄色五月天人与| 天天天天操| 日日日影院| 久久久久久久8| 色无码| 亚洲色婷婷视频| 国产精品色婷婷99久久精品| 久久这里有精品| 五月丁香成人网| av网址在线播放| www.99热| 天天爱天天日| 精品国产a| 婷婷丁香久久| 婷婷丁香五月天小说| 日日操夜夜擼| 少妇搡BBBB搡BBB搡毛茸茸 | 五月丁香成年黄色| 色婷婷亚洲婷婷| 亚洲最大五月天成人网| 六月丁香AV| 激情四射五月天| 婷婷娱乐丁香综合网| 91日在线视频| 97碰碰视频在线观看| 色色五月婷| 91婷婷视频| 99综合久久| 综合网五月天123| 欧洲亚洲免费视频9| 九月婷婷| 亚洲色无码| 色热久资源| 九热视频免费观看| 五月天久久久| 五月综合激情| 69午夜成人影片| 九九狠狠干| 丁香六月婷婷基地| 丁香五月Av| 日韩五月丁香| 安息电影在线观看完整版| www。久久久久一b。Cc| 婷婷激情五月天在线| 激情五月天视频| 丁香五月天人体| 91久久综合| 色五月婷婷在线观看第一页舔| 婷婷五月天激情基地| 天天综合五月天| 色级停停| 天天插天天射| 色老久久| 这里只有精品9| 色婷婷综合久色AV五色最新| 成人国产欧美大片一区| 色女伊人| 天天色五月| 丁香五月色| 丁香五月激情综合婷综| 五月天色色网站| 色婷婷亚洲在线| 五月丁香爱婷婷深深| 激情五月四色| 六月丁香婷| 色噜噜狠狠色综合日日| 26uu| 丁香五月综合久久八| 五月激情四射网站| 天天干,天天日| 99色色| 影音先锋777xfplay色资源网站| 丁香婷婷五月六月久久| 五月激情影视| 激情婷婷久久| 少妇综合网| 狠狠狠人妻| 丁香六月婷婷综合激情欧美| 亚洲成人在线电影网站| 天天肏视频| 久久99激情| 久久久久久人妻| 丁香激情综合| 五月天精品综合| 26UUU精品一区二区c〇m| 色婷婷六月天| 亚洲成人网站在线播放| 欧洲MV日韩MV国产| www.五月天| 久久久免费精彩视频| 玖玖资源站中文| 青青草原福利在线| 婷婷五月色亚洲| 五月婷六月天| 色久免费| 97好吊操| 五月丁香花婷婷玉莉AV| 婷婷五月天最新综合你懂的| 四川操逼站| 国产亚洲99久久精品熟女| 亚洲午夜av| 九九热在线视频| 激情综合网五月婷婷| 天天综合网在线| 久久a热| 激情五月天色播| 影音先锋91| 久久网日本| 在线婷婷| 亚洲综合色色色| 成人AV在线电影| 少妇性按摩无码中文A片| 97碰碰在线看视频免费| 丁香六月无码播放| 夜夜夜夜撸夜夜操| 婷婷狠狠操| 伊人网碰碰| 五月激情视频| 天天色播| 国产精产国品一二三在观看| 久久99精品久久只有精品| 欧美综合激情丁香五月六月婷| 色五月五月天| 99热这里只有精品官网| 日日色五月天| 五月丁香六月婷婷婷婷| 五月激情婷婷六月丁香| 五月丁香啪啪啪| 日韩人妻无码一区二区| 日韩成人免费电影| 婷久看人爽| 日日日影院| 亚洲激情五月天| 日韩啪啪视频| 日婷婷久久开心| ZpRSw| 亚洲精品99| 激情丁香五月婷婷| 五月丁香花成人社区| 五月天激情图片网| 九九亚洲| 亚洲免费观看高清完整版AV线| 第2色五月婷| 久操福利| 五月亭久久无码视频| 国产1区2区3区在线观| 五月婷网站| BBWCUCKOLD精品熟妇| 色婷婷在线影院| 亚州AV超碰人人操| 国产日韩欧美| 99在线观看视频免费| 思思久日精品视频| 丁香五月 综合| 五月丁香啪啪啪综合网| 黄色片久久| 五月欧美色播| 婷婷激情五月综合| 色色狼人综合| 色婷婷在线视频| 色很久综合| 激情婷婷五月社区| 97伦乱| 久久精品永久免费| 成人做爰高潮A片免费视频 | 热99玖玖99玖玖99九九| 人妻人人操| 激情五月婷| 99久re热| EEUSS鲁片一区二区三区| www.97视频| 五月婷婷六月激情在线| 五月综合丁香婷婷| 嫩草国产| 玖玖资源在线视频| 激情五月天情色| 色五月天天| 少妇高潮呻吟A片免费看软件 | 激情五月天综合图片小说网站| 久久丁香综合精品综合| 婷婷综合网站| 啊V视频在线观看| 91碰碰视频| 内射综合网| 综合99综合久久久久久久| 丁香综合网| 91蝌蚪窝视频在线| 伦99热| 无码激情AAAAA片-区区| 激情综合五月天| 思思 热 99| 婷婷久久欧美| 夜夜干夜夜操| 亚洲视频久久| www.夜夜操.com| 六月婷婷香蕉| 色热久| 色五月天激情| 五月激情站| 26uuu美女三级视频| 伊人玖玖网| 99玖玖免费视频| 成人日韩欧美| 亚洲一个色| AA片在线观看视频在线播放| 丁香伊人网| 99操视频| 秋霞三级色戒| 人妻丰满精品一区二区A片| 爱操人妻| 国产日韩欧美性爱| 六月亚洲| 九九九九九九九九九九九九九九九九九九九在线视频 | www.cao.com久久| 天天爽夜夜爽夜夜爽精品视频| 俺去也五月| 淫水导航| 欧美日韩国产日本精品四虎网网站物| 婷婷久久免费| 亚洲国产成人综合| 六月丁香啪啪啪| 婷婷丁香五月,狠狠综合| 丰满女老板BD高清A片| www.99热日韩.com| 久久久国产精品黄毛片| 亚色网站小视频| 91聚色综合网| a久久| 激情五月丁香婷婷夜夜操| 色噜噜婷婷| 深爱激情五月天色婷婷| 91欧美| 久久激情五月网| 久久99精品日本| 亚洲五月婷婷| 丁香五月欧美色综合| 射婷婷中文字幕| 人人摸人人| 久久色情| AA片在线观看视频在线播放 | 婷婷色九月| 久久er+| 狠狠狠狠青草| 色色色色五月天| 26uuu亚洲色| 五月激情综合性爱| 六月综合婷婷开心伊人| 久久黄A片| 韩国中文字幕91| 久热亚洲| 五月丁香亭亭成人电影| 国产亚洲精品久久久久苍井松| 性爱电影科技贸易有限公司| 变态 另类 在线 | 午夜少妇在线观看视频| 激情五月无码| 午夜丁香 婷婷| 久久婷婷六月综合| 俺也去在线视频| 久久香蕉影院| 日本波多野结衣视频| 久久这里都是精品| 、激情六月天| 色色综合五月| 五月婷婷婷| 五月丁香人妻| 精热在线综合网| 99视频在线看| 色情综合| 五月天婷婷综合免费| 丁香五月AV| WWW久久久| 婷婷五月天在线观看第二页| 婷婷六月综合基地| 欧美成人精品A片免费一区99| 五月丁香婷婷伊人| 久热91| 狠爱婷色| 五月天激情国产综合婷婷婷| 五月花丁香婷婷| 九九熱最新視頻| 色99婷婷五月天| 亚洲精品V天堂中文字幕| 深情五月天| 一区二区中文字幕| 99热综合色图| 影音先锋高清无码资源网| WWW.婷婷| 五月色导航| 五月丁香久久综合| 另类亚洲电影| 99热这里有精品| 99久久网站| 婷婷久久丁香| 天天射影视综合网| 亚洲性受XXXX五月丁香| 国产精品第一国产精品| 色偷偷五月天| 国产精品-第3页-91JQ就要激情网91JQ5.JQJQ926.XYZ | 青草五月天| 久久婷婷五月天激情| 丁香色影院| 99ri在线视频| 99九九综合久久九九| 激情5月婷婷狠狠干| 日日噜噜久久婷婷五月天| 一级黄色影片| 天天干电影| 国产26uuu视频| 久久99热只有精品| 久久精品五月天| 五月天激情日色在线| 色日本五月天| 日本九九视频| 婷婷天天日婷婷| 天天干、天天日日| 欧美精品久久久久久视频观看| 成人人操| 久9热在线免费观看| 综合色播|