日韩精品一区二区三区在线视频放-无码中文字幕V?一区二区-成年片免费观看视频-国内少妇人妻丰满av-国产精品中文字幕免费观看-亚洲成人久久一区二区三区-国内少妇偷人精品视频无缓冲-一区二区国产精品日本一区二区三区在线网

ARTICLE DETAIL

資訊詳情

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

從零構(gòu)建LLM推理網(wǎng)關(guān):SSE流式轉(zhuǎn)發(fā)、級(jí)聯(lián)取消與背壓控制實(shí)戰(zhàn)

從零構(gòu)建LLM推理網(wǎng)關(guān):SSE流式轉(zhuǎn)發(fā)、級(jí)聯(lián)取消與背壓控制實(shí)戰(zhàn) 1. 為什么我要自己造一個(gè) LLM 推理網(wǎng)關(guān)1.1 從一次線上事故說起去年年底我在幫一個(gè)內(nèi)部工具做 AI 能力接入。架構(gòu)很簡(jiǎn)單前端一個(gè)聊天框后端一個(gè) Go 服務(wù)收到請(qǐng)求后轉(zhuǎn)發(fā)給上游的大模型接口拿到流式響應(yīng)再吐回給瀏覽器。上線第一周沒什么問題第二周開始陸續(xù)有用戶反饋“回答到一半就卡住了”“刷新之后重新問一遍才行”。我去翻日志發(fā)現(xiàn)兩類報(bào)錯(cuò)反復(fù)出現(xiàn)。一類是stream disconnected before completion: idle timeout waiting for SSE另一類是上游返回400: {type:missing_session_id,message:error from provider}。前者說明流式連接在傳輸過程中被靜默掐斷了后者說明會(huì)話狀態(tài)在轉(zhuǎn)發(fā)鏈路上丟了。這兩個(gè)問題單獨(dú)看都不復(fù)雜但它們暴露的是同一個(gè)根因我把“轉(zhuǎn)發(fā)”這件事想得太簡(jiǎn)單了。一個(gè)真正能扛住生產(chǎn)流量的 LLM 推理網(wǎng)關(guān)至少要解決四件事SSE 流式轉(zhuǎn)發(fā)的正確性、客戶端斷開時(shí)的級(jí)聯(lián)取消、上游生產(chǎn)速度超過下游消費(fèi)速度時(shí)的背壓控制、以及會(huì)話與錯(cuò)誤狀態(tài)的一致性維護(hù)。這四件事在普通 HTTP 轉(zhuǎn)發(fā)里幾乎不用考慮但在 LLM 場(chǎng)景下全部變成了一等公民。這篇文章就是我把這套網(wǎng)關(guān)從零重寫一遍的完整記錄包含設(shè)計(jì)取舍、關(guān)鍵代碼結(jié)構(gòu)、參數(shù)計(jì)算和踩過的坑。1.2 這個(gè)網(wǎng)關(guān)到底解決什么問題先把定位說清楚。它不是模型推理框架不負(fù)責(zé)加載權(quán)重、不做 batch 調(diào)度它站在客戶端和上游推理服務(wù)之間干的是“流量治理”的活。你可以把它理解成一個(gè)專門為流式 LLM 響應(yīng)優(yōu)化的反向代理層。它要解決的核心痛點(diǎn)有這么幾個(gè)。第一LLM 響應(yīng)是逐 token 生成的一個(gè)請(qǐng)求可能持續(xù)幾十秒甚至幾分鐘傳統(tǒng)的“收完再轉(zhuǎn)發(fā)”模式完全不可用必須邊收邊轉(zhuǎn)。第二用戶隨時(shí)可能關(guān)掉頁(yè)面或點(diǎn)“停止生成”這時(shí)候如果網(wǎng)關(guān)不主動(dòng)取消上游請(qǐng)求上游會(huì)繼續(xù)燒算力成本直接翻倍。第三上游生成速度快、下游網(wǎng)絡(luò)慢的時(shí)候如果沒有背壓機(jī)制內(nèi)存里的緩沖區(qū)會(huì)無限膨脹最后 OOM。第四SSE 協(xié)議本身對(duì)連接中斷很敏感任何中間環(huán)節(jié)的超時(shí)設(shè)置不當(dāng)都會(huì)導(dǎo)致“流斷在半路”。適合讀這篇的人正在做 AI 應(yīng)用后端、需要自己搭一層網(wǎng)關(guān)的 Go 開發(fā)者被 SSE 斷流問題折磨過的同學(xué)以及想理解“級(jí)聯(lián)取消”和“背壓”這兩個(gè)詞在真實(shí)系統(tǒng)里到底怎么落地的人。不需要你是 Go 專家但至少要寫過 HTTP 服務(wù)知道 goroutine 和 channel 大概是怎么回事。1.3 技術(shù)選型為什么是 Go為什么是 SSE選 Go 的理由很直接。這個(gè)網(wǎng)關(guān)的本質(zhì)是高并發(fā) I/O 密集型轉(zhuǎn)發(fā)每個(gè)請(qǐng)求都要維持一條長(zhǎng)連接同時(shí)可能有成百上千個(gè)請(qǐng)求在飛。Go 的 goroutine 在這種場(chǎng)景下幾乎是降維打擊——每個(gè)連接一個(gè) goroutine寫起來像同步代碼跑起來是異步性能內(nèi)存占用還低。換成 Java 要處理線程池和回調(diào)地獄換成 Node 單線程又怕 CPU 密集的解析拖垮事件循環(huán)。Go 的net/http標(biāo)準(zhǔn)庫(kù)對(duì)流式響應(yīng)的支持也很成熟Flusher接口直接就能把緩沖區(qū)刷給客戶端。選 SSE 而不是 WebSocket是因?yàn)?LLM 的場(chǎng)景是單向流式推送??蛻舳税l(fā)一次請(qǐng)求服務(wù)端持續(xù)推 token不需要雙向?qū)崟r(shí)通信。SSE 基于普通 HTTP天然穿透各種代理和負(fù)載均衡實(shí)現(xiàn)成本低瀏覽器端EventSource或者fetch加流讀取都能處理。WebSocket 雖然更靈活但要處理握手升級(jí)、心跳保活、幀解析對(duì)這個(gè)場(chǎng)景來說是過度設(shè)計(jì)。熱搜詞里有人問“web socket 和 sse”的區(qū)別一句話總結(jié)需要服務(wù)端主動(dòng)推、且只需要單向推選 SSE需要雙向低延遲交互選 WebSocket。2. 整體架構(gòu)與核心設(shè)計(jì)思路2.1 三層結(jié)構(gòu)接入層、轉(zhuǎn)發(fā)層、上游適配層我把網(wǎng)關(guān)拆成三層每層職責(zé)單一方便單獨(dú)測(cè)試和替換。接入層負(fù)責(zé)和客戶端打交道解析請(qǐng)求、校驗(yàn)參數(shù)、建立 SSE 響應(yīng)頭、管理客戶端連接的生命周期。這一層最關(guān)鍵的是拿到一個(gè)context.Context它會(huì)在客戶端斷開時(shí)被 cancel這個(gè) context 會(huì)一路往下傳成為級(jí)聯(lián)取消的源頭。轉(zhuǎn)發(fā)層是核心負(fù)責(zé)從上游讀取流、解析 SSE 事件、寫入下游。它要同時(shí)監(jiān)聽兩個(gè)方向上游的數(shù)據(jù)到達(dá)、下游的寫入完成。這里我用一個(gè)io.Pipe或者帶緩沖的 channel 來解耦讀寫速率背壓邏輯就藏在這個(gè)緩沖區(qū)的大小和阻塞行為里。上游適配層負(fù)責(zé)和具體的推理服務(wù)對(duì)接拼裝請(qǐng)求體、處理鑒權(quán)、解析不同廠商的響應(yīng)格式。因?yàn)椴煌嫌蔚?SSE 事件格式不一樣有的用data:有的用event:加data:這一層做歸一化把上游格式轉(zhuǎn)成統(tǒng)一的內(nèi)部事件結(jié)構(gòu)再交給轉(zhuǎn)發(fā)層。這樣分層的好處是換上游只需要改適配層背壓和取消邏輯完全不用動(dòng)。我實(shí)測(cè)下來接一個(gè)新的上游服務(wù)適配層大概 100 行代碼就能搞定。2.2 級(jí)聯(lián)取消一個(gè) context 串起整條鏈路級(jí)聯(lián)取消這個(gè)詞聽起來玄乎本質(zhì)就是一個(gè)取消信號(hào)沿著調(diào)用鏈往下傳每一層都響應(yīng)它。在 Go 里就是context.Context的 cancel 機(jī)制。具體到我的網(wǎng)關(guān)客戶端發(fā)起請(qǐng)求接入層用r.Context()作為根 context。這個(gè) context 在客戶端斷開連接時(shí)會(huì)被 HTTP server 自動(dòng) cancel。轉(zhuǎn)發(fā)層拿著這個(gè) context 去請(qǐng)求上游用的是http.NewRequestWithContext。于是當(dāng)客戶端斷開根 context 被 cancel上游請(qǐng)求的 context 也跟著 cancelhttp.Client會(huì)立即關(guān)閉到上游的連接。上游服務(wù)收到連接關(guān)閉也就停止生成了。這里有個(gè)坑我踩過如果你用的是自己管理的http.Client并且設(shè)置了連接池cancel 之后連接不一定會(huì)立刻關(guān)閉可能會(huì)被復(fù)用。解決辦法是在請(qǐng)求上游時(shí)給 context 加一個(gè)明確的超時(shí)并且確保Transport的DisableKeepAlives在長(zhǎng)連接場(chǎng)景下配置正確。另外goroutine 泄漏是級(jí)聯(lián)取消沒做好的典型癥狀——客戶端斷了但讀上游的 goroutine 還阻塞在Read上。我的做法是每個(gè)轉(zhuǎn)發(fā) goroutine 都select監(jiān)聽ctx.Done()一旦收到信號(hào)立即返回。2.3 背壓讓快的一方等一等慢的一方背壓是流式系統(tǒng)里最容易被忽略、出問題又最致命的一環(huán)。想象一個(gè)場(chǎng)景上游模型生成速度是每秒 100 個(gè) token下游用戶的網(wǎng)絡(luò)只能每秒接收 20 個(gè) token。如果沒有背壓網(wǎng)關(guān)內(nèi)存里會(huì)堆積越來越多的未發(fā)送數(shù)據(jù)一個(gè)請(qǐng)求堆幾 MB一千個(gè)并發(fā)就是幾個(gè) GBOOM 是遲早的事。背壓的核心思想是用阻塞傳遞壓力。當(dāng)緩沖區(qū)滿了寫入方就應(yīng)該阻塞直到消費(fèi)方騰出空間。在 Go 里帶緩沖的 channel 天然支持這個(gè)語義ch - data在緩沖滿時(shí)會(huì)阻塞當(dāng)前 goroutine。我把上游讀到的每個(gè) SSE 事件寫進(jìn)一個(gè)容量固定的 channel下游從 channel 里讀并寫回客戶端。channel 滿了上游讀取 goroutine 就阻塞自然就“背壓”到了上游——因?yàn)槲也辉購(gòu)纳嫌?socket 讀數(shù)據(jù)TCP 接收窗口會(huì)逐漸縮小最終上游的發(fā)送也會(huì)被阻塞。緩沖區(qū)容量怎么定這是個(gè)需要計(jì)算的參數(shù)。我按“單事件平均大小 × 期望緩沖事件數(shù)”來估。實(shí)測(cè)一個(gè) token 事件大約 200 字節(jié)到 1KB我取 512 字節(jié)均值。如果希望緩沖 64 個(gè)事件容量就是 32KB 左右。但 channel 存的是事件對(duì)象不是字節(jié)所以我按事件個(gè)數(shù)設(shè)容量64 到 128 之間比較合適。太小會(huì)導(dǎo)致頻繁阻塞、吞吐下降太大則失去背壓意義、內(nèi)存風(fēng)險(xiǎn)上升。3. SSE 流式轉(zhuǎn)發(fā)的核心實(shí)現(xiàn)細(xì)節(jié)3.1 SSE 協(xié)議要點(diǎn)與常見誤區(qū)SSE 的協(xié)議格式其實(shí)很簡(jiǎn)單但細(xì)節(jié)坑很多。一個(gè)標(biāo)準(zhǔn)的事件長(zhǎng)這樣event: message data: {content: 你好} data: {content: 世界}注意幾個(gè)點(diǎn)。第一每個(gè)字段后面跟一個(gè)冒號(hào)和空格然后才是值。第二事件之間用空行分隔也就是連續(xù)兩個(gè)換行符。第三data:可以出現(xiàn)多次會(huì)被拼接成多行數(shù)據(jù)。第四注釋行以冒號(hào)開頭常用來做心跳?;睢W畛R姷恼`區(qū)是換行符處理。SSE 規(guī)范要求用\n但有些上游用\r\n如果你解析時(shí)不兼容就會(huì)把\r當(dāng)成數(shù)據(jù)的一部分導(dǎo)致 JSON 解析失敗。我的做法是解析前統(tǒng)一把\r\n替換成\n。另一個(gè)誤區(qū)是忘記 flush。Go 的http.ResponseWriter默認(rèn)會(huì)緩沖你不調(diào)用Flusher.Flush()數(shù)據(jù)就卡在緩沖區(qū)里客戶端一直收不到表現(xiàn)就是“流不動(dòng)”。每個(gè)事件寫完后必須 flush這是硬性要求。還有一個(gè)容易被忽略的點(diǎn)響應(yīng)頭必須設(shè)置Content-Type: text/event-stream并且要禁用各種中間層的緩沖。我一般還會(huì)加上Cache-Control: no-cache和X-Accel-Buffering: no后者是給 Nginx 看的告訴它不要緩沖這個(gè)響應(yīng)。熱搜里那個(gè)curl sse的調(diào)試方法很實(shí)用用curl -N就能看到實(shí)時(shí)的流式輸出-N是禁用 curl 自己的緩沖。3.2 上游讀取逐行掃描與事件組裝從上游讀 SSE 流我用的是bufio.Scanner逐行讀。為什么不一次性ReadAll因?yàn)榱魇浅掷m(xù)的ReadAll會(huì)一直等到連接關(guān)閉那就完全失去流式意義了。掃描的邏輯是讀一行如果是空行說明一個(gè)事件結(jié)束把累積的data字段組裝成完整事件發(fā)出去如果是以data:開頭去掉前綴存起來如果是event:開頭記錄事件類型其他行忽略。這里要注意bufio.Scanner默認(rèn)的單行長(zhǎng)度上限是 64KB如果上游某個(gè)事件特別大比如返回了很長(zhǎng)的 JSON會(huì)報(bào)token too long。解決辦法是用scanner.Buffer把上限調(diào)大我一般設(shè)成 1MB。組裝事件時(shí)有個(gè)細(xì)節(jié)多個(gè)data:行要用\n連接這是規(guī)范要求。我見過有人直接用拼接不加換行結(jié)果 JSON 里少了換行導(dǎo)致解析出錯(cuò)。另外上游可能在流中間插入心跳注釋行以:開頭這些要直接跳過不能當(dāng)成數(shù)據(jù)。3.3 下游寫入錯(cuò)誤處理與優(yōu)雅收尾往下游寫的時(shí)候最怕的是寫了一半客戶端斷了。這時(shí)候Write會(huì)返回錯(cuò)誤你必須立即停止并且觸發(fā)取消上游。我的處理是每次Write都檢查 error一旦非 nil就 cancel 根 context 并 return。同時(shí)Flush也可能出錯(cuò)同樣要檢查。優(yōu)雅收尾指的是流正常結(jié)束時(shí)要發(fā)一個(gè)明確的結(jié)束事件。有些客戶端依賴特定的結(jié)束標(biāo)記來判斷“生成完成”。我一般會(huì)發(fā)一個(gè)event: done加空 data或者直接關(guān)閉連接。但要注意關(guān)閉連接前要確保所有緩沖數(shù)據(jù)都 flush 出去了否則最后幾個(gè) token 會(huì)丟。我踩過一次坑上游發(fā)完最后一個(gè) token 后立即關(guān)閉連接我的掃描循環(huán)退出但最后一個(gè)事件還在 channel 里沒被下游消費(fèi)結(jié)果用戶看到的是“回答少了一個(gè)字”。解決辦法是掃描循環(huán)退出后先關(guān)閉 channel讓下游把剩余事件消費(fèi)完再結(jié)束響應(yīng)。4. 級(jí)聯(lián)取消與背壓的落地實(shí)現(xiàn)4.1 取消信號(hào)的傳播路徑與 goroutine 管理一個(gè)請(qǐng)求進(jìn)來我至少會(huì)起兩個(gè) goroutine一個(gè)讀上游一個(gè)寫下游。這兩個(gè) goroutine 通過 channel 通信。取消信號(hào)要從根 context 傳到這兩個(gè) goroutine。讀上游的 goroutine 里scanner.Scan()是阻塞的它不響應(yīng) context。所以我不能只靠select ctx.Done()因?yàn)?Scan 卡住的時(shí)候 select 根本沒機(jī)會(huì)執(zhí)行。解決辦法是在單獨(dú)的 goroutine 里做 Scan主循環(huán) select 監(jiān)聽結(jié)果 channel 和 ctx.Done()?;蛘吒?jiǎn)單給上游請(qǐng)求設(shè)置 context當(dāng) context cancel 時(shí)底層的resp.Body會(huì)被關(guān)閉Scan()會(huì)返回 false循環(huán)自然退出。這是最干凈的做法依賴http.Client對(duì) context 的支持。寫下游的 goroutine 里Write和Flush也可能阻塞下游網(wǎng)絡(luò)慢。這時(shí)候如果客戶端斷開Write會(huì)返回錯(cuò)誤goroutine 退出。但如果它阻塞在 Write 上context cancel 不會(huì)直接中斷它。所以我在寫之前會(huì)先select檢查一次 ctx寫完再檢查一次盡量縮短阻塞窗口。極端情況下依賴 HTTP server 的連接關(guān)閉來中斷 Write。goroutine 泄漏的排查我用go tool pprof看 goroutine profile如果發(fā)現(xiàn)某個(gè)函數(shù)對(duì)應(yīng)的 goroutine 數(shù)量持續(xù)增長(zhǎng)基本就是泄漏了。常見原因是 channel 沒人讀導(dǎo)致發(fā)送方永久阻塞或者 context 沒傳到位。4.2 背壓緩沖區(qū)的容量計(jì)算與動(dòng)態(tài)調(diào)整前面說了用帶緩沖 channel 做背壓容量我定在 64。但這個(gè)值不是拍腦袋來的我做了個(gè)簡(jiǎn)單的計(jì)算。假設(shè)單個(gè)事件平均 512 字節(jié)64 個(gè)事件就是 32KB。單請(qǐng)求內(nèi)存占用 32KB 緩沖 goroutine 棧約 8KB 其他開銷算 50KB。1000 并發(fā)就是 50MB完全可控。如果容量設(shè)成 1024單請(qǐng)求就是 512KB1000 并發(fā) 512MB風(fēng)險(xiǎn)就大了。所以 64 是個(gè)內(nèi)存和吞吐的平衡點(diǎn)。但固定容量有個(gè)問題不同上游的生成速度差異很大。有的模型每秒吐 200 個(gè) token有的只有 10 個(gè)。對(duì)慢上游64 的緩沖綽綽有余對(duì)快上游可能頻繁觸發(fā)背壓。我的優(yōu)化思路是根據(jù)上游響應(yīng)頭里的速率提示或者前 N 個(gè)事件的到達(dá)間隔動(dòng)態(tài)調(diào)整容量。不過實(shí)測(cè)下來固定 64 在大多數(shù)場(chǎng)景已經(jīng)夠用動(dòng)態(tài)調(diào)整的復(fù)雜度收益比不高我就沒上。如果你要接的上游特別快可以調(diào)到 128 或 256但要同步監(jiān)控內(nèi)存。還有一個(gè)細(xì)節(jié)channel 關(guān)閉的時(shí)機(jī)。讀上游的 goroutine 結(jié)束時(shí)關(guān)閉 channel寫下游的 goroutine 用for range ch消費(fèi)channel 關(guān)閉后循環(huán)自動(dòng)退出。這樣不需要額外的 done 信號(hào)邏輯很干凈。但要注意關(guān)閉 channel 的只能是發(fā)送方多個(gè)發(fā)送方時(shí)要用sync.Once或者 WaitGroup 保證只關(guān)一次。4.3 超時(shí)策略idle timeout 與總超時(shí)的配合熱搜里那個(gè)idle timeout waiting for SSE報(bào)錯(cuò)根因就是超時(shí)設(shè)置不當(dāng)。LLM 流式響應(yīng)有個(gè)特點(diǎn)首 token 可能等很久但 token 之間間隔很短。如果你設(shè)一個(gè)總超時(shí) 30 秒那長(zhǎng)回答直接被砍如果你設(shè)一個(gè) idle 超時(shí)多久沒數(shù)據(jù)就斷那首 token 等待期可能誤傷。我的策略是雙超時(shí)。一個(gè) idle timeout比如 60 秒只要 60 秒內(nèi)有任何數(shù)據(jù)到達(dá)就重置一個(gè)總超時(shí)比如 10 分鐘兜底防止請(qǐng)求永遠(yuǎn)掛著。idle timeout 用time.Timer實(shí)現(xiàn)每次讀到數(shù)據(jù)就Reset??偝瑫r(shí)直接用 context 的WithTimeout。這里有個(gè)坑time.Timer的Reset在 Go 1.23 之前有競(jìng)態(tài)問題需要先Stop再 drain channel。Go 1.23 之后Reset語義修正了可以直接用。如果你用的是老版本記得處理這個(gè)細(xì)節(jié)。另外idle timeout 觸發(fā)后要發(fā)一個(gè)明確的錯(cuò)誤事件給客戶端而不是直接斷連這樣前端能給出友好提示。5. 常見問題排查與避坑實(shí)錄5.1 流斷在半路從現(xiàn)象到根因的排查路徑“流斷在半路”是我遇到最多的問題排查起來有一套固定路徑。第一步確認(rèn)是上游斷還是下游斷??慈罩纠镒詈笠粭l成功轉(zhuǎn)發(fā)的事件如果上游還在發(fā)但下游沒收到問題在下游寫入或網(wǎng)絡(luò)如果上游本身就不發(fā)了問題在上游或網(wǎng)關(guān)到上游的連接。第二步檢查超時(shí)配置。idle timeout和中間層Nginx、負(fù)載均衡的超時(shí)都要看。Nginx 默認(rèn)proxy_read_timeout是 60 秒如果你的 idle timeout 也是 60 秒兩者疊加可能提前觸發(fā)。我一般把網(wǎng)關(guān)的 idle timeout 設(shè)得比中間層小讓網(wǎng)關(guān)先感知、先處理。第三步看連接是否被復(fù)用。HTTP/1.1 的 keep-alive 在長(zhǎng)連接場(chǎng)景下可能導(dǎo)致連接被錯(cuò)誤復(fù)用尤其是上游返回了不完整的響應(yīng)時(shí)。我一般對(duì)上游請(qǐng)求設(shè)置Connection: close或者禁用 keep-alive犧牲一點(diǎn)性能換穩(wěn)定性。第四步抓包確認(rèn)。用tcpdump或者 Go 的httptrace看 TCP 層的 FIN/RST 是誰先發(fā)的。這一步能定位到具體是哪一端的連接被關(guān)閉。5.2 會(huì)話丟失與 400 錯(cuò)誤的處理熱搜里那個(gè)missing_session_id的 400 錯(cuò)誤本質(zhì)是會(huì)話狀態(tài)在轉(zhuǎn)發(fā)鏈路上沒有正確傳遞。LLM 服務(wù)通常用 session id 來關(guān)聯(lián)多輪對(duì)話的上下文。如果網(wǎng)關(guān)在轉(zhuǎn)發(fā)時(shí)丟了 header 或者 cookie上游就找不到會(huì)話。我的處理是接入層把所有和會(huì)話相關(guān)的 header比如X-Session-Id、Authorization、Cookie原樣透?jìng)鞯缴嫌尾蛔鋈魏芜^濾。同時(shí)如果上游返回 400 且錯(cuò)誤信息里提到 session我會(huì)在網(wǎng)關(guān)層記錄一條明確的日志包含請(qǐng)求 id 和原始 header方便排查。還有一種情況是上游要求 session id 在請(qǐng)求體里而不是 header 里。這時(shí)候適配層要做轉(zhuǎn)換從 header 提取出來塞進(jìn) body。這個(gè)邏輯因上游而異我把它做成可配置的用配置文件描述“從哪取、放到哪”。5.3 常見問題速查表現(xiàn)象可能原因排查方法解決方向流不動(dòng)客戶端無數(shù)據(jù)忘記 Flush檢查寫入后是否調(diào)用 Flush每個(gè)事件后強(qiáng)制 Flush流斷在半路idle timeout 或中間層超時(shí)對(duì)比網(wǎng)關(guān)和 Nginx 超時(shí)配置網(wǎng)關(guān)超時(shí)設(shè)小先感知回答少最后一個(gè)字channel 關(guān)閉時(shí)機(jī)不對(duì)檢查掃描退出后是否消費(fèi)完剩余事件先關(guān) channel 再結(jié)束響應(yīng)內(nèi)存持續(xù)增長(zhǎng)背壓失效或 goroutine 泄漏pprof 看 goroutine 和 heap檢查 channel 容量和 context 傳遞400 missing session會(huì)話 header 丟失對(duì)比客戶端和上游收到的 header透?jìng)鲿?huì)話相關(guān) headerJSON 解析失敗換行符或 data 拼接問題打印原始事件內(nèi)容統(tǒng)一換行符多行 data 用 \n 連接上游不停止生成級(jí)聯(lián)取消未生效檢查上游請(qǐng)求是否用了根 context用 NewRequestWithContext5.4 幾個(gè)我踩過的獨(dú)家坑第一個(gè)坑bufio.Scanner的默認(rèn)緩沖太小。上游返回一個(gè)大的 JSON 事件時(shí)直接報(bào)錯(cuò)退出表現(xiàn)就是流突然斷。調(diào)大scanner.Buffer的 max 到 1MB 解決。第二個(gè)坑http.Flusher不是所有 ResponseWriter 都支持。如果你用了某些中間件包裝了 ResponseWriter可能拿不到 Flusher。我的做法是在接入層用類型斷言檢查拿不到就報(bào)錯(cuò)絕不靜默降級(jí)。第三個(gè)坑context 傳遞時(shí)被意外覆蓋。有一次我在適配層里用context.Background()新建了請(qǐng)求結(jié)果級(jí)聯(lián)取消完全失效客戶端斷了上游還在跑。排查了半天才發(fā)現(xiàn)是這里。教訓(xùn)是任何地方新建 context 都要問自己“這個(gè) context 的父級(jí)是誰”。第四個(gè)坑channel 容量設(shè)太大反而更慢。我一度把容量調(diào)到 1024 想提升吞吐結(jié)果發(fā)現(xiàn)延遲反而上升了因?yàn)閿?shù)據(jù)在緩沖區(qū)里排隊(duì)客戶端要等更久才看到第一個(gè) token。背壓緩沖區(qū)不是越大越好它影響的是延遲和內(nèi)存的權(quán)衡。6. 性能驗(yàn)證與后續(xù)可擴(kuò)展方向6.1 壓測(cè)方法與關(guān)鍵指標(biāo)驗(yàn)證網(wǎng)關(guān)性能我用的是自己寫的一個(gè)壓測(cè)工具模擬 N 個(gè)并發(fā)客戶端每個(gè)客戶端發(fā)一個(gè)請(qǐng)求并持續(xù)讀取流直到結(jié)束。關(guān)鍵指標(biāo)有三個(gè)首 token 延遲TTFT、吞吐每秒完成請(qǐng)求數(shù)、內(nèi)存占用。TTFT 反映的是網(wǎng)關(guān)引入的額外延遲。理想情況下網(wǎng)關(guān)的 TTFT 應(yīng)該和直連上游差不多額外開銷在毫秒級(jí)。我實(shí)測(cè)下來網(wǎng)關(guān)引入的 TTFT 增加在 5ms 以內(nèi)可以接受。吞吐方面單機(jī) 8 核跑 1000 并發(fā)CPU 占用在 40% 左右瓶頸主要在上游的生成速度而不是網(wǎng)關(guān)本身。這說明網(wǎng)關(guān)的轉(zhuǎn)發(fā)邏輯沒有成為瓶頸。內(nèi)存占用是重點(diǎn)觀察對(duì)象。1000 并發(fā)下RSS 穩(wěn)定在 200MB 左右沒有持續(xù)增長(zhǎng)說明背壓和 goroutine 管理是有效的。如果看到內(nèi)存曲線一直往上走那一定是哪里泄漏了。6.2 可以繼續(xù)做的優(yōu)化第一個(gè)方向是連接池優(yōu)化。目前對(duì)上游用的是默認(rèn) Transport連接復(fù)用策略可以調(diào)優(yōu)比如設(shè)置MaxIdleConnsPerHost來匹配并發(fā)量減少建連開銷。第二個(gè)方向是多上游負(fù)載均衡?,F(xiàn)在只接一個(gè)上游如果要做高可用需要加一層選擇邏輯根據(jù)上游的健康狀態(tài)和負(fù)載來分發(fā)請(qǐng)求。這塊可以結(jié)合健康檢查和加權(quán)輪詢。第三個(gè)方向是可觀測(cè)性增強(qiáng)。目前只有基礎(chǔ)日志可以加 Prometheus 指標(biāo)暴露活躍連接數(shù)、背壓觸發(fā)次數(shù)、取消次數(shù)等方便做容量規(guī)劃和告警。第四個(gè)方向是請(qǐng)求級(jí)別的限流。防止單個(gè)用戶占用過多并發(fā)影響其他人??梢杂昧钆仆八惴ò从脩艟S度限流。這套網(wǎng)關(guān)我從零寫到現(xiàn)在大概迭代了三個(gè)版本第一版只做了基本轉(zhuǎn)發(fā)第二版加了取消和背壓第三版做了分層重構(gòu)和錯(cuò)誤處理完善。每一版都是被真實(shí)問題逼出來的。如果你也在做類似的東西我的建議是先把級(jí)聯(lián)取消和背壓這兩個(gè)基礎(chǔ)打牢它們決定了系統(tǒng)的下限SSE 的細(xì)節(jié)處理決定了上限。別急著加功能先把流的正確性做扎實(shí)后面擴(kuò)展起來才不痛苦。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
少妇内射www在线观看视频| 亚洲av综合色区图片亚洲| 中文字幕一区二区视频在线观看| 久久久久夜夜夜夜| 99老司机精品视频在线观看| 国产女人操逼视频| 97天天爽| 操死我了啊啊啊| 日本黄色精品| 人人操人人干网页| 嗯嗯啊在线视频| 国产一区麻豆免费观看| 97伊人超碰| 26uuu久久| 夜嗨影院| 国产欧美一区二区| 丝袜色综合| 无码天堂| 亚州操逼网| 97天天爽| 97在线亚洲| 综合网欧美| 性在久久久久久| 激情综合网五月婷婷五月天| 999久久久精品国产| laoshunv91| 午夜精品久久久久久久第一页按摩| 97网色| 97综合| 91足交| 国产不卡精品91| 韩日精品福利视频一区不卡在线免| 清纯唯美亚洲另类| 亚洲熟伦熟妇AV无码春色| 午夜AV人气不卡| 色五月婷婷五月天| 欧美激情黑人| 激情天天视频| 日韩三级视频一区二区三区| 9久久久久久| 久久免费99精品久久久久久| 久久麻豆一区二区| 欧美另类天堂| 久久精品欧美一区二区三区不卡| 国产精品天美传媒| 自拍啪啪视频| 久久91精品国产9丨久久分亭| 伊人综合色网| 91色伦| 日日爱99| 麻豆久久视频在线地址| 78操B| 日韩丰满熟妇| 欧美伦乱爱| 青草精品视频一日本久久久久网站| 女欧美一区二三区| 亚洲第一页色| 久九九九九九九九热| 国产精品亚洲高清在线| 日日A∨| 男女无套 免费网站| 黄片在线免费在线观看| 激情小说亚洲图片| 人人人人插| 美女久久久久久久| 日韩啊V| 亚洲精品乱码线路中文字幕| av大香蕉网站| 天天看天天干| 亚洲一二三| 亚洲成人在线高清| 97超级欧美| 欧美一区二区男人天堂| 中文字幕在线观看AV| 加勒比中文av| 精品少妇后入一区二区三区四区人妻巨乳 | 2017天天插| 国内三级自拍小视频在线观看| 亚洲欲色9532548967一区| 91色欧美| 91美女视屏| 蜜臀一区二区三区亚洲最新章节在线观看 - 高清蜜臀一区二区三区亚洲全集播放 | 深夜国产一区二区三区在线看 | 啊啊啊在线观看免费视频| 欧美性性性| 99精品视频在线观看| 久久欧美1卡2卡3| 日韩美女久久一区二区三区| 久久久久少妇| 97视频在线免费看| av毛片aaaaa免费看| 亚洲 欧美 91| 最新亚洲黄色免费电影| 九九久久国产精品| 日韩在线一区二区| 超碰久久精品| 丁香五月性| 亚洲欧美综合网| 国模吧 一区二区三区| asc国产精品| 久久国内| 亚洲国产成人精品女人久久久| www老逼91| 国产精品不卡一区二区三区av| 亚洲欧美爆| 天天操狠狠日夜夜干超大胆开放com大香蕉视频在线观看 | 麻豆国产96在线| aaaa少妇高潮大片| 国产乱人伦AVA麻豆软件.| 加勒比少妇AV婷婷六月天超碰超碰| 成 人片 黄色大片| 久久9久9久99久9久9| 色呦呦国产精品免费看| 欧美日韩国产人人| 色情五月丁香| 天天干人人乐| 吉川爱美98堂在线| 欧美网站免费| 日本久久女同性恋视频| 99精品丰满人妻| av无码精品久久久久| 欧美性第1页| 99热综合| 久久透逼视频| 久久久9 9 9精品| 国产精品电影| 三级精品三级在线观看| 98福利在线视频| 91黑人无码激情在线| 国产蜜臀精品一区二区尤物| 爱爱动态120秒| 中文字幕日韩电影人妻| 精品国产乱码久久久久久免费| 国产成人亚洲精品自产在线 | 精品久久久久黄少妇| 91人妻最真实刺激绿帽| 日本大香蕉综合网红本杳社区| 亚洲另类久操网| 家庭乱伦国产| 99在线精品视频| 超碰色中文| 51一区二区三区| 亚洲性天堂| 久久久久亚洲精品| 亚洲精品久| 大香蕉视频一二三区| 四虎免费在线播放| 求求你操操我| 国模限制级电影| 中日韩久久久| 26uuu久久| 天堂精品| 你草精品在线视频| 台湾佬激情综合| 1禁看欧美黄片免费看| 97AV在线观看| 亚洲熟女一区二区| 久噜噜| 激情深爱五月天| 国产精品999zyz| 思思热一热婷婷热一热| 国产97在线播放| 综合网亚| 欧美三级一级| 操91| 美女被艹尤物视频| 老外又粗又长一晚做五次| 亚洲图片欧美偷拍| 欧美精品欧美精品系列| 99爱爱| 欧美天堂日韩三级国产传媒| 91暧暧| 婷婷色婷婷| 性色av蜜臀av色欲aV| 精品久久久av无码免费| 600国产精品视频| 超碰这里只有精品| 欧美一二在线| 97精品97| 久久夜夜夜| 97高清啪啪| 99热精品在线在线| 丝袜大香蕉| 福利在线黄片| 久久久成人国产精品无码| 手机在线播放国产福利| 婷婷伊人五月| 天天网综合| 久啪视频| 欧美亚洲韩国视频十五区| 成人在线永久| 男人的天堂欧美| 人妻插插人妻人| 国产11页| 久久99久久99精品免视看婷婷| 乱伦日本色图AⅤ| 男女性感激情网站| 操操逼操操逼操操逼逼| 东北丰满熟女国产一区| 草莓精品视频在线免费观看| 夜夜操美女| 蜜臀久久99精品久久久久| 亚洲人妻色图| 一二三区精品视频| 加勒比aⅴ| 夜夜久久久| 91丝袜人妻| 亚洲天堂久久| 91四海无码日韩欧美| 超碰97伊人| 亚洲成人妻日韩在线| 欧美 综合| 九九九九热| 操一对老熟妇爽上天视频| 超碰在线1234区| 日韩人妻精品| 欧洲色综合| 91女日逼| 777超碰| 999精品乱码| 日韩少妇无码| 操啊国产| 极品尤物自安慰| 九九探花视频在线观看| 日本三级大片| 热久久91婷婷| 亚洲色图国产另类| 日产成人久久| 欧美九九九| 最新制服中文第一页| 欧美不在线| 欧美激情综合| 日韩激情啪啪啪| 91小视频| 丰满人妻一区二区三区| 综合激情97| 青青草字幕AV| 色网1| 久久九九久精品国产尤物|国产精品爽黄69天堂A片潘金莲,国产亚洲精品第一综合 | 国产亚洲中文不卡二区| 无码操逼网| 中文字幕日本久久| 蜜桃久久久久久| 美女淫穴| 国产av色网| 日韩有码专区| 人人摸.人人色| 国产精品一二三在线看| 超碰79人人乐| 一区二区不卡| 午夜啊啊| 中文字幕一区二区三区字幕| 国产精品自产拍在线观看社区| 屌色在线97视频| 懂色AV中文| 亚洲欧洲激情| 日日夜夜摸| 一本一道波多野毛片中文在线| 亚洲精品视频在线播放| 麻豆久久久久久久久丝袜 | 国产精品黄色三级av| 日韩一级片在线看| 亚洲免费97免费| 99国产精品免费| av草草在线电影| 亚洲男人天堂av| 美国黄片aaa| 亚洲精品日日夜夜52| 久草精品热视| 一区二区三区四区在线不卡| 2024年最新色情网站在线观看 | 熟女乱伦二区| 美女主播色欲91抠b在线播放| 国产精品经典一卡久久久| 精彩久久中文| 波多野42部激情无码喷潮| 欧美做爰无码A片视频| 97免费视频网| 大香蕉淫人网| 久久久久国产一区二| 五月婷婷六月丁香| 超碰久久精品| 久久草草亚洲蜜桃臀| 色99视频| 强奸熟女一区二区三区| 伊人影院日本| 丁香五月婷婷五月| 欲女人妻性色av| 麻豆国产精品午夜视频| 久久草大香蕉| 欧美日日人人天天| 日韩综合无码色欲vv| 色婷婷丁香五月| 久久精品人妻一区二区| 日本爽爽爽爽爽爽免费视频| 久久久人体| 97 国产精品| 精品欧美А∨无码黑人大荫蒂| 97色五月天完| 97资源站日韩| 综合五月婷婷| 密臀成人视频久久久| 热思思免费视频| 岛国艾薇凹凸视频天堂| 久久精品视| 久久黄片国产一区二区| 日韩pv中文| 久久久精品,3| 日韩免费性爱视频在线观看| 97精品国产手机| 操操操五月天婷婷丁香影院| 麻豆黄站| 91嫩草欧美| 蜜臀th| 97精品一区二区视频在线观看| 亚洲开心网| 91欧美大片| 久久久一区二区三区四区五区| 精品999一区二区| 日韩少妇一区二区三区| av绯色| 国产AB视频| 亚洲av噜噜噜噜噜噜| 久久香蕉国产线看观看亚洲女人 | 九九九久久久久| 天堂俺去俺来也www久久婷婷| 天美传媒av一区二区| 亚洲欧洲美腿丝袜| 亚洲少妇色| 97色涩| 少妇与黑人高潮在线| 婷婷伊人网| V A在线| 人妻少妇精品无码专区二区密桃| 国产丸一视频| 欧美少妇高潮| 成人久久久| 日本中文熟女视频| 高清国产精品无码| 在线a v| 操逼片中文| 97人妻免费中文字幕| 牛黄色久午久| 欧美激情欧美精品| 本道在线| 美女被啪到深处抽搐视频| 成年人网站在线免费观看| 美女尤物人人操| 色人久久| 久久伊人青青草| 男人的天堂无码| 600国产精品视频| 青青草久久| 久久久久久久六六| 日日夜夜精品视频| 久久东京伊人一本到鬼色| www.99热| 91国产伊人大香蕉| 亚洲中文字幕在现观看| 青娱乐久久艹| 78综合网| 全国男人天堂网| 日产操逼| 精品国产乱码久久久久久影片| 日本男人插女人的逼黄色| 色悠久| 欧美一区二区三区日韩| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师 | 天天日天天干少妇日| 国产宅男宅女在线观看| 欧美中文字幕男人天堂久久精品 | 久久亚码| 色y情视频免费看| 国产suv精品一区二区四区999| 9九九国产| 在线视频免费播放一区| 蜜奶av| 久久久91| 殴美,日韩国产伦精品| 女人18精品一区二区三区| 啪啪AV导航| 啊啊啊啊二区好大| 中文字幕日韩专区精品系列 | 婷婷在线视频在线观看| 亚洲熟妇乱女区二区三区| 亚洲色交| 无码人妻一区二区一牛影视| 啊啊啊啊啊啊在线观看| 欧美日日夜夜| 一个色导综合| 性性久久| 免费看黄视频亚洲网站| 五月天亚洲网| 激情久久av一区av二区av| 99re在线视频这里只有精品| 91在线精品| 欧美天天影院| 鲁鲁色综合网| 午夜a成v人电影| 97视频620| 国产精品色片一区二区| 欧美后入式| 男人的天堂不卡一区二区| 69一区二区三区| 亚洲色图 欧美热图 清纯唯美 另类自拍 | 加勒比五月天| 亚洲欧美一区二区三区在钱蜜桃| 天天看高清麻豆| 蜜乳视频网站| 欧美人人AAA| ...日韩成人一区二区三区字幕| 操逼国产免费| 婷婷人妻激情| 国产强奸乱伦xd| 好看的91视频| 国产精品免费视频人成| 密臀视频三区免费网站| 青久操| 久久久久国产精品喷潮免费观看臀| 999熟女精品| 亚洲激情AV| 92性色国产午夜福利在线661| 日本欧美色| 五月丁香激情啪啪| 九九精品99| 日本国产二线女色| 伊人青青草久久| 欧美中出1| 日本人妻最新在线中| 九草九九九| 亚洲91亚洲| 婷婷久久大香蕉| 熟女这里只有精品6| 无码二级三级| 熟妇国产免费一区| 国产在线不卡导航| 色五月婷婷色| 干干干天天| 97香蕉网| 乱欲视频| 大香久久| 天躁夜夜躁2021| jiujiujiujingpin| 五月天伊人| 四虎影库国产精品免费| 丁香六月激情综合| 亚洲色图亚洲无码强奸乱伦| 亚洲一区二区三区中文字幕| 一本久久久精品| 啊啊啊啊啊舒服| 婷婷15月天青娱乐| 91国产美女丝袜足交精品视频| 久久本道| 天操天操夜操夜月操月年年操| 亚洲色图激情小说| 一本一道人妻久久一区二区三区| 五月婷在线| 亚洲AV免费在线| 婷婷五月天av| 色噜噜婷婷| 九九九影院| 日日碰狠狠添天天爽超| 日韩一级片在线看| 人人妻人人色| 不卡码视频| 看黑人AV不卡| 久久精品天美| 久操高青| 久久久久9久久久久| 91女在线观看| 色女99一级片在线观看| 97精品国产手机| a人片中文字幕一区二区| 亚洲999综合| 视频黄站| 五十路熟女人妻一区二区在线观看| 熟女少妇一区二区三区| 夜夜欧美 | 亚洲AV麻豆Aⅴ无码电影一| 视频国产欧美在线播放| 欧美1区二区三区公司| 国产亚洲日韩在线三区黑人| 久久性爱大全| 亚洲中文字幕乱码无码一区二区| 日日橹狠狠爱欧美超碰| 97中文字幕一区| 欧美综合天堂| 精品人妻中文字幕4399| 日韩 欧美 视频 在线 一区| **一级毛片国产| 中文无码一二三区| 96久久久精品| 久草这里只有精品 | 99re只有精品| 大但人体久久久久| 男人的天堂 在线一区| 黄片视频,下载| 正在播放:深夜激情大战,自带黑丝袜全力输出骚穴 | 在线a v| 久久99网站| 十八禁黄色成人网站观看| 老鸭窝日丰县女人| 极品销魂美女一区二区| 操比国产| 精品无码人妻一区二区免费蜜桃| 麻豆91熟妇人妻中文字幕茄子| 99在线免费公开视频| 精品性爱无码在线播放| 蜜臀色乳| 亚洲阿v天堂在线| 97人人超| 91痴汉| 免费a级毛片av无码久久精品中文字幕| 免费强奸av| 绯色AV粉色AV蜜臀AV| 久久久久久久久久久久久久久久9| 国产白丝网站| 中文字幕一区二区日韩网| 色色色综合网| 久热精品在线| 伊人五月天激情| 国产精品久久久777| 天天综合亚洲综合| 伊人久久88国产女| 久久久久久无码人妻中文字幕| 69av一区二区三区| 99热超碰| 精品九九九九九九| 国产日韩欧美三级片| 香蕉大久久久| 天天色黄色影院天天操| 97天天操天天干| 国产激情在线| 无码WWW免费视频网站| 色眯眯射| 少妇一级无码精品| 超碰97网址| 亚洲国产91精品一区二区久久| 国产成人精品必看| 加勒比在线视频| 日韩精品在线视频,日韩精品……| 国产久久一区二区三区野外在线| 91精品人妻一区二区三区蜜臀| 91天天日| 密臀在线一区尤物| 欧美se综合| av一区二区三区不卡| 凹凸视频特色日本特黄| 9精品久久| 69av一区二区三区| 91国产丝袜足交精品视频| 亚洲少妇视频| 狠狠狠狠狠干| 人人操人人肉久久精品| 99人人干| 精品一区二区三区18| 精品黑人一区二区| 性高潮久久久| 久久婷婷伊人| 精品成人久久久人人亚洲| 在线观看精品国产免费| 天欧美在线| 操逼逼中文字幕| 日本顶级天天操狠狠操夜夜操中文字幕| av天堂天堂av日韩| 超碰69| 中文字幕亚韩| 国产精品福利视频| 女人一区| 黄色高清无码无码破解免费暗网 | 美女极品一区二区三区| 91久久久老司机| www色日本| 久久风骚城市| 少妇国产不卡| 波多野结衣被操50分钟免费视频| 偷拍新久久| 久99| 成全在线观看免费观看| 久9综合在线| 观看免费区二区三区二| 国产高清精品一区二区三区毛片 | 97欧美色综合| 麻豆 欧美 日韩| 天天躁日日躁成人字幕aⅴ| 久久精品无码熟妇一区二区三区视频导航| 亚洲精品男人的天堂| 天天澡天天爽日日AV| 96久久久精品| 婷婷亚洲中文字幕在线| 国产一级操B视频| 丁香九月婷婷| 91精品少妇搡搡搡| 伊人久久大香蕉线AV五月天| 免费看久久久性性| 亚洲AV成人无码一二三久久| 国产免费内射视频| 97在线观看免费| 日韩人妻操B| 天堂8在线新版官网| 韩三级a视频在线观看| 中文字幕av片| 青青草成人视频在线观看二区 | 欧美熟妇亚洲版| 日韩成人色图| 午夜男人天堂| 啊啊啊不要好疼视频| 日本三级一区二区 在线| 五月天伊人网| 黑人性暴力毛片| 另类视频在线| 国产精品视频播放| 国产精品对白内射| 五月花婷婷| 天天爱天天韩国日本牛牛牛牛| 国产 热久久久久国产精品| 国产精品久久久久久亚洲色欲| 久久黄人人爽视频| 欧美日韩久久精品爱爱| 18精品一二区| 97视频播放| 人人妻人人爽一区二区三区| 极品色综合| 91性网| 欧美男人的天堂| 欧美亚洲特P| 人人妻人人爽一区二区三区| 日夜精品| 综合伊人激情| 人人操人人uiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii | 少妇三P| 亚洲诱惑| 日韩人妻精品| 十八禁黄色| A 天堂| 在线无码视频| 99久久精品无码一区二区| 丝袜剧情| 黄污污污污| 欧美人妻精品| 夜夜福利| 啊啊啊啊啊啊在线| 色激情综合网站| 久久久久久久伊人精品| 国产三区免费在线观看| 92福利社视频| 中文字幕天天操| 91操人| 97资源久久| 強姦亂倫a| 亚洲色图欧美视频| 蜜桃传媒一区二区亚洲| 欧美在线视频观看一二三四区高清| 亚洲成人帖图| 人人摸.人人色| 日韩av乱伦| 97se综合网| 久久久久人| 日韩免费福利在线观看| 睡产熟女乱伦| 91色图片| 天天亚洲| 国产97色在线| 免费人人搞97| 東南亚性呦成人伦理资源在线视频| 亚洲精品一区二区精华| 91GD.COM| 亚洲涩图欧美| 上海一级黄片| 97玖玖人妻| 久久精品无码不卡| 国产一区二区a毛片| 中文字幕国产精品1区| 国产蜜臀在线| 国产成人无码高清| 大香蕉之青青草原| 亚洲伊人a线观看视频| 天天日日本| 97资源亚洲| 在线观看日韩av不卡| 蜜桃视频一区二区三区在线观看| 九九草| 国模吧 一区二区三区| 亚洲精品 欧美精品| 波多野结衣一级视频| 欧美香蕉视xxx| 最新亚洲黄色免费电影| 91原创在线观看| 97精品在线视频| 亚洲一区日韩| 嗯嗯不要 视频| 丁香激情网| 久久精品女同亚洲女同13| 99久久精品无码一区二区| 欧美人妻久久精品二区三区| 九九热在线视频| 国产精品久久久久久久久久久久久久久 | 97视频在| 人人妻人射| 青草视频人妻在线观看| 亚洲免费人妻在| 欧美手机在线综合| 免费黄色A片| 风韵犹存大大大大香蕉 | 欧美啪啪女女| 97亚洲中文| 亚洲成人一二三区| 免费操逼视频下载| 大香蕉视频啪啪啪啪| 精品久久人妻成人网| 欧美人妻一区二区| 老熟女91av| 青青操网| 夜夜爽夜夜摸夜夜操免费视频| av资源在线观看少妇| 伊人91| 日韩精品人妻系列无码天堂| 国产操逼视频在线观看| 中文字幕熟女人妻丝袜丝| 先锋精品av色鲁| 51久久夜色精品国产麻豆| 天天性射网| 久久久噜噜噜久久久| 精品v日韩欧美国产| 99精品人妻| 久草在| 香一区二区三区| 亚洲免费人妻在| 97在线视频观看| 久久久成人免费av电影| 国产伊人自拍| 99久久网站| 无码国产Av| www亚洲欧美| 亚洲天堂日本| aaa淫乱视频| 大香蕉啪啪啪| av天堂精品久久| 青娱乐啪啪视频| wuyechaopeng| 国产精品高潮久久AV| 蜜臀少妇一区二区| 嫖老熟女A片一二三区| 日本人妻中文字幕精品| 加勒比伊人| 尤物AV免费网站| 精品国产91久久久久久一区黄无| 日韩有码一区三区| 日韩一区二区三区四区五区| 国产成人亚洲精品无码古代早漏男| 免费无码婬片AAAA片直播色戒| 欧美最大综合网| 97亚洲资源| 二级久久网| 天天爽夜夜欢视| 欧美AB在线观看| 91狠狠色丁香婷婷综合久久精品| 秋霞曰韩R级| 久久综合国产精品国产| 亚洲黄色视频在线观看视频| 亚洲影院365| 啪啪自拍九九综合| 九九草| 天天上日日上日韩精品| 思思热国产高清| 日韩熟女无码| 日韩一级久久毛片| 一类av片在线看| 国产一级内射无挡观看| 国产中文大片资源中文字幕| 看全色黄大色大片免费视频| 青青青青青手机视频| 久久久久熟女| 99热在线播放| 秋霞色色影院| 欧美 精品国产制服第一页| 久操电影| 国产女人与拘做受视频免费| 国模无码一区二区三区在线| 人、人、摸,人、人、草| 97最新在线播放视频| 91小视频| 有码免费观看| 免费1级a做爰片观看| 眼镜人妻101.com| 日韩精品在线观看观看| 五月天玖玖资源站| 欧美不卡在线美女| 99re69| 后入福利视频| 麻豆成人影音在线| 强奸国产精品视频| 久久婷婷亚洲| 骚人妻少妇视频| 青青草一区二区高清无码视频| av网站免费线看| 亚洲精品乱码久久久久久蜜桃麻豆| 综合影院亚洲| 久操电影网| 韩国三级一线观看久| 天天干夜夜一操| 精品无码一区二区| 鸥美精品一区二区久久婷婷| 色九九久九九| 欧美成人四级在线播放| 天天综合色电影| 91男人综合| 亚欧免费| 97色冈| 人妻熟女一区二区三区视频| A一区片| 草b在线| 干B网| 丁香九月激情啪| 欧亚成人在线视频| 九九无码| 一区二区三区机械有限公司| 精品久久九| 无码操逼视频一下| 久久精品视频久久久| 操久久久久| 亚洲AV无码国产精品久久久久| 裸体美女久久久| 亚洲天堂资源网| 91丝袜美女国产| 久久黄黄黄| 欧美很很操视频| 久久成人东京热人妻| 中文自拍欧美影视| 四虎免费在线播放| 亚洲综合中文字幕有码| 97色涩| 91肉片| 国产13区| 久久久久久人妻一区精品色欧美| 国产丰满熟夫69mpp| AⅤ片水多多| 啊啊啊在线观看免费视频| 情趣丝袜无码操逼视频| 97国产色图| 日逼逼免费看| 五月开心久久AV官网| 一区二区三区视频在线观看免费| 操老熟女AV| 午夜男女爽爽爽在线视频| 男人的天堂2018东京热啪啪啪| 天天躁日日躁AAAAXXXX国产| 国产精品美女久久久久久网站| laoshunv91| 黑人嘿嘿嘿超爽免费视频| http://qxhbdz.com| 开心五月激情网| 1204人成网站色www| 熟女欧美日韩综合婷婷| 欧美中字二区| 成人AV在线电影| 久久97超碰| 狠狠操一区二区| 亚洲熟女中文字幕在线| 亚洲天堂男| 99亚洲人人| 久久久久国产一区二| 男人天堂网站| 91jk色拍| 9色在线| 岛国1区2区3区在线观看| 乱操9999| 午夜天堂精品久久| av日韩在线观看电影| 草草草草视频| 日本高清一本二本免费不卡| 有码免费观看| 五月丁香久久| 国产操操日韩三级黄| 超碰91在线| 黑人粗大V S日韩女优视频| 97舔舔| 婷婷六月色开| 370p日韩欧美亚洲精品| 葡萄牙性视频一二区 | 色偷综合| 天天综合~91入口| 成人乱人伦一区二区| 男人在线天堂| 天天操福利视频综合网站| 九九自拍伦理| 日本熟人妻中文字幕在线|...久久国产精品-国产精品_日本一区二区三区中文字幕 | 天天影视综合色| 91女优在线观看| 国产青视频| 黄色不卡视频| 一区二区 日韩 欧美 国产 传媒| renqi久久久久久久久久久久| 国内自拍 日韩激情 99| 思思在线免费视频| 强奸乱伦中文字幕AV| 乱伦图av| 成人网站 免费观看| 日韩欧美午夜一区二区| 老子午夜伦不卡影院| 日韩免费中文字幕视频| 操一操摸一摸| 久久加勒比| 国产视频第二页| 久久久啊啊啊| 久久久久久久久久久久色网| 91亚洲丝袜熟女| 941超碰| 日本最新1区2区3区| 色偷综合| 日本高清加勒比| 色综合1991| 久久久成人免费av电影| 在线看污网站| 大色综合| 日韩无码三级影院| 国产精品一区av在线| 久久99午夜精品一区人妻| 啪啪啪东京| 日本一区二区三区四区免费观看| 亚洲高清在线| 久久亚洲不卡| 91久久久老司机| 天天综合,91入口| 精品视频一二三中文| 日本国产亚洲一区在线观看| 欧美亚洲第一页| 欧美日韩操逼嗦吊| 日本免费中文一区二区三区四区 | 夜夜操二区| 青青操少妇| 97国产精品久久久久| 中文字幕在线免费观看 | 欧美少妇高潮| 熟女这里只有精品6| 黄色片大香蕉| 亚洲一二三精品久久网| 中文字幕精品亚洲熟女| 特色a在线上| 亚洲 自拍偷拍 欧美| 亚洲激情网| 午夜后入| A片大香蕉在线| 国产亚洲精品第一最新| 用力操死我| 99精品无码| 蜜臀久久99精品久久久久久-DVD原版全| 久久国产乱子伦精品免费女人| 综合欧美日本三级| 欧美中文狠| 欧美日韩久久精品爱爱| 久久毛卡| av操操不卡| 国产免费内射视频| 五月婷在线| 中文字幕在线2| 日本操逼视频免费| 伊人影院中文字幕| 97人妻人人躁人人玩人人| 91内射| 六月丁香婷| 99热大香蕉伊在线| 欧美一级美片在线观看免费| 天天肏美女| 色九久| 九九热在线精品视频| 九九热午夜欧亚国产视频| 国内亚洲高清无码| av在线人气| 亚洲熟女av中文字幕| 色色99| 酒色综合网| 天天狠| 精品人妻中文字幕高清| 中文字幕日产av人| WWW.操逼.COM| 综合国产97| 草草电影院| 人妻一区久久二区三区色播| 激情婷婷综合久久| 中文有码第五页| 园内精品自拍视频在线播放| 97精品中文字幕| 亚洲激情在线一区二区| 天天干人人乐| 刺激性视频黄页| 成年人网站在线免费观看| 97视频620| 亚洲 自拍偷拍 欧美| 亚洲麻豆18发?| 亚洲人妻av| a片偷拍视频| 牛牛久久国产精品视频一二三| 粉嫩绯色AV一区二区在线| 熟女少妇一区二区三区| 蜜臀AV一区二区三区激情综合| 国产精品福利资源在线尤物| 超碰久久草| 亚洲精品美女久久久久久久久| 9久精品| 91路www| 狠狠干,狠狠操| 成年人黄色视频免费| 后入式在线免费观看60秒| 强免费黄色网址| 在线午夜成人无码视频| 色悠久久久av| 超碰超碰95| 国产精品色片一区二区| 国产区日韩区在线观看| 色偷综合| 97久久超碰国产网站| 乱伦系列一区二区| 亚洲一区日韩精品| 欧美色交| 激情啪啪视频| 超碰在线974| 九九久久综合| 中文字幕美女91| K8久久久久| 日日噜噜夜夜久久亚洲一区二区| 人妻久久久| 亚洲国产一区二区三区四区国产| 美女熟妇色| 91亚洲综合| 91 综合网| 好一吊区二区| 91 亚洲情侣偷拍 久久| 欧美亚洲丝袜美女电影| 青青草中文-久久青草精品一区二区三| 牛牛aV| 日本高清_区二区三区| 久久精品国产99精品亚洲蜜...| 美女好片色日本| 99re6在线视频播放免费精品| 亚洲怡春院| 天天舔天天日天天射| 美女91在线观看| 欧美黑人猛交春色影视大全| 青青草操逼逼视频| 亚洲av淫乱| 天天插天天操| 99热婷婷| 99热综合在线| 九九九午夜| 色老汉色| 天堂射| 欧美天天综合站| 97精品一区| 加勒比aⅴ| 欧美黄业| 精品国产Av无码久久久亚洲| 亚洲精品一二牛牛| 俄罗斯一区二区视频在线观看| 手机在线中文字幕国产| 国岛片视频| 超碰在线成人| 日韩97视频!在线| 高清不卡一二三区视频......| 青青草日本中文字幕| 久久骚少妇| 日韩欧美麻豆| 91视频综合网| 性久久久| 亚洲欧美中文日韩视频中国语| 久久女婷| 国产精品2020| 97jingpin| 中文字幕在线免费观看| 99re免费| 午夜福利激情在线视频| ?亚洲伊人伊成久久人综合网| 99热在线播放| 色狠人在线99| 久久精品女同亚洲女同13| 日天天九九天堂666| 国产无码精品无码| 熟女人妻一区二区三区| 天天综合色电影| 天天摸夜夜操视频| 九九九九精品| 国产一级特黄大片处女| 91丨九色丨大屁股| 久久久久久久久久久97| 91视频综合在线| 日韩成人高清一区二区| 青娱乐久久艹| 男插女青青影院| 久久黄人人爽视频| 欧美亚洲| 亚洲天堂情色| 国产精品香蕉| 9久热| 天操天操夜操夜月月年年操操| 久久精品午夜国产亚洲AV无码| 天堂种子在线www网资源| 97精品97| 亚洲高清视频在线免费观看| 亚洲天堂久久| 欧美极品色| 国产精品嫩草影院免费| 青青操少妇| 人妻少妇久久中文字幕一区二区 麻豆| 精品成人动漫一区二区| 99这里有精品| 97超碰影音| 国产成人拍国产亚洲精品| 强上我不卡卡| 中国和日本人色哪个不下载能放| 日本高清有码网址视频| 精品久久久久久久久久久久| 国产性爱强奸乱伦大全| 999久久久久久久精| 97色操| 99操99| 亚洲黄色| 五月综合色| 欧美色狠| 97激情97激情| 乱伦一区二区三区‘| 精品国产乱码久久久兰草影视| 久久久久亚洲AV无码专区少妇| 四虎884a| 免费看黄视频亚洲网站| 四虎精品一区| 中文字幕精品资源在线| 久久精品无码熟妇一区二区三区视频导航 | 国产综合日韩伦理| 色九九九综合| 亚洲成熟国产精品美女| 亚洲综合伊人| 五月香婷婷| 日韩精品在线放| 久湿久久| 91GD.COM| 中文?日韩?免费?精品| 欧洲中文字幕| 久久精品国产亚洲AV高级北京| 五月天人妻综合| 色丁香五月婷婷| 伊人网青青| 大香蕉手机在线| 久操99| av网页一区二区三区| 欧美综合1性辶| 老汉网| 久操精品网| 手机在线播放国产福利| 91高潮| 麻豆精品三区视频| 久久啊哟| 精品人妻1区| 欧美亚洲特P| 好吊爽好吊爽在线视频,中文字幕精品一区二区日本,国产良妇出轨视频在线观看, | 白嫩国模丰满一二三区| 四虎精品一区二区| 日韩图区| 91av天美性媒精品视频| 国产精品久久久久av| 天天色天天干天天爱|