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

ARTICLE DETAIL

資訊詳情

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

UniSearch統(tǒng)一檢索層:多源搜索融合架構(gòu)與實(shí)踐

UniSearch統(tǒng)一檢索層:多源搜索融合架構(gòu)與實(shí)踐 UniSearch我如何用一套統(tǒng)一檢索層把三個(gè)“各自為政”的搜索系統(tǒng)揉成一個(gè)接到這個(gè)“UniSearch”項(xiàng)目的時(shí)候我一開(kāi)始是想拒絕的并不是因?yàn)榧夹g(shù)有多難而是我知道這類“統(tǒng)一搜索”的需求十有八九不是在做一個(gè)新搜索引擎而是在給一堆歷史包袱擦屁股。果不其然業(yè)務(wù)方那邊的情況非常典型訂單數(shù)據(jù)在MySQL里文檔和日志在Elasticsearch里商品和庫(kù)存部分?jǐn)?shù)據(jù)散落在幾個(gè)內(nèi)部API里用戶只想在一個(gè)輸入框里搜出所有東西并且希望結(jié)果按相關(guān)度混排。UniSearch這個(gè)名字聽(tīng)起來(lái)很唬人落地就是一個(gè)把各種數(shù)據(jù)源串起來(lái)的“總調(diào)度層”只是這個(gè)調(diào)度層要處理的坑遠(yuǎn)比想象中多。如果你也在做類似的事或者正準(zhǔn)備碰企業(yè)內(nèi)部搜索聚合這類需求這篇東西可以幫你少走很多彎路。我講的是自己實(shí)際落地的一套實(shí)現(xiàn)覆蓋從整體架構(gòu)選型、索引策略、查詢分發(fā)、結(jié)果融合排序到上線后各種疑難雜癥的排查實(shí)錄。所有方案都基于我踩坑后的最終版不是說(shuō)它唯一正確但至少是能扛得住線上流量和業(yè)務(wù)方花式蹂躪的一種設(shè)計(jì)。1. 統(tǒng)一搜索到底在解決什么問(wèn)題先說(shuō)一個(gè)最容易混淆的認(rèn)知UniSearch不是搜索引擎它是一層“調(diào)度和融合中間件”。搜索引擎關(guān)心的是怎么從海量文檔里快速撈相關(guān)文檔而UniSearch關(guān)心的是怎么把已經(jīng)存在于不同系統(tǒng)里的檢索能力以統(tǒng)一的接口暴露出去。你可以把它理解成公司前臺(tái)的接待員——你不會(huì)直接去找財(cái)務(wù)、去找法務(wù)、去找技術(shù)部而是把訴求告訴前臺(tái)由前臺(tái)判斷該找誰(shuí)然后把多個(gè)部門(mén)的答復(fù)整理成一份簡(jiǎn)報(bào)交給你。1.1 三種典型接入場(chǎng)景拆解第一類場(chǎng)景是結(jié)構(gòu)化數(shù)據(jù)源的直查。比如MySQL或PostgreSQL里的訂單表、用戶表檢索條件通常很固定按訂單號(hào)、按用戶名、按時(shí)間范圍、按狀態(tài)。這部分完全不值得自建倒排索引直接通過(guò)關(guān)鍵詞解析生成SQL條件即可難點(diǎn)只在于如何把用戶輸入的模糊關(guān)鍵詞安全且高效地轉(zhuǎn)換成查詢條件。第二類場(chǎng)景是全文檢索引擎的代理。Elasticsearch這類系統(tǒng)本身已經(jīng)做得很好UniSearch在這里的角色不是替代它而是把ES的DSL翻譯成內(nèi)部統(tǒng)一的查詢模型避免上游系統(tǒng)直接與ES耦合。這樣做的直接好處是哪天你想從ES換成OpenSearch或者把一部分索引遷到ZincSearch上游業(yè)務(wù)代碼一行都不用改。第三類場(chǎng)景是實(shí)時(shí)API的在線聚合。商品庫(kù)存狀態(tài)、配送進(jìn)度這類數(shù)據(jù)時(shí)效性極高而且經(jīng)常不在你自己掌控的數(shù)據(jù)庫(kù)里只能通過(guò)供應(yīng)商或兄弟團(tuán)隊(duì)提供的HTTP接口實(shí)時(shí)獲取。UniSearch需要在這種場(chǎng)景下做并發(fā)請(qǐng)求、超時(shí)控制和結(jié)果合并。1.2 為什么必須做統(tǒng)一查詢模型我見(jiàn)過(guò)很多團(tuán)隊(duì)做統(tǒng)一搜索最后做成了一個(gè)“大雜燴”網(wǎng)關(guān)每個(gè)數(shù)據(jù)源各寫(xiě)一套查詢邏輯對(duì)外暴露的參數(shù)五花八門(mén)調(diào)用方得看文檔才能搞清楚什么時(shí)候傳filters什么時(shí)候傳q什么時(shí)候要拼search_type。這種方案上線半年后基本就進(jìn)入維護(hù)地獄。真正的UniSearch項(xiàng)目第一步不是寫(xiě)代碼而是定義一套“萬(wàn)能查詢中間格式”。這套格式一般包含query關(guān)鍵詞、filters結(jié)構(gòu)化過(guò)濾條件、sort排序規(guī)則、from/size分頁(yè)、highlight高亮需求、aggs聚合需求這幾個(gè)核心部分。所有數(shù)據(jù)源適配器只認(rèn)這一套格式對(duì)外也只暴露這一個(gè)格式。Elasticsearch適配器負(fù)責(zé)把它翻譯成DSLMySQL適配器負(fù)責(zé)把它拆解成WHERE條件API適配器負(fù)責(zé)把它映射成對(duì)方接口的請(qǐng)求參數(shù)。這才是“統(tǒng)一”二字的精髓。2. 架構(gòu)分層與核心技術(shù)選型確定要做統(tǒng)一查詢模型之后接下來(lái)的任務(wù)就是搭架子。UniSearch整體分為三層接入層、編排層、適配層。這三層各管各的事互不越界。2.1 接入層標(biāo)準(zhǔn)REST接口與參數(shù)設(shè)計(jì)接入層是一層薄薄的HTTP API核心就是參數(shù)校檢和統(tǒng)一鑒權(quán)。我建議接口體設(shè)計(jì)成這樣{ query: 華為手機(jī), filters: { status: ON_SALE, category_id: [12, 13, 14] }, sort: _score, from: 0, size: 20, highlight: true, data_sources: [mysql_products, es_docs, api_stock] }這個(gè)設(shè)計(jì)里有一個(gè)容易被人忽略的點(diǎn)data_sources字段。默認(rèn)情況下UniSearch會(huì)查所有已注冊(cè)的數(shù)據(jù)源但很多調(diào)用方其實(shí)只關(guān)心其中某幾個(gè)。顯式聲明之后編排層能省掉一大半無(wú)意義的查詢分發(fā)。鑒權(quán)方面我只推薦兩種內(nèi)部系統(tǒng)用簽名校驗(yàn)外部系統(tǒng)走OAuth2的client credentials模式。不要用簡(jiǎn)單的API Key打在URL上線上日志一刷全是泄露的憑證。2.2 編排層查詢分發(fā)與并行調(diào)度編排層是整個(gè)UniSearch的心臟負(fù)責(zé)決定“這個(gè)查詢要怎么拆”。一個(gè)查詢進(jìn)來(lái)后先做意圖識(shí)別——業(yè)務(wù)簡(jiǎn)單時(shí)可以用基于規(guī)則的方式來(lái)識(shí)別比如命中某些正則就路由到對(duì)應(yīng)數(shù)據(jù)源復(fù)雜度上來(lái)之后可以訓(xùn)練一個(gè)輕量級(jí)分類器來(lái)做這件事。我這次沒(méi)有上分類模型因?yàn)闃I(yè)務(wù)場(chǎng)景足夠收斂凡是帶status過(guò)濾的基本都查訂單和商品凡是帶highlight的在ES查詢里一定用得上。分發(fā)策略上我最想強(qiáng)調(diào)一點(diǎn)并行永遠(yuǎn)比串行好但要有下限保護(hù)。所有數(shù)據(jù)源同時(shí)發(fā)起請(qǐng)求等待最慢的那個(gè)返回后統(tǒng)一合并。這樣響應(yīng)時(shí)間等于最慢數(shù)據(jù)源的耗時(shí)而不是所有數(shù)據(jù)源耗時(shí)之和。但要給每個(gè)數(shù)據(jù)源的請(qǐng)求設(shè)置超時(shí)上限比如統(tǒng)一1000毫秒超時(shí)的數(shù)據(jù)源直接降級(jí)——返回空結(jié)果并記錄一條warning日志而不是讓整個(gè)UniSearch都跟著卡死。2.3 適配層五種數(shù)據(jù)源連接器的實(shí)現(xiàn)要點(diǎn)我這次接的適配器包括MySQL、Elasticsearch、HTTP API、Redis緩存和CSV靜態(tài)文件每種都有各自的實(shí)現(xiàn)要點(diǎn)MySQL連接器要處理的是動(dòng)態(tài)SQL拼接。關(guān)鍵詞中的特殊字符必須用參數(shù)綁定而不是字符串拼接防止注入。排序字段要做白名單校驗(yàn)絕不允許把前端傳來(lái)的字符串直接拼進(jìn)ORDER BY。Elasticsearch連接器要做的是查詢語(yǔ)法翻譯。用戶輸入的name:華為 AND price:[1000 TO 3000]這種Lucene語(yǔ)法需要由適配器解析后在內(nèi)部轉(zhuǎn)換成結(jié)構(gòu)化Query對(duì)象而不是直接把字符串透?jìng)鹘oES的query_string查詢否則用戶一旦傳錯(cuò)語(yǔ)法ES直接返回400。HTTP API連接器最麻煩的是參數(shù)映射和重試。不同系統(tǒng)對(duì)參數(shù)命名習(xí)慣完全不同有的叫keyword有的叫search_text有的叫q。適配器里維護(hù)一份字段映射表通過(guò)配置而不是硬編碼來(lái)管理。Redis連接器在這里不是做緩存而是做熱搜榜和聯(lián)想詞數(shù)據(jù)源。如果業(yè)務(wù)里需要“搜索框下面顯示熱門(mén)搜索詞”這種功能直接從Redis的ZSET里取top N即可。CSV連接器適合處理那種低頻更新的基礎(chǔ)數(shù)據(jù)比如產(chǎn)品規(guī)格表、地區(qū)代碼表。每當(dāng)文件更新后把數(shù)據(jù)加載進(jìn)內(nèi)存建立簡(jiǎn)單的倒排索引查詢時(shí)直接在內(nèi)存里跑。2.4 數(shù)據(jù)一致性方案雙寫(xiě)與事件同步做統(tǒng)一搜索時(shí)一個(gè)無(wú)法回避的問(wèn)題如果一個(gè)數(shù)據(jù)源里的數(shù)據(jù)變了UniSearch怎么感知我采用的方案是“業(yè)務(wù)主庫(kù)負(fù)責(zé)寫(xiě)UniSearch負(fù)責(zé)讀”的事件驅(qū)動(dòng)模式。具體做法是業(yè)務(wù)系統(tǒng)在數(shù)據(jù)變更時(shí)發(fā)送MQ消息UniSearch消費(fèi)消息后更新對(duì)應(yīng)的ES索引或清理Redis緩存。這里有一個(gè)大坑如果只依賴MQ很容易出現(xiàn)消息丟失導(dǎo)致數(shù)據(jù)不一致。所以我還保留了一個(gè)每天凌晨的全量對(duì)賬任務(wù)比對(duì)MySQL和ES里的記錄數(shù)及關(guān)鍵字段的校驗(yàn)值發(fā)現(xiàn)不一致的自動(dòng)重新同步。提示沒(méi)有對(duì)賬機(jī)制的統(tǒng)一搜索本質(zhì)上就是一個(gè)定時(shí)會(huì)“出現(xiàn)臟數(shù)據(jù)”的搜索。生產(chǎn)環(huán)境上線之前一定要把全量對(duì)賬定時(shí)任務(wù)安排上。3. 核心流程的工程化實(shí)現(xiàn)理念講得再多最后還是要落到代碼。我按一個(gè)真實(shí)的查詢請(qǐng)求從進(jìn)來(lái)到返回的完整鏈路把每個(gè)關(guān)鍵環(huán)節(jié)的工程實(shí)現(xiàn)都拆開(kāi)講一遍。3.1 查詢預(yù)處理同義詞、糾錯(cuò)、分詞策略原始查詢?cè)~不能直接拿去查數(shù)據(jù)源。首先要做的是查詢預(yù)處理。其中同義詞擴(kuò)展能讓“筆記本”同時(shí)命中“筆記本電腦”和“l(fā)aptop”。實(shí)現(xiàn)上可以通過(guò)配置一個(gè)同義詞詞典在查詢時(shí)做檢索詞擴(kuò)展。其次是糾錯(cuò)這里我用的是編輯距離算法配合業(yè)務(wù)詞表庫(kù)當(dāng)用戶輸入“華偽手機(jī)”時(shí)能識(shí)別出“華為手機(jī)”才是正確的查詢?cè)~。需要注意的是糾錯(cuò)一定要區(qū)分“建議糾正”和“自動(dòng)糾正”前者是在搜索結(jié)果下方提示“您是不是要找華為手機(jī)”后者是直接拿修正后的詞去查詢。我個(gè)人的經(jīng)驗(yàn)是默認(rèn)用建議式糾正只有用戶明確點(diǎn)擊后再執(zhí)行新查詢自動(dòng)糾正太容易翻車。分詞策略上有一個(gè)重要原則索引期分詞和查詢期分詞必須保持一致否則會(huì)出現(xiàn)明明數(shù)據(jù)在那、卻搜不出來(lái)的情況。比如MySQL數(shù)據(jù)源針對(duì)中文商品名做檢索如果索引時(shí)期用的是普通的ngram分詞查詢時(shí)期的預(yù)處理分詞也必須支持同種切法。如果一致性無(wú)法保證寧可用簡(jiǎn)單的contains匹配也不要上一個(gè)花哨的、不可控的分詞算法。3.2 多路結(jié)果的歸一化與字段對(duì)齊并行查詢返回的四五份結(jié)果形態(tài)各異需要把他們轉(zhuǎn)成統(tǒng)一的結(jié)果對(duì)象。這個(gè)過(guò)程我稱之為歸一元組。具體的歸一化規(guī)則如下表數(shù)據(jù)源類型原始返回結(jié)構(gòu)歸一化后的關(guān)鍵字段MySQL行記錄每行是一個(gè)dictid,title,summary,url,score,sourceElasticsearch命中_source及highlightid,title,summary,url,score,sourceHTTP API返回值自定義JSON結(jié)構(gòu)id,title,summary,url,score,sourceRedis熱詞ZSET member和scoreid為空title為熱詞score為熱度CSV內(nèi)存索引內(nèi)存對(duì)象id,title,summary,url,score,source這里有一個(gè)細(xì)節(jié)值得注意score的歸一化。MySQL和API適配器本來(lái)是不產(chǎn)生相關(guān)性分?jǐn)?shù)的我通常會(huì)在適配器里根據(jù)命中字段的重要程度去手動(dòng)計(jì)算一個(gè)基礎(chǔ)分值。比如命中標(biāo)題給3分命中摘要給1分命中標(biāo)簽給2分這個(gè)邏輯放在適配層做。3.3 融合排序策略加權(quán)、歸一化與去重所有數(shù)據(jù)源的結(jié)果匯集到一起之后面臨的難題是這些分?jǐn)?shù)并不可直接比較。ES返回0.8的分?jǐn)?shù)和MySQL里我手算的3分量綱完全不同。直接按原始分?jǐn)?shù)排序沒(méi)有任何意義。所以我采用了先歸一化、再加權(quán)、再融合的三步策略。歸一化可以用min-max歸一化或者使用Wilson下限來(lái)平滑處理避免單條極端分?jǐn)?shù)帶偏整體。加權(quán)則需要按照業(yè)務(wù)定義數(shù)據(jù)源權(quán)重。比如訂單這個(gè)數(shù)據(jù)源權(quán)重是1.0商品是0.9文檔是0.6熱詞聯(lián)想是0.3最終綜合得分的公式大致是final_score normalized_score(source) * source_weight去重策略上面我處理的是跨數(shù)據(jù)源重復(fù)的情況。比如商品和文檔同時(shí)引用了同一篇文章的地址或訂單和商品數(shù)據(jù)源里回到同一個(gè)商品ID。去重邏輯是基于ID加URL的聯(lián)合唯一鍵來(lái)判斷。保留哪條優(yōu)先級(jí)順序是API結(jié)果 MySQL ES CSV高優(yōu)先級(jí)的保留其余的被排除。3.4 分頁(yè)與深翻頁(yè)問(wèn)題的工程解法統(tǒng)一搜索還有個(gè)細(xì)節(jié)讓很多人頭疼分頁(yè)。Elasticsearch超過(guò)1萬(wàn)條深翻頁(yè)時(shí)會(huì)報(bào)錯(cuò)MySQL深度分頁(yè)也慢得離譜而API接口壓根不支持from加size特別大的查詢。所以UniSearch的默認(rèn)分頁(yè)上限是100頁(yè)每頁(yè)最多50條。超過(guò)這個(gè)范圍的查詢有兩種降級(jí)方案可選一種是返回提示讓用戶收窄條件另一種是利用ES的search_after做深翻頁(yè)游標(biāo)同時(shí)MySQL側(cè)改用“最后一個(gè)可見(jiàn)ID”來(lái)做keyset分頁(yè)。我的建議是優(yōu)先用方式一畢竟正經(jīng)用戶不會(huì)翻到100頁(yè)以后。3.5 結(jié)果緩存與性能兜底在緩存層上我用了兩級(jí)緩存策略。L1是進(jìn)程內(nèi)緩存使用TTL為30秒適合命中熱點(diǎn)查詢L2是Redis緩存TTL為5分鐘。查詢請(qǐng)求進(jìn)來(lái)先查L(zhǎng)1沒(méi)命中再查L(zhǎng)2最后才真正分發(fā)到底層數(shù)據(jù)源。但緩存粒度不應(yīng)該是整個(gè)查詢結(jié)果而應(yīng)該是數(shù)據(jù)源級(jí)別的結(jié)果片段。因?yàn)楫?dāng)四個(gè)數(shù)據(jù)源里只有一個(gè)數(shù)據(jù)變了如果緩存的是合并后的完整結(jié)果其他三個(gè)數(shù)據(jù)源的數(shù)據(jù)會(huì)被無(wú)謂地過(guò)期。單獨(dú)緩存各數(shù)據(jù)源返回的原始片段再在編排層做融合可以最大程度提高緩存命中率。4. 上線調(diào)試與問(wèn)題排查實(shí)錄UniSearch這種糅合了多個(gè)系統(tǒng)的中間層一旦出問(wèn)題表象往往是一坨亂麻。這一章把我線上遇到過(guò)的典型問(wèn)題和排查思路整理出來(lái)你可以當(dāng)做一個(gè)速查表來(lái)用。4.1 請(qǐng)求超時(shí)罪魁禍?zhǔn)淄恰按小钡谝淮紊暇€壓測(cè)時(shí)P99延遲高達(dá)4.8秒這顯然不可接受。排查發(fā)現(xiàn)問(wèn)題不在某個(gè)數(shù)據(jù)源性能差而在于我的初版編排邏輯是按順序調(diào)用各個(gè)適配器。每個(gè)適配器平均耗時(shí)200毫秒串行調(diào)五個(gè)就是1秒加上網(wǎng)絡(luò)開(kāi)銷和數(shù)據(jù)庫(kù)慢查詢延遲自然爆炸。改造方案是把串行調(diào)用改成Java虛擬線程或Python asyncio并發(fā)調(diào)度整體吞吐從每秒300漲到2000。如果你用的是Java項(xiàng)目CompletableFuture或者虛擬線程都行如果是Gogoroutine加channel天然支持Python的話我會(huì)夸一句asyncio。但我不推薦用裸線程池因?yàn)榫€程池耗盡太容易造成雪崩。經(jīng)驗(yàn)編排層強(qiáng)制要求所有數(shù)據(jù)源調(diào)用必須并行發(fā)起并且設(shè)置統(tǒng)一的超時(shí)上限這個(gè)是UniSearch性能的第一命門(mén)。4.2 數(shù)據(jù)源返回慢不能拖死整體壓測(cè)中還發(fā)現(xiàn)如果其中一個(gè)API數(shù)據(jù)源響應(yīng)卡頓幾秒所有請(qǐng)求都會(huì)被阻塞。后來(lái)我把超時(shí)控制做成“逐源設(shè)置”的配置項(xiàng)默認(rèn)統(tǒng)一1000毫秒但對(duì)關(guān)鍵核心數(shù)據(jù)源可以放寬到1500毫秒對(duì)非關(guān)鍵數(shù)據(jù)源比如熱詞、聯(lián)想只給300毫秒。超時(shí)的數(shù)據(jù)源不再等待直接降級(jí)為空結(jié)果在返回體里帶上timeout_sources字段告訴前端這次查詢哪些源超時(shí)了。這樣即使某一個(gè)下游系統(tǒng)故障主鏈路依然是穩(wěn)定的。4.3 數(shù)據(jù)源返回慢不能拖死整體調(diào)參時(shí)發(fā)現(xiàn)ES查詢耗時(shí)最大的瓶頸來(lái)自兩次查詢一次普通請(qǐng)求一次獲取total命中數(shù)。ES默認(rèn)會(huì)在每次查詢時(shí)計(jì)算精確總數(shù)當(dāng)索引體量很大的時(shí)候這種計(jì)算代價(jià)很高。我把ES的track_total_hits設(shè)置為false返回總數(shù)改為近似值查詢性能提升35%。對(duì)搜索結(jié)果而言100頁(yè)以內(nèi)的總數(shù)用近似值完全能滿足需求沒(méi)必要讓精確計(jì)數(shù)拖慢整體響應(yīng)。4.4 Redis緩存穿透與更新風(fēng)暴上線初期緩存穿透非常嚴(yán)重。熱詞數(shù)據(jù)源本身數(shù)據(jù)量不大但是用戶搜索時(shí)經(jīng)常輸入一個(gè)冷門(mén)詞結(jié)果Redis沒(méi)緩存直接穿透到后端而MySQL又拿不到結(jié)果就變成“緩存擊穿空結(jié)果”的雙重浪費(fèi)。我的解法除了常規(guī)的空值緩存之外還加了一層布隆過(guò)濾器在業(yè)務(wù)側(cè)維護(hù)一個(gè)基于所有已知有效查詢?cè)~的布隆過(guò)濾器。攔截掉明顯不存在的查詢MySQL的壓力直接下降了一個(gè)數(shù)量級(jí)。4.5 結(jié)果排序不穩(wěn)定導(dǎo)致投訴有一次業(yè)務(wù)方反饋同一個(gè)關(guān)鍵詞搜索的結(jié)果過(guò)幾分鐘再搜就發(fā)現(xiàn)順序變了。查下來(lái)是融合排序時(shí)分段歸一化算法的問(wèn)題對(duì)于數(shù)量很少的分片結(jié)果min-max歸一化會(huì)放大微小差異同一句話在不同時(shí)間點(diǎn)檢索甚至只因ES分片間的tie_breaker不同就讓分?jǐn)?shù)發(fā)生細(xì)微抖動(dòng)。最后我把歸一化的下限做了鉗制設(shè)置MIN_SCORE0.1保證所有結(jié)果的基礎(chǔ)分不低于0.1就不會(huì)出現(xiàn)因?yàn)槲⑿〔▌?dòng)導(dǎo)致的排序漂移。4.6 日志與追蹤統(tǒng)一檢索必須帶TraceId這是我覺(jué)得整塊項(xiàng)目里最值得做的事情之一。UniSearch一次查詢會(huì)觸達(dá)多個(gè)數(shù)據(jù)源一旦線上有問(wèn)題沒(méi)有日志鏈路就是在黑暗里摸大象。我強(qiáng)制要求日志系統(tǒng)里集成TraceId從接入層生成貫穿編排層、適配層直到底層數(shù)據(jù)源。每個(gè)數(shù)據(jù)源的耗時(shí)、返回條數(shù)、異常堆棧都掛在這個(gè)TraceId下。后續(xù)排查的時(shí)候只需要用TraceId搜索一次完整的調(diào)用鏈就能定位問(wèn)題。這個(gè)習(xí)慣我從一開(kāi)始就建了中間有一次線上故障能十分鐘之內(nèi)定位全靠它。5. 工具、參數(shù)與調(diào)優(yōu)細(xì)節(jié)總結(jié)最后把我在整個(gè)把UniSearch項(xiàng)目中實(shí)際使用過(guò)的工具和一些重要的調(diào)優(yōu)參數(shù)整理一下。不是每一家公司的技術(shù)棧一樣所以工具選型僅作參考。5.1 基礎(chǔ)設(shè)施選型參考組件選用方案理由接入層APIFastAPI / Spring Boot高并發(fā)性能好社區(qū)資源豐富異步編排Python asyncio / Java CompletableFuture天然支持并發(fā)調(diào)用全文檢索引擎Elasticsearch 8.x成熟穩(wěn)定生態(tài)完善業(yè)務(wù)數(shù)據(jù)庫(kù)MySQL 8.0業(yè)務(wù)主存儲(chǔ)穩(wěn)定可靠緩存Redis 7.x支持ZSET熱榜及多級(jí)緩存MQ消息RabbitMQ支撐雙寫(xiě)事件同步監(jiān)控Prometheus Grafana覆蓋接口QPS、P99時(shí)延、各適配器狀態(tài)5.2 一鍵查詢鏈路耗時(shí)監(jiān)控每個(gè)適配器的查詢耗時(shí)必須拆開(kāi)觀察。我在Grafana里建了十幾個(gè)看板但日常最常用的是三個(gè)總接口請(qǐng)求量及響應(yīng)時(shí)間曲線、各數(shù)據(jù)源平均耗時(shí)對(duì)比柱狀圖、各數(shù)據(jù)源超時(shí)次數(shù)統(tǒng)計(jì)表。每次發(fā)布新版本之后第一件事不是看功能對(duì)不對(duì)而是看適配器耗時(shí)有沒(méi)有異常波動(dòng)。如果某個(gè)源的平均耗時(shí)從200毫秒突增到800毫秒不管業(yè)務(wù)方怎么說(shuō)“沒(méi)問(wèn)題”都要主動(dòng)去查一下對(duì)方系統(tǒng)的負(fù)載。5.3 上線前必做的三件準(zhǔn)備工作第一件梳理清楚哪些數(shù)據(jù)源是強(qiáng)依賴、哪些是弱依賴。強(qiáng)依賴掛了整個(gè)搜索不可用弱依賴掛了可以容忍。這個(gè)梳理結(jié)果決定了超時(shí)和降級(jí)方案怎么設(shè)計(jì)。第二件建立一套全鏈路的自動(dòng)化回歸用例。針對(duì)每個(gè)數(shù)據(jù)源準(zhǔn)備標(biāo)準(zhǔn)查詢集預(yù)期結(jié)果集鎖定在固定基線里。每次代碼改動(dòng)先跑這組用例避免只修了A數(shù)據(jù)源卻把B數(shù)據(jù)源的適配邏輯弄壞了。第三件準(zhǔn)備好對(duì)賬腳本。我建議做兩級(jí)對(duì)賬數(shù)據(jù)記錄數(shù)對(duì)賬和字段級(jí)對(duì)賬。先比數(shù)量再比關(guān)鍵字段的哈希一致性這是防數(shù)據(jù)漂移的兜底。提示不要在下班前一小時(shí)首次灰度發(fā)布統(tǒng)一搜索項(xiàng)目。第一晚大概率會(huì)有各種數(shù)據(jù)源連接和權(quán)限的幺蛾子留足排查時(shí)間比什么都重要。6. 下一階段演進(jìn)方向UniSearch做到這里已經(jīng)能穩(wěn)定支撐日常查詢了。但如果業(yè)務(wù)量再往上走有幾個(gè)演進(jìn)點(diǎn)是我明確計(jì)劃要做的。第一個(gè)是引入真正的個(gè)人化排序基于用戶的歷史點(diǎn)擊、收藏行為訓(xùn)練一個(gè)輕量級(jí)的learning to rank模型把融合排序從手工加權(quán)升級(jí)為模型打分。第二個(gè)是增加搜索熱力統(tǒng)計(jì)從Redis熱詞出發(fā)把用戶每天的搜索詞、點(diǎn)擊結(jié)果、跳失率匯入數(shù)據(jù)倉(cāng)庫(kù)形成業(yè)務(wù)洞察報(bào)表。第三個(gè)是更強(qiáng)的同義詞動(dòng)態(tài)挖掘現(xiàn)在用的靜態(tài)詞表維護(hù)成本高后續(xù)計(jì)劃基于用戶搜索日志里的共現(xiàn)詞挖掘同義詞實(shí)現(xiàn)詞表的自我更新。我個(gè)人在這整件事中最大的體會(huì)是做統(tǒng)一搜索難點(diǎn)從來(lái)不在搜索本身而在“統(tǒng)一”二字。統(tǒng)一意味著你要面對(duì)各種歷史系統(tǒng)的怪癖面對(duì)無(wú)法控制的字段命名面對(duì)每一個(gè)數(shù)據(jù)源獨(dú)有的查詢語(yǔ)法和限制。與其想著一套代碼適配全部不如把適配層的邊界劃清楚把統(tǒng)一查詢模型設(shè)計(jì)得足夠通用。只要這兩件事做踏實(shí)UniSearch這個(gè)名字才真正配得上。最后再分享一個(gè)小技巧上線那天先在測(cè)試環(huán)境用真實(shí)用戶搜索日志回放壓測(cè)一遍不要用模擬流量因?yàn)橹挥姓鎸?shí)搜索日志才會(huì)暴露出那些你完全想不到的奇葩查詢?cè)~和冷門(mén)字段組合這一條比任何架構(gòu)設(shè)計(jì)都更能幫你省去后續(xù)的救火時(shí)間。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
超碰精品国产无码| 亚洲天堂 视频你懂的| 综合久久六月久久婷婷| 欧美色66| 97超碰色| 婷婷五月av| 大香蕉狠狠爱| 97免费在线观看| 国产精品自在自拍视频| 久久久久78| 亚洲欧美另类图片| 中文字幕免费看大片| 蜜臀网 一区| www成人啪啪18秘 免费| 青青草在线视频美女| 亚洲一区二区三区在线激情| 激情文学网伊人| 天堂av最新电影网| 麻花传媒免费网站在线观看| 男人的天堂一区三区| 嗯嗯啊啊操死我| 91精品国产91熟女| 欧美久久九九| 超碰97色| 另类图片五月| 99热婷婷一区二区三| 婷婷五月天激情网| 国内毛片欧美香蕉精品| 超碰98综合网| 密臀在线一区尤物| 又黑又大又粗| 日韩成人无码| 久久伦理视频久久大香蕉视频| 91老女人| 国产99999久久精品| 国产理论视频在线播放| 色97| 亚洲A曰本VA欧美VA视频| 啊啊啊用力在线观看| 天天日天天干少妇日| 久久婷婷五月| 伊人热综合| 精品国产一区二区三区久久久蜜臀 | 夜色97| 国产三级日产三级韩国三级| 青青草综合在线| 亚洲综合色网| 亚洲成a人v欧美综合天堂下载| 97精品国产97久久久久久| 夜夜骑日日| 激情抓乳插进去啪啪啪日韩| 久久久久久无码人妻中文字幕| 亚洲成A∨人影院在线欢看| 亚洲成人精品久久久| 国产Av超碰| 国产亚洲色婷婷99精品91| 东北女人性交| 中文字幕黑人大片| 欧美性生活免费网| 中国91AV| 啊好大好舒服| 日韩乱插| 在线日韩日本亚洲国产| 熟女露脸激情自拍视频| 激情综合五月天| 亚洲自拍偷拍视频在线| 台湾佬激情综合| 强奸乱伦免费网站| 中出20p| 天天射,天天操,天天爽-国内精品一区二区三区-成人AV | A V视频日本| 天美传媒精品一区二区三区| 久操99| www.91人妻.com| 国产又长又大又粗的视频| 男人兔费天堂| 婷婷久久五月天| 天天综合网合集91| 蜜臀在线免费观看在线免费观看| 国产一级作爱毛片| 久久精品操| 在线啊啊啊啊| 欧美做爰无码A片视频| 女性喷水高潮在线观看| 九九热av| 欧美性视频二区三区| 亚洲丝袜二区| 亚卅熟女乱色| 日本一级婬片试看三分钟| 78m成人视线| 1二区9| 久久人妻办公室视频| 亚洲中文字幕熟女少妇一区二区| 日韩精品三级片长长久久| 99热99色| 囯产操逼片| 亚洲视频1区| 亚洲怡春院| 超碰79人人乐| 激情综合网五月婷婷五月天| 好属操| 9久9久| 欧美亚州色的图| 老师充足的奶水小说| 欧美亚洲日本激情在线| 亚洲成人性爱在线观看| 国产精品久久99日日| 国产熟妇一区二区| 亚洲人在线成线成人| 亚洲精品99| 亚洲一区二区精品福利| 国产AV激情无码久久无码 | 夜草欧美| 中文字幕免费观看| 鲁鲁色综合网| 欧美1727免费观看视频| 色婷婷丁香五月| 欧美刺激色黄片免费看| 中文字幕美女91| 天天操夜夜操| 91中文字幕| 亚洲三级。日韩三级| 久久久免费高清中文视频| 大屁股国产在线视频| 色诱avtt| 久久久久久久久九九久孕交| 怡红院视频在线| 五月丁香综合| 日本精品人妻少妇一区二区| 91狠婷| 加勒比大香蕉视频在线| 熟妇在线视频一区二区| 精品国产污一区二区三区| 综合网,亚洲,欧美| 亚洲欧美天堂在线| 偷拍欧美激情| 大香蕉伊人一区在线观看| 99精品网| 大香蕉综合| 韩日精品四区| 色嘟嘟人妻天堂网| 啪啪啪大香蕉| 台湾佬中文娱乐自偷自拍| 高树玛利亚无码流出| 干b在线性社区| 欧美亚洲涩涩| 青青青在线高清视频在线一二三四区| 夜夜爽夜夜操| 亚洲AV无码乱码| 人人操人人操人人操人人操人人操人人人11.CM| 99无码狠狠久久| 波多野结衣之双飞调教在线播放 | 一区二区三区成人高清视频| 天天艹天天日| 日韩黄色av中文字幕| 国产av波波国产精品| 色爱三区| 久久综合精品一区二区三区| 18岁禁 茉莉成人久久| 物业黑人 AV一区| 狠狠97| 屁股久久久久久| 亚洲综合九九| 四虎影视永久在线免费| 综合色99| 欧美A√综合网| 国产熟女二区| 91色亚洲| 中文字幕日韩人妻视频一区二区三区| 国产树林里野战在线看| 美女黄页| 国产91丝袜在线播放蜜月| 亚州男人天堂| 思思性爱| 日本少妇va7777| 日韩精彩视频| 欧美性爱第一页久久| 久久成人国产精品| 丝袜狠狠草尤物人妻av91| 刺激性视频黄页| 九一屌逼| 91人人| 日本操逼视频导航| 国产农村妇女精品一二区| 极品国产内射| 91综合中文字幕| 日韩免费在线视频观看| 人妻少妇一区二区| 91亚.色| 国产一区二区二区按摩精品啪视频| 18啪啪手机免费性爱| 超碰免费人人| 久久免费看高潮毛片韩国| 亚洲丨在线| 一级@啪啪视频| www.99在线| 男人 天堂 日 亚洲| 91人妻人人澡人人爽人人精品| 自拍偷拍草一草| 清柠毛片| 最新AV在线| 日本免费专区| 最新制服中文第一页| 91亚洲狠狠色| 26uuu性| 看日韩美女二区三区免费操逼视频 | 久久亚洲AV成人精品无码| 亚洲欧洲自拍图片专区满春格| 精品制服美女中文一区二区三区| 一级黄色视频网| 亚洲国产精品无码AV久久| 欧美色66| 国产精品无码在线| 久久久网站| 嗯啊不要啊在线 | 男人天堂免费| 国产又黄又爽| 色一射色一射| 国产精品久久久啊| 国产久久一区二区三区野外在线| 中文字幕精品免费一区二区| 91精品国产综合久久久蜜臀| 人妻久久一区二区三区| 中文字幕在线24| 97草草| 亚洲午夜福利视频| 国产精品乱码久久久久久久久| 粉嫩绯色AV一区二区在线| 加勒比日本在线| 国产在线能看的你懂的| 国产老熟女| 日韩亚洲欧美中文字幕| 久久嫩草国产成人一区| 强奸乱伦中文字幕AV| 欲色影视综合吧| 9国产超碰| 日韩少妇丰满亚洲| 国产精品欧美日韩久久| q2午夜理论片夜色av| 婷婷去俺也去六月色| 伊人网青青| 国产精品网站免费 | 夜夜操av亚洲一区二区| 八人操人人摸人人看| 999久久芭蕾| 成人电影一区| 国产黄色在线播放观看| 天欧美在线| 思思热在线观看| 思思热一热婷婷热一热| 夜夜操二区| 亚洲国产综合图区中文字幕| 人人妻人人色| www色日本| 久久大| 五月天色图| 大香蕉久| 高清国产无码av| 日本中文字幕一区| 亚洲天堂东京热| 午夜舔阴达高潮视频免费看| 欧美天天在线| 色色99| 91麻豆va国产精品| 婷婷av在线中文字幕| 伊人96在线| 91久久精品国产| 不卡av在线中文字幕| 五十路成人在线视频二区三区| 岛国艾薇凹凸视频天堂| 一级婬片120分钟试看| 性交一区二区在线播放| 人人人人插| 999精品乱码| 不卡一区视频| 强上我不卡卡| 久久综合五月天| 乱伦一二三| 男生通女生屁股| 躁躁日曰躁2020| 五月丁香色色网| 蜜臀AV秘一区翔田千里| 偷拍盗拍亚洲色图图片| 亚洲脚交| 激情五月天校园春色网| 国产精品乱码久久久久久久久久久久| 99热综合| 久久ww| 郑州宾馆老熟女露脸啪啪| 久久久久九九九九| 久久免费少妇| 97亚洲色图| 男女香蕉一区二区| 欲女人妻性色av| 久久久精品视频免费观看| 亚洲欧美一区二区网址| 亚洲影视综合| 97日亚洲欧美| 亚洲高清色综合| 亚洲乱熟女一区二区| 国产成人精品午夜福利| 在现视频女上位好爽| 亚洲操操| 欧美激情五月天| 熟女突然公开看18禁影片| 蜜乳av一区二区| 超碰在线人人射| 久久久精品网站| 中文乱码字幕观看| 操国产高清| 亚洲欧美伦综合| 婷婷人妻激情| 97久久国产精品女不卡| 91福利网在线观看| 婷婷色综合欧美日韩| 999久久芭蕾| 天天综合~91| 国产青青综合伊人| 精品人妻一区二区三区不卡断 | 小情侣高清国产在线视频| 国产一级不卡在线观看| 在线观看AV片| 午夜男人一级A片7777| www色婷婷| 国产精品三级视频网站| 日本三级中国三级99人妇网站| 乱伦熟女区| 五月丁香婷婷啪啪| 啊啊啊啊啊啊在线看| 久久久久久久久久久97| 第45页一区二区| 久久久久久中文版| 亚洲欧美变态| 97色亚洲| 隔壁邻居波多野结衣中文字幕| www亚洲免费| 亚洲图片欧洲图片aⅴ| 亚洲欧美日韩夜夜| 丝袜AV一二三区| 一区黄二区黄| 校园春色宗合网| 亚洲极品| 久久9精品网站| 久久99国产精品| 中文字幕丰满人妻日本| 国产精品女久久久久av爽| 干婷婷综合网| 国产天天骚| 亚洲高清在线se| 国产第二页| 97精品一区| 国产精品久久久| 九九热久久99精品re| 蜜臀AV网站| 美女露胸露屁股| 青草视频人妻在线观看| 日韩精品亚洲一二三| 人人搞人人插人人操| A V视频日本| 天天综合在线4| 日韩八十路老熟女| 涩涩涩综合| 婷婷色导航| 鸥美插入视频| 91精品91久久久久77777俄罗斯老妇姓x| 操逼视频色| 五月丁香啪啪啪| 午夜αv| 亚洲人久久久网| 九月伊人中文字幕| 免费作爱一级视频| 91红杏| 久久久亚洲精品中文字幕人妻| 男女无套 免费网站| 黑人精品成人一区二区三区 | 久久二| 色综合av男人天堂| 和协影院中文字幕三区| 一起草三级AV电影在线观看| 操91| 久久精品操| 国产传媒操逼视频| 久久人妻无码毛片A片麻豆| 国产色产精品在线观看 | 精品日韩人妻精品一二三区| 去干网最新版| juliaann丝袜大战黑鬼| 日韩精品9区| 亚洲欧美首页| 91丝袜激情在线| 久久精品国产97欧美精品亚洲 | 日韩欧美中文字幕搭讪巨乳美人妻视频| 九草九九九| 天堂网亚洲区手机版| 丁香九月婷婷| 日韩人妻一二三区视频| 中文字幕jul-617人妻熟女| www.狠狠干.coom| 自拍二页| 国产免费内射视频| 日韩99精品视频综合区| 亚洲综合成人网| 97国产精品国| 精品国产乱码久久久影院| 青青青草原| 97亚洲中文| 一级二级三级黑人无码| 1024人妻| 欧美日本天堂| 日逼97| 亚洲另类欧美精品| 久久激情五月| 蜜桃视频一区二区三区| 欧美成人性活片| 综合伊人激情| 欧美亚州手机在线| 本道在线| 日本欧美一区二区三区视频麻豆| 在线不卡视频| 久久伦理视频久久大香蕉视频| 国产午夜精品一区二区三区牛牛| 另类欧美色| 久久大黄片| 青青草日韩免费观看高清在线| 奶水 人妻 哺乳 在线| 老外又粗又长一晚做五次| 亚洲激情av| 蜜桃色院一区久久| 精品一区二区三区免费古装毛片香港三级日本三级人妇 | 国产精品无码成人精品| 婷婷亚洲天堂| 日韩中文9| 美女裸体无遮挡永久免费观看网站| 黄色高清无码无码破解免费暗网 | 国产女同在线观看视频| 99热国产| 俺去啦自拍| 17c在线成人免费A片观看| 天美传媒av 在线| 操老熟女AV| 欧美一区二区日韩三区| 国产精品丝袜在线| 免费精品福利在线观看| 中国一级αV| 思思在线免费视频| 9久综合网| 校园春色家庭伦理欧美激情| 久久久99久9| 国产91美女高潮| 97色综合中文网| 9丨久久九九九| 亚洲一区中文字幕一区| 麻豆区久久久久亚| 日本人人操人人操| 97超久碰| 91久久免费视频互動交流| 精品国产一区二区久久| 91久久| 99热只有| 激情一区二区| 六月婷激情福利天堂69| 91伊人| 婷婷五月花| 91欧美www| 青青草天天亲夜夜操网| 亚洲综合色图欧美| 91欧美| 久久精品久久久久久久| 91 在线亚洲| 国产极品馒头逼| 久久香蕉国产传媒一区剧情天美| 精品人妻一区二区三区四区不卡在| 十八禁视频网站| 天堂网亚洲区手机版| 五月色网| 成人怡红院| xxx亚洲午夜天堂| 国产1024在线播放| 伊人操操| 簧片免费看视频| 强乱老妇中文字幕| 婷婷久久五月| 伊人麻豆传媒| 99热国产精品| 色色色热| 中文久久96| 精品天堂| 色九月综合| av天堂精品久久| 亚洲欲| 四虎影院成年人片| 乱欲视频| 区一在线观看| 自拍大香蕉乱插| 欧美热图99| 国产精品九9| 国内精品a| 少妇激情AV| 五月激情综合网| 人人妻人人澡人人爽久久av| 日韩三级网址| 日本视频一区二区三区| 97超碰9| 欧亚乱色熟一区二区三四区| 先锋色眉乱伦资源| 粉嫩av一区二区三区天美传媒 | 丁香婷婷九月| 啪啪视频免费在线观看| 操淫穴亚洲五月丁香| 色综合天天| 操逼逼一区视频| 天天综合欧美黑人| 熟女啪啪视频| 久久精品店| 国产欧美日韩臀| 一区二区偷拍拍视频| www.AV有限公司一区| 被体育老师抱着c到高潮| 蜜臀一区二区三区亚洲最新章节在线观看 - 高清蜜臀一区二区三区亚洲全集播放 | 一区二区三区在线日韩影院观看| 国产91亚洲精品一区二区三区| WWW.加勒比人妻一区不卡.com| 亚洲欧美在线观看2021| 成人羞羞视频国产| 中文字幕国产| 久操九九九九九九九九九九九九九九九九九九九九九九九九九九九九 | 立川理惠被中出无码| 操死我了啊啊啊| 人妻天天爽夜夜爽爽| 亚洲情色中文字幕一区| 97精品一区二区视频| 五十路成人在线视频二区三区| 超碰国产情侣自拍网| 一个人免费HD91视频| 香蕉黄色一级视频| 999精品乱码| 超碰午夜| 久草资源在线视频官方总站日韩丝袜美腿 | 夜夜草我| 久热最新在线杭州| 免费网色网站| GVH-003 母子姦 青木玲-麻豆视频,麻豆视传媒短视频网站入口,麻豆视传媒官网直 | 亚洲 日本 不卡| 麻豆久久视频在线地址| 国产一区二区欧美日本| 影视综合无码少妇| 欧美综合另类| 啊啊啊慢点| 欧美传媒一区| 日韩钢筋无码高清啾啾啾| 夜夜操2028| 五月天色色网站| 婷婷午夜成人色中色| 男女一进一出视频久久| 97在线免费视频观看| 亚洲欧美日韩中文久久自慰| 黄色十八禁网站| 97免费在线视频在线观看| 中文字幕在线免费观看视频| 日韩性爱再线视频| 久久久九九| 亚洲情色一区二区三区| 熟女自慰久久久| 九九久久一区二区三区| 日韩偷拍色图| 91neishe| 国模吧 一区二区三区| 精品人体无圣光凹凸| 八戒午夜福利理论片| 东京热熟女亚洲视频网站| 成全动漫视频观看免费下载| 97美日韩视频| 伊人麻豆传媒| 肏逼视频日本| 亚洲 欧美 色图| 久久久久性熟视频| 久99久视频精选| 九九九九久久久| 99热这里是精品| 久热99| 97碰在线视频| 99无码精品| japan日本高清乱xxxx| 国产曰批免费观看久久久| 国产亚洲女v在线观看| 欧美午夜视频免费观看| 欧美日韩国产三级黄色| 综合欧美激情网| 欧美系列在线一区二区| 天堂8在线新版官网| 天堂8在线新版官网| 99视频精品| 四虎AV在线观看| 日本岛国黄色网址| 国产伦精品一区二区三区视频女| 天天狠| 少妇毛片久久| 国产丰满少妇久久久精品影院| 伦在线97| 亚洲熟女乱综合一区二区在线-...亚洲国产日韩欧美一区二区三区,久久久久久精 | 色香欲天天天天综合色| 四虎影视国产精品| 丰满人妻一区二区三区| 成人影院永久免费观看网址| 日韩久久.一级黄色片| 免费在线黄片视频| 丁香成人五月天| 91在线|亚| 国产熟女一区二区丰满| 亚洲情色综合网| 超碰97日韩| 日韩成人高清一区二区| 亚洲AV噜噜狠狠网址蜜桃动漫| 熟女字幕| 免费看毛片操穴| 大香蕉99热| 大屁股熟女一区二区三区| 亚洲人综合19| 天天躁日日躁AAAAXXXX国产| 97国产高清视频在线观看| 亚洲宅男天堂| 热久久国产精品视频大陆精品| 精品综合久久久久久97| 国产精品自拍视频| 国产女人与拘做受视频免费| 激情五月天网| 精品性爱久久视频| 成人草草视频| 男人天堂2030| 成人亚欧免费视频| 97久久久久久久精| 性色高清在线| 97在线播放 | 78m啪啪啪| 大香蕉免费3| 天天看,天天做| 性色中出| 色婷婷小说| 精品乱码久久久久| 久久久久久性爱免费视频| 亚洲另类小说卡通动漫| 色婷婷亚洲婷婷| 国产成人天堂| 亚洲色婷婷久久久综合日本| 婷婷中文网| 青青草国产亚洲精品久久 | 老司机午夜福利视频一区二区| 蜜臀网 一区| 操逼片中文| 久久综合精品一区二区三区| 熟女少妇视频| www黄片免费看com| 香蕉久久精品| 日韩性爱长视频免费| 人人透人人操| 超碰在线97国产| 国产呦精品系列在线观看| 欧美黄片视频在线观看免费 | av最新免费中文字幕| 超碰超碰95| 久久久久久久久9| 美中日韩无码| 91爱看| 亚洲性爱成人| 精品视频日日夜夜| 九九九九九九九九九国产精品| 欧美区亚洲区偷拍区| 蜜臀久久99精品久久久久久久久| 中文字幕av片| 欧美亚洲日本视频久久久| 久久久久亚洲精品| 精品久久97观看在线视频| 国产激情av女片自拍| 在线亚洲精品久久久| 乱伦日本中文自拍| 免費人妻夜夜爽天天爽爽一区| 麻豆91熟妇人妻中文字幕茄子| 欧美日韩操逼嗦吊| 99蜜月精品久久| 激情小说日韩无码| 欧美激情 日韩精品| 激情综合网激情综合| julia高潮后不停追击中出| 啊啊啊操死我了| 中文字幕精品区先锋资源| 欧色综合| se吧提供国产乱老熟视频胖女人 | 伊蕉97蜜桃97狠狠综合干| 欧美日韩大香蕉| www久久久| 十八禁黄色| 亚洲国产精品无码AV在线| 麻豆国产成人精品| 欧美亚洲另类在线蜜桃| 91精品少妇搡搡搡| 日本在线激情一区二区三区| 96精品久久久| 成人短视频在线观看| 婷婷人妻激情| 男人的天堂亚洲| 国产精品96| 黄片qw| 麻豆国产视频精品观看| 国产精品视频| 国产在线视频二区| 久久人妻少妇| 欧美极度丰满熟妇hd| 欧美综合综合| 99久久婷婷国产综合| 97色冈| 97这里只有精品| 久久熟女人| 午夜a成v人电影| 色网1| 日韩人妻 中文字幕| 中出20p| 五月天激情国产综合婷婷婷| 97神马久久| 婷婷亚洲中文字幕在线| 人人操人人干xxx| 日本精品性生活久久久| 亚洲一区二区精品福利| 青青草AV色| 1024久久高清视频| 女同女同恋久久级三级| 久久九九精品一区二区 | 久久久久久久人妻| 国产无码精品无码| 1.igao73.com 加入收藏 免费专区 国产精品 中文字幕 日韩精品 欧美精品 精彩 | 小明看看网址| 日韩一级成人毛片免费观看 | 国产精品96久久久久久| 2019AV天堂| 夜夜影视四色| 超碰在线一区二区三区| 欧美国产有色电影| 综合婷婷| 97久久超碰| 热热色色综合| 亚洲97久久精品亚洲| 粉嫩在线一区二区懂色| 蜜臀久久99精品久久久久久-DVD原版全| 亚洲色性情三级| 你想操日本小逼吗| 97天天日| 亚洲色图伊人网| 男人天堂2019亚洲| 亚洲国产尤物yw在线观看| 色欲天香天天综合网-成年人三级片网站-欧美乱妇狂野-日韩国产专区-久久久久久 | 91AV入口| 骚鸭AV| 国产精品午夜成人福利| 青娱乐日韩无码| 无码精品久久| 欧美在线天堂| 久久夜嗨| 欧美日综合| 欧美日韩国产三级黄色| 无码精品人妻一区二区三区妖精 | 久久av无码| 性欧美999| 好屌色综合| 不卡九肏| 伊人综合色网| 大香蕉AV在线| 秋霞欧美性爰视频| 国产区91柔拿会所技师| 91视频伊人| 亚洲欧美第一页| 久热这里只有精品9| 欧美熟女逼久久久久久| 国产乱弄免费在线视频。| 99精品无码| 自拍鲍鱼一区在线高清观看免费| 精品无码久久久久久久久果冻糖心| 99在线视频播放| 99∨VTV| 秋霞久久亚洲精品成人| 91色狼| 天天影视网综合少妇| 97视频免费在线观看| 欧美高清91| 日日AAvv| 婷婷探花久久精品一区| 天天干1区2区在线| 色在线69堂| 色网1| 免费成人在线熟妇网| 97 国产一区| 精品无人区麻豆乱码久久久| 黄色成品网站| 夜夜狼人妻| 欧美美女在线高潮999| 人妻在线臀日韩| 九九九网页| 久草色悠悠在线视频| 欧美第38页| 无码视频一区二区| 亚洲欧洲久久天堂| 亚洲欧美日韩电影网站一区| 97精品国产精品免费观看| 国产白领连续中出在线播放| 久久成人国产| 国产乱码精品一区二区三区四川| 午夜寂寞欧美| 717影院理论午夜伦八戒| 强奸xx国产| 五月激情小说| 久久久影院| 成人女人国产| 精品成人女人久久| 丁香7月婷婷| 欲色综合| 日本视频在线中文字幕| 青青操网| 日韩人妻中文视频| 狠狠操综合| 一二三四免费视频| 久久九七| 区自美91| 欧美日韩中文字幕人妻| J?P?NESEHD熟女熟妇伦| 国产久久成人| 欧美一区二区三区日韩| www.色五月| 宗合情欲网| 青青草玖玖爱| 久久内射| 国产对白刺激视频| 强奸a片网| 成年男人的天堂| 久湿久久| 2020中文字幕在线观看| 免费国产电影一区二区| 在线无码操| 亚洲最大91网| 香蕉免费一区二区三区不读| 日韩射图| 欧美自拍偷拍综合图片| 97任你吞精| 成人精品电影| 精彩久久中文| 97超碰碰| 丁香六月东京热| 曰韩欧美国产传媒麻豆第一区| 国产熟妇一区二区| 97超级久久| 眼镜人妻101.com| 大香蕉520| 妇人噜噜| 久久精品六区| 欧美人妻少妇| 亚洲精品欧洲色| 日韩成人性日韩成人性爱视频在线免费观看| 欧美一级A一级a爱片久久| 91久久免费视频互動交流| 亚洲国产成人精品无码专区| 99青草| 2017人人操,人人摸| 欧美精品宗合| 国产中文字幕曰本毛片| 久久秀这里有精品| 亚洲久久东京热一二三四五区视频| 97日韩| 天天干夜夜操网| 久久久久国产亚洲一区欧美色图日韩| 国产成人啪一区二区| 国产精品懂色tv影视免费观看| 日韩性爱再线视频| 大香网伊人久久综合网eew| 欧美东京热青青草| 99性爱在线观看| 欧美天天综| www亚洲欧美| 国产懂色精品国产av| 欧美色图亚洲特色| 亚洲欧美色图片| 中文字幕jul-617人妻熟女| 亚州色图欧美| 久久伊人最新网址视频| 超碰狠狠操| 老女人91| 日韩无码a片| 亚洲中文人妻色| 国产97免费视频| 柠檬AV导航| 操淫穴亚洲五月丁香 | 久久久久国产无av| 91n免费处女| 人妻啪| 亚洲精品欧美专业| 91美女网站| 嗯嗯啊啊视频在线看| 天堂亚洲精品| 精品亚洲国产成人AV制服丝袜| 天天色怡春院| 国产成人精品一区| 久久伊人亚洲AV无码网站| 九九热免费国产视频婷婷伊人五月| 一卡二卡三卡| 欧美特大黄一级片片免费| 大香蕉青青9| 国产黄片精品在线| 青青草国产盗摄一二三区| 乱操乱伦AV| 在线视频一区二区传媒| 久久亚洲中文字幕视频| 观看免费区二区三区二| 日韩亚洲欧美中文字幕| 91狠| 欧美日韩97| 天天综合网国产| 免费试看60秒| 久久久噜噜噜久久久| 屁股久久久久久久| 日本少妇va7777| 婷婷色色五月天福利| 色综合中文字幕不卡| 人人弄人人摸| 蜜臀人妻少妇久久在线观看| 色视频蜜乳| 久久久久久久78| 91精品女厕偷拍视频| 成人精品视频| 国产精品免费视频人成| 亚洲中文字幕av| 五月婷在线| 精品一区二区三区免费古装毛片香港三级日本三级人妇 | 天天弄天天操| 蜜臀无码一区二区| 日韩性爱播放| 亚洲精品97久久| 一牛影视久久久一区二区三区| 欧美性爱第一页久久| 欧美日韩一干二干| 亚洲成a人在线观看久| 少妇人妻在线| 日韩人妻精品久久久久| 91操操操操| 青娱乐手机日韩在线视频| 国产尤物AV尤物在线观看不卡| 精品久操| 综合色图,成人综合网| 69XX一中文字幕人妻91| 日本最新免费韩国1区2区视频播放| 国产AV激情无码久久无码| 欧美97se| 中文字幕国产精品1区| 精品无码久久久久久国产浪潮| 九一性生活免费视频| 九九热AV| 欧洲性爱无码区| 久久大精品乱码视频人妻熟女| 国产 日韩 另类 视频一区爱| 91精品人妻一区二区三区蜜桃| 18精品一区| 在线综合色| 97亚洲中文| 啊啊啊啊二区好大| 亚洲中文字母在线播放| 91天天| 一区二区国产视频在线观看| 大香蕉综合| 色哟哟 日韩精品| A一级色女| 男人的天堂在线有码| 丰满美女一级毛片在线播放| 女人天堂网| 精品大久久| 午夜理论片在线观看免费| 丝袜综合网| 久久精品中文| 少妇久久久久久久久| 欧美精品四区| 中文字幕人成乱码熟女香港| 五月天日日操夜夜操| 亚洲情色一区三区| 在线人人人人人人精品超| 偷拍综合网| 婷婷九月丁香| 日韩美女久久一区二区三区| 婷婷五月天激情网| 亚洲本色精品一区二区久久| 热热色色综合| 91啪9色| 亚洲欧美日韩综合在线尤物| 国产精品精品系列在线观看| 欧洲站一级二级三级h| 国产av青草| 亚洲欧美激情在线视频| 日韩偷拍一区二区三区| 91精品国产91熟女| 台湾肥佬网一区二区三区| 婷婷导航| 日韩精品黄片免费观看| 三久久久四久久久久| 超碰这里有精品| 大香蕉宅男伊人| 首页亚洲国产高跟丝袜诱惑视频| 一区二区三区探花在线观看| 中文字幕丰满人妻日本| 狠狠操狠狠燥| 一区二区蜜臀| 97色插| 囯产乱伦一区二区三女| 欧美黄色大片在线观看 | 麻豆av一区二区| 亚洲精品黑丝| 久久久不卡区一区二区三区久久久| 婷婷色五月激情| 入口操逼网站| 无码精品久久久天天影视| 校园春色五月天| 亚91网| 美女骚尻视频| 佐山爱中文字幕| 毛片视频白嫩| 青草视频在线看看看看看看看看看| 日韩av不卡在线看| 天天做天天爱夜夜爽毛片试看| 男人久久天堂| 亚洲丝袜二区在线| 精品人妻一二三四区视频| 麻豆成人av| 韩日男人的天堂| 九一亚洲国产免费| 国产精品青青草| 2011国产精品| 4399成人黄A片| 午夜天堂啪啪| 日本污ww视频网站| 免费伦费视频在线观看| 中文字幕国产| 亚洲精品国产熟女| 我要去看2个日本美女.com曹逼| 97色亚洲| 欧洲久久一二线| 啊啊啊水好多| 欲香欲色综合天天伊人| av天堂加勒比| 天堂av最新电影网| 神马久久久久久久久| 久久久青草青青国产亚洲免观精品高清完整版_97久久综合区小说区图片区,国精品 | 青青草原伊人网| 99999亚洲另类| 九七超碰人人乐| 欧美日韩精品久久久久东北老熟妇| 精彩久久中文| 91超碰在线观看| 爱丝福利| 精品人妻一区二区免费看| 亚洲欧美碰碰| 精品999999| 97超碰站| 欧美真人抽搐一进一出gif| 97超碰磁| 久久久久久亚洲Av无码| 日本狂喷奶水在线播放212| 日韩图区 偷拍| 免费公开人人操| 人妻日日干| 久久激情五月| 天天日老熟妇| 九九久久久九九| 四虎国产成人精品免费一女五男| 色 亚洲 91| 国产第二页| 欧美图片校园春色| 久久久久亚洲| 青草成人免费视频一com| 日本性爱视频一级| 国产日韩区| 精品亚洲国产成人AV制服丝袜| 欧美极度丰满熟妇hd| 最新欧洲欧美日本激情网站| 午夜呻吟欧美| 久久99手机免费视频| 亚洲欧洲激情| 九月伊人中文字幕| 欧美一级美片在线观看免费| 欧美1区二区三区公司| 99久久久er直播网址| 丁香五月天视频| 亚洲日韩肥臀视频在线观看| 色婷婷综合久久中文字幕雪峰| 后入式在线免费观看60秒| 日本久久999| 爱爱久久| 97热视频在线观看| 国产国产亚洲一二三久久| 亚洲欧美另类激情小说| 中文字幕奈奈美被公侵犯| 九九色影院| 美女啊啊啊啊pc| 欧州一区二区三区四区| 欧美日韩资源在线| 不卡人妻少妇精品毛片一区23区视频| 性老妇一区二区三区| www.成人无码| 中文字幕精品免费一区二区| 在线观看精品国产免费| 九色 人妻 大香蕉| 97干天天| 1024精品在线| 18禁免费视频| 黑操B| 后入式视频国产自| 东京热毛片177b2viP| 十八禁视频一区二区| 99久久99九九99九九九| 青青青青草av在线观看| 色综合大香蕉| 911av网站免费观看| 欧美日韩高潮喷水91| 久久精品电影| 五月丁香激情四射| 色一色综合网| 磁力99AV| 97超碰色色| 欧美综合区| 久久久久9999妇女| 欧美人妻少妇| 成人 日本A片无码8888| 美女高潮视频91| 蜜臀网 一区| 国产真实野战在线视频| 91国产大片| 9Ⅰ老熟女| 99精品久久久久久久婷婷蜜桃| 91欧美偷拍| 超碰九7| 中文字幕在线免费观看视频| 蜜桃久久久久久久久久久久| 操逼操2| 丁香五月成人| 国模91| 精品亚洲成人免费在线| 中文高清一区二区的| www.人人cao| av网站免费看| 超碰免费人人| 免费97视频| 伊人丁香五月婷婷| 色一射色一射| 91热| 性爱乱伦一区| 超碰人妻中文在线| 欧美黄色手机在线观看| 婷婷色综合| 精品十八在线观看| 日韩一区二区三区四区五区| 欧美老妇女内射网址| 天天草天天日| 九月色婷婷| 大香蕉92| 色就色综合| 蜜桃中文字日产乱幕4区| 男人的天堂三级| 2024年最新色情网站在线观看| 中文字幕黄色片|