色五月色开心色婷婷色丁香,五月婷婷丁香花综合网,婷婷丁香五月激情综合在线,五月婷婷六月丁香动漫,婷婷丁香五月激情综合在线,丁香花中文字幕在线观看,播五月色五月开心五月网,开心激情综合网,狠狠色丁香婷婷综合最新地址,丁香视频在线观看,狠狠做六月爱婷婷综合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
返回資訊列表
伊人网一本| 搡老熟女免费视频 | 性欧美另类高清| 69av一区二区三区| www.男人的天堂| 蜜臀th| 国产av白丝| 国产AV高清AV无码| 欧美性爱中文字幕无线码| 亚洲色图欧美色图另类图片| 欧亚乱色熟女一区二区| 都市久久精品激情亚洲| 97碰久久| 亚洲国产天堂| 日日夜夜精品视频| 超碰在线一区二区三区| 亚洲视频精选| 精品一级毛片在线观看| 欧美色图色综合| 抽插亚洲无码| 亚洲丝袜少妇在线| 精品人妻一区二区三区不卡断 | 国产成年免费大片黄在线观看| 色噜噜狠狠色综无码久久合欧美| 91精品丝袜久久久久久| 日本幼女18+| 亚洲精品97p| 夜夜免费视频| 久超碰这里只有精品| 夜精品久无码| 亚洲午夜蜜臀| 香蕉精品二区二区| 国产v亚洲v日韩v欧美v片另类| 中文字幕一区二区无码成人| 91天天| 天天噜| 在线视频亚洲无码| 一区二区三区精品视频| 国产亚洲人妻综合日韩 久久| 中文字幕在线日亚州9| 日韩不卡a级视频专区| 婷婷中文网| 日欧操屄视频| 97舔舔| 96一区二区三区| 热热色青青草| 黄色大片视频在线免费看| 性色AV网站| 粉嫩av平台| 91碰超| 亚洲av无码成人精品国产| 婷婷尹人大香蕉免费| 天天干天天爽| 亚洲欧美精品久| 日韩少妇在线视频| 大鸡巴久久| 78久久| 97精品一区二区视频| 人人操我人人干| 看日韩操逼| 九月婷婷综合| 亚洲精品欧洲精品| 夜夜国自区| 欧美色图综合网| 亚洲影院成人| 婷婷五月天福利| 久久精品视| 色爱天堂| 欧美十八禁视频| 性色av网站| 国产精品色色| 婷婷五月天色网| 国产精品人妻无码久久久互動交流 | 熟妇人妻精品一区二区| 中文字幕中文字幕一区二区| 国产精品青青草| 亚洲综合夜色| 九九九九久久久| 你草精品在线视频| 麻豆久久精品亚洲精品88| 中文精品一区二去| 中文字幕在在线观看网站| 亚洲性少妇| 国产97在线 | 亚洲| jk白丝没脱就开始啪啪| 欧美三级一级| 清纯唯美亚洲综合| 欧美美女自慰一区二区三区| 色九九久九九| 天天视频综合在线观看视频| 精品亚州18| 天天射天天色成人| 深田咏美亚洲精品福利社| 久久最新视频免费观看| 91熟女视频| 日欧操屄视频| 91模特在线观看| 眼镜人妻101.com| 欧美极品女人的天堂| 亚洲欧美综合网站| 欧美成人一区二区三区在线播放| 96久久久精品| 伊人久久综合精品欧美| 麻豆AV96熟妇人妻| 黄色成人网久久久久久| 欧美超碰96| 9118禁| 99色婷婷| 东京热双插| 六十路日本| 97综合久第一页| 韩国免费播放一级毛片| 草蕉影视亚洲无码| 久久精品 六十路 熟女 欧美| 精品人妻一区二区三区四区| 久久6热视频免费观看| 精品国产72| 97欧美综合| 色婷婷综合久久久久中文国产精品一区中文字幕,国产福利电影一区二区三区 | 天天操天天干美女网址导航| 伊人五月天| 精品九区| 男人的天堂在线2| 欧美国产精品久久九九| 日韩图区| 久久男女激情视频网站| 殴美性天天| 亚洲中文制服诱惑| 老司机天天操| 国内外毛片在线观看| 日韩一级特黄av毛片| 天堂资源站| 日韩乱中文| 精品一区二区2| 丁香九月婷婷| 国产精品盗摄 偷窥盗摄| 啊啊啊啊操死我了| 精品一区二区亚洲国产| 超碰色综合| 成人熟女视频一区二区三区| 亚洲精品天堂久久A∨51成人漫| 91久久堂| 九九伊人网| 超碰78| 极品色社| 91东京热男人的天堂| 日韩激情电影中文字幕| 大香蕉欧美日韩| 波多野结衣先锋影音| 日韩精品电影| 日韩高潮一区| 尤物一级在线免费观看| 欧美熟妇精品黑人巨大91| 丝袜夫妻自拍| 十八禁的黄污污免费网站| 国产精品午夜福利| 欧洲大香蕉| 嗯啊不要啊在线 | 日本性交操一区二区不卡系列| 97精品97| 日韩pv中文| 久久久久久亚洲中文| 丰满欧美放荡少妇在线| 国产久久一区二区三区野外在线| 韩日无码在线观看| 91网九色蝌蚪操熟女| 9999亚洲精品| 青青草在线视频人人想人人上| 26uuu性| 欧洲综合色图| 成人情色综合网| yazhousetuoumei| 国产无套粉嫩白浆在| 精品人妻中文字幕高清| 黄色交缠性感爆操91国产精品免费一区二区三区| 床上啊啊啊一区二区三区| 中文字幕一区二区免费在线| 色吧5亚洲| 97在线观| 亚洲第一男人天堂| 经典丝袜一区| 自拍视频大全亚洲专媒视频/一区二区三区 | 蜜臀99久久国产| 精品一久久久| 另类av天堂| 天天拍天天操| 五月丁香六月| 破苞ⅩXXX性无码动漫无码| 91内射| 欧美96交| 91美女视频直播| 亚州日韩97| 91在线美女| 久久亚洲日韩国产欧| 91爱综合| 天天射影院| 国产精品爽爽va在线观看98| 色婷婷视频| 久久久久9999| 日本阿v天堂在线观看| 久草毛片| 欧美丝袜亚洲| 熟女少妇视频| 天天干电影| 日本二三四区| 97久精品| 国产夜夜艹| 亚洲男人bt天堂| 亚洲综合嫩| 久久精品99久久久久久| 丝袜狠狠草尤物 91| 一直超碰| 欧亚韩国999| 91无码人妻| 超碰97久久国| 青青操国产夫妻| 欧美成97爱| 成人性交免费视屏| 亚洲熟伦熟妇AV无码春色| 激情婷婷综合久久| 天天激情综合站| 爽极品影院| 国产美女mm131爽爽爽爽| 国产中文大片资源中文字幕 | 欧美精品四区| 高清不卡国产| 亚洲色91C| 久久99999| 女同性恋中文字幕| 久久久久夜夜夜夜| 777AV电影| 日本在线激情一区二区三区 | 亚洲色图欧美激情| 亚洲一区日韩精品| 欧美日韩亚洲一区二区在线观看| 自慰白浆在线观看| 东京热激情视频一二三区| 天天操天天射青青草| 国产60区。| 1.igao73.com 加入收藏 免费专区 国产精品 中文字幕 日韩精品 欧美精品 精彩 | 99啪啪视频| 91丨精品丨国产丨丝袜| 久久黄人人爽视频| 欧美日韩国产三级黄色| 色婷婷成人| 欧美午夜精品久久久久久超碰| 日韩二级| 91热| 最新中文字幕精品在线| 欧美九九爱| 无遮挡男女激烈动态图| 艹少妇网站| 丁香六月天| 躁躁日曰躁2020| 欧亚 另类 久| 中文字幕一二区二三区人妻专区| 920日本午夜免费| 屌妞视频久久久久久久久久久久| 91痴汉| 色哟哟AⅤ| 色五月综合网| 狠狠2050在线观看| 激情综合网激情综合| 午夜亚洲国产理论秋霞| 欧美亚洲玖玖玖| 中文字幕AV片| 国产成人亚洲精品无码古代早漏男| www久久99| 亚洲精品不卡一二三区| 综合影院永久入口国产| 香蕉综合网| 97jingpin| 久久这里是精品| 一二三四免费视频| 亚洲一区中文字幕| xxx0国产在线播放| 蜜臀久久在线视频| 免费超碰97在线观看| 99中出在线| 色九久| 熟女色综合久久| 夜夜嗨av午夜成人| 黄色操人| 97激情97激情| 国产9 9在线 | 亚洲| www老逼91| 午夜一区| 60秒试看最爽10分钟网站| 久久久久九九九| 婷婷色在线| 嗯~啊~轻一点 视频| 国产亚洲色婷婷久久99精品91葵花宝典| 日韩无码黄色片| xxx亚洲午夜天堂| 少妇熟女一区二区三区| 五月婷婷激情网| 人人操人人操人妻人| 亚洲av影院在线观看| 最新精品久久蜜桃| 国产九九九九九九九九| 欧美色图自拍| 荡小穴在线观看| 久久久久九九九九| 久久久不卡区一区二区三区久久久| AV色天香在线| 又粗又长又大国产不卡| 天天综合网入口~91| 八戒午夜福利理论片| 男人的天堂2018.| 久久精品人妻一区| 国产视频一区二区三区久久亚洲天堂 | 国产精品懂色tv影视免费观看| 中文字幕一区 二区三四五 区日 日骚| 啊啊啊啊啊啊在线| 1024久久高清视频| 中国农村熟妇毛片视频| 一本一首道人妻少妇免费久久| 另类小说综合网| 麻豆一区在线| 国模一区二区三区| 男人女人18禁片免费看网站| 蜜桃精品一区二区三区久在线| 亚洲天堂 视频你懂的| 国产美女高潮视频| 日产中文字幕2020| 手机看片1025| 又大又大又大又粗爽高潮观看| 丝袜制服字幕在线| 国产精品久久99日日| 精品国产一区二区三区久久久蜜臀| 欧美高清性猛交| 久久久一区二区三区四曲免费听| 玖玖婷婷五月天| 啊灬啊灬啊灬好深灬快高潮了动漫-国产字幕国产在线观看-B049AV | 超碰 国产熟女精品一区| 天天操福利视频综合网站| 欧美性性性| 一区二区三区免费视频入口| 日韩精品在线观看网站| 色色色色色色色色色色色色色色综合| 久久做97| 99少妇| 啪啪视频免费在线观看| 人人操人人uiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii | 国产精品欧美激在线| 少妇高潮喷水无套久久久久久| 久久女人| 欧美国产伊人久久久久| 人妻精品4K4K4K4K4| 欧美91精彩| 伊人91| 福利伊人玖玖国产| n1038 一二三区| 九九九久| 久久久久免费看少妇A片特黄| 午夜一区| 国产精品天干天干综合网麻豆| 超碰97COm中文| 60秒试看最爽10分钟网站| 色香91| 东京热视频网| 五月天综合| 久久精品国产精品| 中文字幕黄片在线| 成人情色一区二区| 欧美日韩中国x| 大香蕉乱级| 性爱久久| 亚洲图片视频小说| 国产亚洲禁久一区二区| 高潮综合网| 国产操逼网站亚洲一级黄色| 97超碰69| 亚洲精品少妇| 无码9区| 精品一区99999| 人人玩人人添人人澡免费| 九九热九九热| 午夜国产成人精品视频| 91亚洲黑人| 日韩久射综合| 极品色社| 啊啊啊久久| 丁香五月天堂网| 亚洲成人AB| 亚洲古典另类欧美在线| 性爱AV天堂| 国模私拍一区二区三区神乳| 91视频成人福利网站在线一区| 夜色综合| 黄色网址久久精品欧美喷水| 9久久精品| 久久美女福利是上海美女| 男人精品天堂一区| 人人摸人人添人人操| 国产25页| HEYZO高无码国产精品227| 亚洲熟久久| 国产 日韩 欧美 中文 另类,国产 欧美 另类 制服 变态,高清 日韩 欧美 中文,高 | 男人天堂最新手机版在线青青草| 国产情侣自拍在线播放| 日本熟妇人妻一区二区三区| 涩五月婷婷| 国产97色在线| 91人妻丝袜无码| 欧美爱爱97| 超碰性爱97| 伊人黄色片| 日本一久是| 国产在线视视频有精品| 激情五月天色色| v91av| 欧美中文字幕男人天堂久久精品| 新亚洲无码| 国产AV天美| 精品九九国产无码| 91在线一起| 日本福利社| 欧美一级黄色免费专区| 劲爆欧美人妖三区91| 综合欧美日韩在线观看| 97免费视频在线| 久久这里精品国产99丫e6| 老子午夜伦不卡影院| 中文字幕第23区| 中文字幕亚洲在线一区 | 爱爱久久| 色色99| 国产精品久久久久久久无码AV| 日本久久综合| 久久综合婷婷| 涩涩涩综合| 东北老熟女| 啊啊啊啊啊啊啊国| 无码人妻丰满热妇又大又粗| 日韩熟女精一区二区三区不卡| 日韩成人午夜精品久久高潮| 自拍鲍鱼一区在线高清观看免费| 69一区二区| 亚洲高清少妇| 久久久久久久久久久久久久久性生活视频| 中文字幕亚洲热播人妻 | 2019午夜福利视频| 国产超碰国产97| 久久美女国产| 思思久热在线精品66| 青青伊人这里只有精品| 久久精品人体| 99久久久er直播网址| 蜜臀久久99精品久久久久| 亚洲综合射| 爆乳免费黄网站| 深田咏美亚洲精品福利社| 午夜美女福利视频| 欧美桃色网| 国产熟妇一区二区| 大香蕉碰碰| 91操人| 午夜无遮挡男女啪啪视频| 精品国产乱子伦一区二区三区,精品一| 亚洲精品蜜桃久久久久久久| 嗯……啊…嗯嗯…啊…好舒服| 九热视频| 久久精品色欧美aⅴ一区二区| 国产不良强奸视频免费看| 精品欧美乱码久| 夜夜做夜夜爽精品视频| 欧美影音在线| 性爱AV天堂| 亚洲色性情三级| 欧美九9 9 9| 日本熟女中文| 竹菊影视国产一区二区| 免费一级黄色录像影片| 97色碰| 精品欧美乱码久| 99re99在线视频| 亚洲国产一级精品毛一级精品看免费视频| 久久性爱视频99| 夜夜精品视频| 91啪啪| 999精品乱码| 亚洲激情久久久伊人综合| 日韩精品大香蕉伊人在线| 超碰人妻中文在线| 夜精品久无码| 2026国产精品视频| 无码操逼天堂| 国产精品夜夜夜| 久久久九| 丰满人妻-区二区三区免费看| 狠狠97| 国产日本顶级一区二区三区| 欧美宗合网| 亚洲在线a| 欧美色狠| 午夜AV人气不卡| 国产精品999zyz| 手机在线A片| 亚州操逼图| 国内毛片免费h片在线| 国模精品一区二区三区苹果色戒| 五月丁香激情啪啪| 久久大香蕉手机高清视频| 性欧美体内射精| 大香网伊人久久综合网eew| 久操大香蕉超碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰 | 亚洲色图激情小说| 中文字幕av久久爽Av| 亚洲97P| 91强在线播放| 国产区在线| 少妇一区二区三区| 操逼日批| 黄片不用下载在线观看| 国内精品999| 日韩传媒在线| 999熟女精品| 超碰99re| 一级特黄aaa大片在线观看成人一级片在线观看 | 亚洲图片视频小说| 男人天堂网站| 亚洲精品无码久久AV| 伊人在线大香蕉视频久久| 亚洲蜜臀精品视频久久| 91东北熟女| 日本丝袜人妻内射| 国产剧情一区在线观看| 国产又大又粗又色生活片亚洲国产精品成人久久久综合免费 | 狠狠亚洲| 日韩有码专区| 久久riav中文精品| 成人看片网站| 久久九精品| 男人的天堂com| 日韩免费中文字幕视频| 8050午夜少妇无码| 丰满少妇一区二区三区四区观看| 日韩av情韩国爱禁区av一区二区| 青草精品视频日本久久久久网站在线| 国产精品网址| 亚洲91少妇| 91欧美巨乳| 日韩亚洲欧美中文字幕| 午夜福利视频在线一区| 国产精品亚洲四五区在线观看| 亚洲交换| 欧美日韩不卡a片| 亚洲五月丁香花狠狠干一区二区三区| 色男人色天堂东京热| 欧美男人天堂| 久操精品网| 精品美女少妇一区二区三区| 97视频在线播放| 黄色av片三级三级三级免费看| 精品99999久久久久久| 羞答答AV中文字| 9丨亚洲一区二区在线| 麻豆2区1区天美| 亚洲有薄码区久久在线一区| 99精品视频在线观看免费| 91爽啪| 欧美人妖内射| 中国国国产一级特黄毛片| 大香蕉欧美伊| 操逼操逼操| 日日夜夜天天| 78m成人视线| 亚洲国产午夜真人一级片中文字幕精品黄网站 | 在线只有精品| 蜜臀va69| 综合欧美日本三级| 蜜臀久久99'精品久久久| 国产乱伦性爱区| 少妇国产不卡| 日韩激情电影中文字幕| 丝袜制服字幕在线| 五月亭亭六月丁香| 色欧美天天| 91大神电影天堂| 丁香九月婷婷| 久久99黄色卞西瓜| 97AV爱| 中文字幕丰满人妻日本| 夜夜爽77777| 69一区二区三区| 九色97| 97欧美超碰| 亚洲 中文 女同| 2017av无码免费无线播| 骚乳在线| 国产不良强奸视频免费看| 欧美老妇女内射网址| 久久久99免费| 超碰碰激情97+久| 欧美强奸乱| 综合大香蕉美。| 大香蕉综合| 色97干| 亚洲AV资源| 亚州熟女乱伦| 亚洲日韩XXX| 强奸乱亚洲| 久草成人| 白 大 人妻 区 在线| 凹凸视频在线观看伊人| 91白虎| 在线女人91| 一区二区三区亚洲| 嗯~啊~轻一点 视频| 吻戏激情性巴克| 蜜乳成人AV| 97爱碰| 好吊妞转入那个网| 91看黄片| 亚洲校园激情| 天天欧美色| 91精品微拍福利| 91 国产丝袜在线播放-百度| 七久久久| 亚洲中文一区二区三区| 日本二三四区| 亚洲自拍一区夜夜操| 91精品国产麻豆国产自产在| 草草草视频在线免费看| 大香蕉之青青草原| 欧美性天天影视| 一级日本牲交大片好爽在线看| 大香蕉日亚洲日本亚大| 天天肏美女| 亚洲 国产 精品一区| 日韩情色一区二区| 青青青艹在线视频| 午夜精品久久久久久久男人的天堂 | 97热视频在线观看| 欧美日韩高潮喷水91| 久草国产在线视频| 欧美97| 国产精品禁久久久精品| 精品久久久中文字幕不| 无码少妇精品一区二区60岁老人| yaouchengrenav| 国产一区二区在线看| 黄色十八禁网站| 97五月天| 熟女色综合久久| 思思热在线视频在线| 欧美综合中文| 超碰在线1234区| 好好的日:com久久九九| 67914亚洲精品| 午夜精品探花| 国产一级不卡在线观看| 凹凸视频在线一区二区| 伊香蕉综合久久久久久久噜噜噜 | av大香蕉网站| 超碰97欧美在线| 国产自偷自拍一区| 日本欧美一区二区三区免费| 最新无码国产| 久草成人| 伦理第一页| 亚洲91射| 欧美成人精品一区二区男人蜜臀| 欧美少妇性乱| 人妻人人澡人人爽人人| 99热免费| 大香蕉伊利av| 久久天天摸| 亚洲久热| 99精品视频在线观看| 欧美性爱系列| 手机看片1024你懂的国产| 久久久111| 久久免费看高潮毛片韩国| 天天综合日韩网| 狠狠久久亚洲欧美专区| 日本人妻A片成人免费看片| 5月婷婷6月六月丁香| 亚洲暴力强奸AV| 日韩欧美成人综合在线| 国产二区视频在线观看电影| 2025年A片视频精品| 亚洲av性爱电影| 91黑人狂躁丰满熟妇| 亚洲天天操| 96精品久久久久久久久久| 在线不欧美| 91春色| 国产偷人伦激情在线观看| 毛片久久| 91香蕉视频在线观看免费| 一级人妻性爱视频| 啪啪视频亚洲第一| 午夜寂寞欧美| 亚洲色综合| 天天综合91在线| 精品久久久久9999| 熟女欧美日韩综合婷婷| 欧美在线视频播放| 欧美肥臀在线| 中文字幕欧美丝袜07资源| 亚洲无线观看久久| 高清无码在线播放网站| 美女一区二区国产精品| 曰韩无码777| 国产成人资源| 亚洲AV不卡在线观看尤物| 久操av在线| 久久久久久九九九九九| 日本性感人妻91| 99国产在线 精品 视频| 国产无套粉嫩白浆在| 免费观看欧美日韩操逼视频| 亚洲人在线| 蜜臀av中文字幕| 78超碰| 黄色激情电影在线观看| 日韩性爱高清免费视频| 天美传媒国产原创中文字幕亚洲欧美另类| 亚洲欧美爆| 超碰碰小说97| 亚洲男人电影天堂| 女人被男人桶爽视频网站| 色婷婷导航| 久久精品天美| 怡春院久久| 久久成人国产精品| 国产免费永久精品无码| 亚洲蜜臀懂色| 综合色欧美| 强奸乱伦亚洲第一页| www.婷婷| 9久精品视频在线观看| 91色亚洲| 免费簧片在线观看| 日本熟妇熟色97一本在线观看| 婷婷香网站| 999综合网| 新婚人妻扶着粗大强行坐下| 在线视频亚洲无码| 久久久久久AⅤ无码免费肉站| 亚洲情色五月天| 久久久久久久久女黄| 五月丁香六月综合缴清无码 | 一本一道波多野毛片中文在线| 精品国产一区二区三区av在线资源| 国产噜噜噜噜噜久久久久久久久| 中文字幕99999| 新版天堂中文资源8在线| 天天碰操中国年青熟妇| 9丨久久九九九| 99久久久er直播网址| 蜜桃视频精品一区二区三区| 大茄子熟女AV导航| 91成人在线免费视频| 欧美一二三区四五区| 亚洲色图A| 欧美精品久久久久久久久88| 狠综合网| 国产亚洲福利第一页丝袜| 久久婷婷视频| 大香交| 国产精品999zyz| 亚洲高清视频在线观看| 精品一级毛片在线观看| 99成人| 久久亚洲一区二区色婷婷| 亚洲中文国际强奸字幕| 久久99999| 日日操免费视频| 精品网站9999| 亚洲情色欧美| 五月天婷婷小说| 精品国产a∨一区天美传媒| 狠狠色噜噜狠狠狠狠狠色综合久久| 日逼五月天| 日本人妻伦在线中文字幕| 色妹子A V| 97亚洲欧美| 少妇高潮99p| 97精| 国产精品肉丝自拍| 青娱乐淫乱1314| 亚洲熟妇丝袜在线观看| 1769成人国产精品视频| 久久久久国产亚洲一区欧美色图日韩| 操人妻视频| 熟妇在线视频一区二区| 91亚洲人| 九九九九88| 狠狠久久手机视频精品| 97高清啪啪| 天天视频网站黄| 欧美在线55555| 国产操偷| 风间由美日韩欧美久久| 久久人妻精品| 成人久久久| 欧美色图亚州激情| 国产日韩区| 日日干夜夜骑| 久久综合99| 欧洲久久一二线| 91国产大片| 在线观看亚洲专区| 欧美96在线|欧| 天美AV片| 九九干| 91亚洲丝袜熟女| 成人 日韩欧美一区| 白嫩嫩一区| 伦激情人妻另类人妻| a人片中文字幕一区二区| 妺妺跟我一起洗澡没忍住| 日韩精品一区二区人人人| 狼天天狼天天大香蕉| 青青青国产手线观看视频2| 亚洲综合性网址| 久久九九网| 亚洲中文字幕熟女| 啊啊啊啊好疼视频| 大香蕉97久久| 日韩av不卡在线看| 亚洲丝袜在线观看| AV老汉| 国产精品成人无码av| 草草电影院| 学生妹天天看| 日本有码影片下载| 国产99久久99热这里只有精品15| 高清孕妇孕交 交| 免费网站观看www在线观| 欧美日韩性爱操大逼| 九九九久久久| 成人开心网在线视频| 日韩三级网址| 国产动漫操逼视频| 免费αV在线视频| 校园春色美腿丝袜 | 五月天激情婷婷| 在线色导航| 国产精品9999| 麻豆人妻偷人精品无码视频| 婷婷久草一区二区三区| 亚洲强奸乱伦影视网| 天天干人人看综合| 久久精品操| 神马午夜久久久| 蜜臀av在线播放一区二区三区| 免费一级a毛片久久久久久鸭绿欲| 4虎在线观看| 日日干夜夜骑| 五月婷婷hd| 国产九月婷婷| 性做久久久久久免费观看软件| 熟女激情综合网| 国产熟女无套内射| 中文字幕av一区二区三区人妻少妇| 精品熟女一区=区三区| 色婷网| 亚洲 一区二区 自拍| 在线播放成人高清免费视频| 友优传媒精品在线一区二区| 久久久久久裸体| 91丝袜激情在线| 91精品电影18| 91粉芽高清在线一区二区| 欧美精品自慰系列寂寞少妇 | 91无遮挡| 欧成人精品一区二区三区| 99日视频在线免费| 日本久久999| 欧美激情片一区二区| 伊人影院在线理论播放| 成人欧美一区二区三区黑人一| 国产三级电影免费观看| 91成人精品在线播放| 五十路二区在线| 超碰性爱97| 真实高潮91| 暖暖精品二区三区观看| 99超碰色| 黄色成品网站| 大香蕉欧美伊| 亚洲国产剧情少妇激情| 人妻天天爽夜夜爽精品2| 91女神在线视频| 久久久久精| 国产不卡片| 久久久艹艹艹| 亚洲欧美综合色| 97色爱| 亚洲欧洲日产国产综合网| 久久精品老司| 97碰碰日本乱偷人妻中文的| 9精品久久| 亚洲十八禁止| 日本一级不卡一二区| 欧美啪啪女女| 国产精品视频一区二区三区八戒| 亚洲影院无码在线| 婷婷九月丁香| 久热精品在线| 亚州性色| 乱伦日本中文自拍| 91精品久久久久五月天精品| 亚洲天堂AV在线播放| 国产高清成人mv在线观看| 久久久久久久亚洲Av无码| 91人妻素女| 极品尤物在线观看| 大奶啊啊好爽| 久久久久久久九九九九九九| a人欧美综合天堂麻豆| 日本好吊色视频| 青青青草原| 96麻豆精品一区二区三区| 91在线视频国产网站| 日韩av免费一级电影| 性爱乱伦网址| 亚洲男人的天堂亚洲| 性色avv| 日韩久久艹| 久久久久久无码人妻中文字幕| 欧美性夜| 涩综合导航| 第一高清av中文字幕| 花野真衣| 久久久久国产| 九九九九九精品视频| 精品日韩人妻视频| 亚洲精品第一| 欧美黑人猛交春色影视大全| 亚洲第一二区另类图| 国产自偷| 999久久久免费精品国产牛牛| 国产精品麻豆视频网站| 日日爽夜夜爽| 久操九九九九九九九九九九九九九九九九九九九九九九九九九九九九 | 激情抓乳插进去啪啪啪日韩 | 岛国AV一区二区电影| 日韩97视频| 久久老女人| 日韩av在线免费网站| 69AV女优男人的天堂| 男人天堂网手机版婷婷| 天天插网| 爆操无码| 久草婷婷| 美女诱惑一区| 亚洲高清无码AAA久久久精品| 北条麻妃99精品青青久久| 好爽要喷了| 老外又粗又长一晚做五次| 色欲久久综合| 久久久久久久久久久久九| 男人的午夜天堂| 怡红院一区二区熟女人妻| 五月婷婷hd| 欧美高清第一页| 成人三级片无码| 国产又大又粗又长视频在线| 亚洲视频精选| 丰满人妻av一区二区三区| 亚洲欧美另类少妇精品| 综合五月天| 国产一级作爱毛片| 精品亚洲俞拍视频一区| 午夜超碰| 久久激情综合| 国产热av| 久久一区二区高清免费| 欧洲Au麻豆| 草草草视频| 日本欧美国内在线| 老司机老司机午夜影院| 天天干一区二区| 超碰美女97| 日本九九九九| 欧美性五月| 熟女精品va中文字幕| WWW.加勒比人妻一区不卡.com| 91情色| 在线观看一卡二卡| 亚洲综合伊人无码久久| 婬女免费一二三区A片| 天堂网 主播 亚洲| av在线观看不卡网站| 日韩钢筋无码高清啾啾啾| 东北少妇高潮zzzz| 91麻豆天美国产欧美| 欧美日韩色| 激情综合五月婷婷| 78m成人视线| 超碰在线看| 伊人性在线视频| 色情五月综合婷婷| 91久久国产精品| 毛片电影一区二区三区| 欧美日韩人妻精品一区二区三区 | 2017av无码免费无线播| 欧美日韩国产中文超碰| 97精品久久| 亚洲色图 欧美热图 清纯唯美 另类自拍 | 亚洲精品熟妇1区2区3区。| 国产成人无码网站在线视频| 性欧美| 五月婷婷丁香六月| 啊啊啊啊好爽好舒服一区二区易域| 另类小说五月天| 91狠狠综合网| 丰满人妻一区二区三区在线| 91国产操逼视频| 精品然女一区二区| 丰满人妻一区二区三区四区| 91美女視頻| 激情五月天丁香社区| 国产伊人精品在线| 3571色综合一区二区二区| 久久久久亚洲| 色婷婷综合久久久久中文一区二区| 99久久亚洲精品无码毛片潘甜甜 | 99性爱视频| 久久精品一区二区三区四区五区| 97一区二区蜜臀| 国产91乱伦| 蜜汁欧美| 日本韩国一本产品小视频日本韩国一本产品久久久产品小视频日本韩国一本产品久 | 97超碰国产精品| 国产视频一区二区三区在线免费观看| 2017大香蕉国产精品久久| 1禁看欧美黄片免费看| 精产品久久| 91女神在线视频| 秋霞久久亚洲精品成人| 国产熟码AV| 精品久久久中文字幕不| 懂色av色欲av蜜臀av| 91 国产丝袜在线播放-百度| 国产精品一二三区福利| 少妇厨房愉情理伦片bd在线观看| 久久久专区| www久久久| 欧美爱三级日韩久久| 久久精品91| 热天堂一区二区| 欧美不卡二区| 91操熟女| 免看60秒涩涩视频| 97视频网站在线观看| 永久免费发布性爱网| 97久久国产精品女不卡| 国产人妻一区二区三区欧美毛片| 五月色网| 成 人片 黄色大片| 亚洲欧美日韩不卡人妻| 精品人妻一区春色| 国产亚洲 中文欧美久久| 盗摄女人妻在线| 爱爱动态60秒| 蜜桃臀AV在线| 亚洲综合113页| 九九亚洲视频| 国产黄片在线免费观看| 欧美亚洲91| 少妇激情AV| 91熟女综合| 男人的天堂不卡一区二区| 91丨豆花丨熟女| 亚洲色天| 青女偷拍网| 东京热熟女亚洲视频网站| 偷窥自拍亚洲色图| 日本三级日本三级99| 国产精品久久久久久久AV大片| 中文字幕在线免费观看| 欧美在线干| 国产精品色哟哟| 精品久久久久,69国产成人精| 黄色视频特级毛片| 欧美一区二区三区四区综合| 亚洲男人天堂av| 夜夜夜爽www精品视频| 亚热日本熟女| 色婷婷在线视频精品导航| 六月丁香五月婷婷| 91人妻尻屄视频| jizzjizz欧美| 亚洲天天做日日做天天谢日日| 97碰久久| 欧美丝袜中文字幕07在线| 97久久国产精品| 97视频900| 久久久婷| 97蜜桃综合| 禁片 高清 在线观看视频网站| 色区久久| 日韩激情啪啪| 岛国艾薇凹凸视频天堂| av在线一区二区三区| 免费观看性欧美一级| 国产91影院| 国产区日韩区在线观看| 1区2区3区视频| 酒色综合网| 国内伊人久久久久久网站视频| 色吊丝 日日骚 清纯唯美| 91狠狠狠| 青青草原av| 香港久久久| 青青草色AV| 三四中文字幕| 天天拍夜夜| 国产99999| 成人线上超碰| 欧美欧美啪啪视频| 久久国产在线一区二区| 国产黄色剧情影片麻豆免费播放| 国产真实子伦对白| 亚洲精品国语在线播放| 91视频精品| 久久首页| 亚一综合久久久久久久久久| 无码天天操| 极品色www影院| 99日韩| 嗯啊不要在线| 日韩精品三区四区| 美女淫穴| 色偷偷超碰亚洲| 日本ZZ高免费A级视频| 女人香蕉久久毛毛片精品| 九九av| 高清不卡视频| 色九九九九| 97热视频在线观看| 日本在线15p| 超碰78| 色y情视频免费看| 狠狠中文字幕| 黄片在线免费在线观看| 日日日日日| 一区二区三区男女操逼黄色小电影| 性爱网站一区二区| 午夜福利无毒不卡| 免费看日产一区二区三区| 一起草AV| 青青草白白色| 久久宗合97| 毛片久久| 色久桃花影院在线观看| 色婷婷狠狠| 婷婷色网| 久久婷婷苹果| 亚洲欧美日韩免费观看| 国产欧美岛国精品一区 | 97精品一区二区视频| 逼逼逼逼操操操操操操操操操午夜剧场 | 精品国产乱码久久久|