日韩精品一区二区三区在线视频放-无码中文字幕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
返回資訊列表
国产精品乱码久久久久久久久久久久| 麻豆九九九| 亚洲女优有码无码高清| 黄色高清久久无码依人| 蜜臀久久99精品久久久久久久久| 少妇xx精品| 欧美色图91| 中文字幕久久亚州无码| 强上我不卡卡| 激情久久久| 国产成人拍国产亚洲精品| 物业黑人 AV一区| 骚货| 国产成人网站在线观看| 日韩不卡在线一区二区| 欧美呦呦性爱| 亚洲国产精品无码AV久久| 91熟女视频网| 精品人妻无码一区二区三区不卡-精品人妻无码一区二区...|精品少妇一区二区三 | 亚洲无吗在线视频| 人妻丰满熟妇一区二区三| 在线视频资源| 久久宗合97| 330dv亚洲成年视频网| 91在线欧色| 天天爽天天爽| 99热精品在线| 婷婷尹人大香蕉免费| 亚洲精品影视老司机| 成人无遮挡毛片免费看| 最新国内自拍av免费| 亚洲国产熟妇综合色专区| 亚欧美综合| 美女主播色欲91抠b在线播放| 欧美精品四区| 欧美性猛交美女自慰91| 欧苏综合色综合| 免费啪啪啪网站18岁| 久久五十路熟女人妻| 蜜乳中文字幕a在线| 又大又大又大又粗爽高潮观看| 成人精品无码| 国产欧美在线观看免费观看| 成人三一级一片aaa| 人人看人人插| 这里只有精品视频在线观看麻豆| 久操网视频| 把腿张开老子CAO烂你| 天天干夜夜一操| 老熟妇一区二区三区…| 久久久久久久久久久97| 欧美性生活内射| 91人妻久久久久久久久久久久久| 特级特黄一级毛片免费| 激情小说成人日本无码一| 99久久精品无码一区二区| 成年人一级黄色毛片大全在线观看| 久久精品亚洲成a人天堂| 看一级黄色视频| 五月丁香激情综合网| 无码9区| 大香蕉手机在线视频| 嗯嗯,啊啊,国产精品| 97色论| 神马午夜久久久| 97精品国产精品免费观看| 久久人妇| 天堂性色| 乱伦a片视频| 久久久久亚洲?V片无码V| 熟妇操花| 狠狠图片青青草| 视频黄站| 五月丁香黄色网| 亚洲五码一区二区三区| 殴美日韩m| 欧美伦乱爱| 国产精品69久久久久久久| 9久久久久| 人人操肉肉| 大香蕉手机视频| 久久久18禁| 亚洲天堂一二| 伊人久久综合影院| 1区2区3区在线视频| 婷婷九月丁香| 人妻丰满熟妇一区二区三| 91欧美性| 国产综合色精品在线观看| 男人天堂黄片| 久久九操在线观看| 精品人妻一二三| 国产精品视频精品一二| 国产免费一区| 大学生口爆吞精| 欧美躁死她一区二区| 91久久堂| 色婷婷五月综合激情中文字幕| 夜夜狼人妻| 久久精品28| 一类无码操逼视频| 久久久av爱| 亚洲熟女诱惑| 国产成人久久久精品免费AV| 欧美日本不卡| 青娱乐国产精品| 久久久亚洲精品电影免费看| 婷婷爽人人婷婷爽视频| 狠狠色婷婷7777久| 久久熟女嫩草成人片免费 | 九九色精品| 精品网站99999| 国产又粗又大硬免费色网视频| 亚洲AV永久无码一区仙野| 好看的久久不射无码影视影院| 精品人妻一区二区三区日产乱码| 99色综合| 国产一区二区二区按摩精品啪视频| 国产一区二区啪啪视频| 天天综合网91| 啊啊在线| 67914亚洲精品| 欧美中文综合| 欧美欲色| 国产一区二区三区视频在线看| 翔田千里AⅤHD无码| 国产又黄又猛又粗又爽的网站| 青草地一本线一区二区三区| 日韩美女久久一区二区三区| 97精品久久| 国产视频三区四区| 欧美一区二区三区互相| 欧美老妇综合网| 亚洲精品一区二区精品| 91美女視頻| 国产三级多多影院2022国产AA一级毛片无码| 国产美女精品| 中文字幕一区电影在线观看| 丰满人妻一区二区中文| 亚洲最大AV网| 天天欧美| 大香蕉色网| 精品偷拍13p欧美dodk视频| 99精品丰满人妻| 精品亚洲国产成人av网站| 久久少妇人妻| 牛牛aV| 日韩有码中文字幕女同性恋| 亚洲熟妇熟在线电影视频| 91在线秘 男同| 欧美精品偷拍| 婷婷六月色开| 精品亚洲| 午夜精品久久久久久久久久久久久| 欧亚综合一卡二卡中文字幕| 神马久久久久久伦理片| 97亚洲自在精品在线观看| 婷婷五月影院| 国产一区二区三区不卡手机在线| 日韩人成网站在线播放| 久久一区二区蜜桃| 亚州欧美综合| 超碰国产情侣自拍网| 超碰无码加勒比| 国产夫妻性生活视频| 五月激情天| 你懂的在线观看区国产| 天堂亚洲精品| 人妻少妇久久| 美女91在线观看| 色久桃花影院在线观看| 欧美一级二级三级| 美女黄码视频午夜| 综合 青草 伊久久 影院 综合 | 天美一二三在线观看Av| 首页亚洲国产高跟丝袜诱惑视频| 国产毛片久久久久久久| 午夜在线播放| 高颜值美女口爆高潮浪叫| 旡码电影特区| 欧美日韩成人| 熟女精品va中文字幕| 男人天堂2030| 欧美黑人168页欧美黑人167| 五月天综合网| 97天天爽| 正在播放:深夜激情大战,自带黑丝袜全力输出骚穴 | 26uuu国产成人综合| 亚洲 欧美 精品专区 极品| 屁股久久久久久久久| 厕所偷拍在线| 91爽啪| 五月丁香综合激情| 欧美成人性爱视频免费观看| 国产欧美岛国精品一区| 翔田千里Av在线| se..亚洲欧美| 极品人妻少妇综合| 精品乱码在线观看| 日韩精品国产一区二区| 日本操逼aaaaa| 在线中文字幕视频| 欧美在线天堂| 九九九九九九九九九国产精品| 亚洲熟妇综合久久久久久| 你草精品在线视频| 少妇三P| 1区2区3区中文字幕日韩| 九九九九九九亚洲| 神马久久久久眼| 麻豆 欧美 日韩| 久久乐| 久草大| 黄片免费看黄片免费看| 殴美在线AⅤ| 2021久久国产综合精品青草| 69精品久久久久中文字幕| 无色无码| 色欲久久综合| 免费视频无码| 亚洲情色91| 嗯嗯啊在线视频| 久久久久成人蜜桃精品| 日韩三级在线观看mp4| 色情亚洲日本成人| 久久九操在线观看| 人妻铁牛TV| 精品人妻一区二区三区日产| 国产福利一区二| 蜜臀久久99精品久久久电影| 亚洲欧洲无码bt精品合集| 国产无码精品无码| 51久久夜色精品国产麻豆| 精品午夜福利国产一区二区在线观看| 人人摸人人添人人操| 欧美日韩 强奸乱伦| 亚洲精品aa久久伊人| 一级性爱aaaa| 欧美激情久| 少妇久久久免费| 夫妻日逼| 天天操夜夜操狠很操| 无码精品一区二区三区潘金莲| 极品后入免费视频| 国产丝袜一区二区三区| 亚洲人天堂| av网站国产主播在线| 男女性感激情网站| 五月香婷婷| 91人妻视频在线| 99re这里| 欧美色网| av资源在线观看少妇| 日本超碰在线国产一区| 欧美男人亚洲天堂| 亚洲国产综合图区中文字幕| 亚洲无码AV九九九| 综合久欧洲| 玖玖无码超碰| 91成人高清在线观看| 爱媛媛久久国产福利| 丰满人妻一区二区三区在线| 97资源亚洲| 精品人妻一区二区视频| 狠狠狠一区二区三区| 色男人色天堂东京热| 超碰超碰超碰超碰的大鸡吧操黑丝袜| 一级@啪啪视频| 伊人久久婷婷| 99精品九九九九九九| 久久久精品电影| 日本大片日本一区二区免费高清 | 三级日本一区二区三区| 婷婷色影院| 亚洲永久永久永久永久一级一级一级精品| 校园春色亚洲色图| 国产精品宅男免费| 足交视频老司机| 51国产午夜精品视频| 天天拍天天操| 成人AV在线网站| 成人a级高清视频在线观看| 91丝袜美女国产| 一区二区三区四区五区久久久久久| AⅤ片水多多| 插入综合网| 欧美日韩制服| 一本一道人妻久久一区二区三区| 91久热| 日韩av在线免费网站| 91美女在线视频| 91精品老女人| 91 国产丝袜在线放观看 | 精品一区二区三区四区外站| 91在线视频观看国产| 青青草自拍视频在线播放| 蜜区区视频79| 日本99热| 欧美97| 中文字幕 一区二区 亚洲无码| 91色插| 99熟女| 五月天精品| 人妻乱仑一区二区三区| 男人天堂网手机版婷婷| 中文字幕性感少妇av| 久久久久人| 尤物一级在线免费观看| 亚洲 日本 不卡| 亚洲综合五月天| 天天综合-91入口| 日本免费不卡二区| 8x福利精品第一福利视频导航| 成人久久无码www| 国产无码精品高清| 茄子社区国产精品| 国产免费一区二区在线A片视频| 日韩图色| 9久久美女首页| gogogo免费高清看中国国语| 安微少妇操BBB| www久| 欧美性性性| 偷拍 精品 另类 四区| 91美女在线观看| 久久少妇人妻| 色九九九九久| 啪啪啪东京| 国产中午字一暮区| 精品久久久亚洲AV成人网站| 99热在线只有精品| 欧美日韩大陆黑人少妇99| 91这里只有精品| 熟女丰满人妻一区| 五月婷婷丁香六月丁香| 淫纸中9区| 啊啊啊啊嗯嗯嗯用力好爽 | 伊人久久在线视频观看| 青娱乐黄色录像| 色五月69夫妻| 无套内射性感少妇视频| A级毛片在线看免费| 超碰视97中文| 人妻一区二区三区| 国产大学生高潮在线播放| 97色婷婷| 九九人妻| 久久国产精品91| 成人aⅴ一区二区三区| 精品国产乱码久久久久久久久久毛片| 国产一区二区三区不卡手机在线| 天天躁日日躁AAA片李宗瑞| 日本久久超碰| 九九九九97| 久久99国产综合精品女同| 丁香六月东京热| 国产黄色剧情影片麻豆免费播放| 99re28在线观看| 午夜性| 成人黑料社久久| 国产日韩色综合| 91黄站| 97碰碰日本乱偷人妻中文的| 一牛影视久久久一区二区三区| 亚洲天堂无码| 家庭乱伦性爱av| 中文字幕在线免费观看2| 久久久久国色αv免费观看| 国产精品天干天干综合网麻豆| 99中出在线| 99亚洲精品| 国产精选三级在线观看| 亚欧成人中文字幕一区| 国产最新小视频在线播放下载| 亚洲欧美综合| 天美传媒婬乱| 另类小说五月天| 国产亚洲精品美女久久久久久2021| 日本不卡二区| 男女一进一出视频久久| 91伊人| 九九九九亚洲| 亚洲高清欧美总合| 大粗鳼巴久久久久| 亚州综合色| 欧美日韩欧美| 91女色| 久久久亚洲精品中文字幕人妻| 亚州色图片在线色| 97国产精选| 超碰97综合网| 婷婷性网| 日韩熟女无码| 91丨豆花丨熟女| 交换娇妻呻吟声不停中文字幕| 亚洲色图尤物视频| 在线精品福利免费播放| 色情综合网| 欧美色色色| 国产11页| 久久精品老司| 国产成人啪一区二区| 伊人在线大香蕉二。| 亚洲精品久久久久久| 久久久久久久久久久精| 亚洲欧美不卡线| 国产精品 视频| 亚洲国产成人7777| 强奸乱伦中文字幕AV| 久久精品国产免费观看99| 狠狠操综合| 国产成人亚洲精品自产在线 | 蜜桃中文字日产乱幕4区| 国产欧美一区二区| 色综合20p| 久热精品在线| 久久大黄片| 久久伊人亚洲AV无码网站| 日韩人妻中文视频| 台欧久久精品视频| 精品二区三四区五电影 | 中文字幕免费在线观看| 国产一级舔足在线观看| 欧美人妻精品一区二区| 性爱综合网| 中文字幕丝袜人妻| 九九久精品| 久久永久无码人妻视频| 久久精品国产亚洲AV嘿嘿| 69人妻精品一区二区绯色| 尤物av网站| 欧亚韩国999| 久草加勒比一区在线| 久久精品中文字幕观看| 激情五月婷婷| 亚州Av天美传媒| 亚洲日韩国产精品| 欧美做爰无码A片视频| 热久久91婷婷| 少妇天堂| 国产精品无码在线| 色诱avtt| 丁香激情网| 欧美婷婷久久| 超碰欧美| 99色热| 色拍偷亚洲| 一道α片欧美| 国产成人亚洲精品自产在线| 久久久一区二区三区麻豆| 人人操人人摸人人看人人插| 精品久久久久久亚洲| www.acm成人黄色毛片| 国产日产精品久久快鸭的功能介绍| 亚洲日韩一区电影| 午夜视频久久久| 日欧亚洲二三区大片不卡| 欧美日日夜夜| 精品九九| 69精品在线| 色色97爱| 久久精品99| 97久久国产亚洲精品超碰热| 成人av影院在线观看| 亚洲瓯美色图| 精品国产乱码久久| 99热超碰| a级免费在线观看| 国产精品交换一区二区| 久久久久九九九| 志村玲子视频一区二区| 上床啊啊啊| 婷婷激情四射| 少妇熟女一区二区三区| 色婷婷综合网| 人妻夜夜爽天天爽三区麻豆AV网站| 色婷婷99| aa片毛片| 伊人色综合超碰| 久久精品国产AV一区二区三区| 日韩紧密久久| 国产美女口爆吞精视频| 足交视频老司机| 99久久e免费热视| 天天操天天谢| 久精品无码av一区二免费国产在线观看| 超碰午夜| av片在线观看免费播放| 好吊色青靑草| 强上我不卡卡| 欧美操逼熟女| 桑老女人九区| WWW4虎| 91亚洲青青草原精品1区| 国产精品com| 久久亚州高清| 无码人妻丰满热妇又大又粗| 国产综合久| 国产一区96在线| 99热| 97操综合| 日韩一级二级| 狠狠中文字幕| 久久精品国产亚洲粉嫩| 国产精品久久9| 台湾成人无码AV| 超碰 欧美| 嗯啊免费视频| 嫖老熟女A片一二三区| 99re这里只有| www.男人天堂| 东京日日夜夜| 国产亚洲精品农村妇女| 欧美性高潮| 日本 免费 一区二区三区 久久香蕉| 人人操人人摸人人看人人干| 免费视频97| 欧美亚洲高清不卡| 超碰亚洲欧美日韩无| 久久首页| 思思热一热婷婷热一热| 少妇色综合| 一区二区激情国产熟女| 欧美另类精品xxxx| 九九热九九| 亚av顶级裸体一区二区三区四区五区| 小少妇| 欧美人妻久久精品二区三区| 黄片视频观看| 高精欧美色| 情色五月天网| 欧美日韩人人精品| 亚洲成人在线播放| 嫩草影院在线观看精品 | 欧美中文字幕男人天堂久久精品| 极品尤物女神在线观看| 亚洲一区在线观看欧洲 | 久久精精区一区二区一蜜桃一区二区| 中国东北熟女老太婆内谢| 日本熟女中文字幕一区| 久久久96| 日躁天天爽爽| 91欧| 久久宗合97| 久湿久久| 加勒比五月天| 伦在线97| 亚洲吊色| 美女啪欧美一区| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区 | 啪啪资源网| a片 xxxx受爽视频| 极品肉射| 91国模| 日日骚网站| 伊人9| 天天干1区2区在线| 亚洲国产蜜臀系列在线观看| 啊啊啊啊啊啊啊网址在线观看| 亚洲永久永久永久永久一级一级一级精品 | 国产日逼视频| 中国一级操逼视频| 99久久e免费热视| 最新三级网址| 狠狠色狠狠色狠狠五月| 日本性爱不卡视频| 国产精品免费视频人成| 亚洲夜夜欢无码一区二区| 中文字幕亚洲在线一区| 久久久久久久人妻| 日本在线一二| 少妇被玩视频二三区| 久久久9视频| 亚洲AV高潮| 伊人久久大香线综合无码| 无码视频一区二区| 欧美日韩天堂| 加勒比aⅴ| 欧美AB在线| a片 xxxx受爽视频| 国内毛片热久久思思热| 免费精品中文字幕| 高清国产av无码| 欧美一级色| 日韩美女久久一区二区三区| 日韩少妇无吗| 日本媚薬中文字幕在线| 操屄日韩| 黄片com.| 校园春色制服丝袜中文字亚洲| 精品人妻一区二区三区-国产| 午夜天堂精品久久| 亚洲综人网| 久久久一区二区三区四区五区| 国产无马在线| 久草免费在线一区二区| 欧美在线官网| 一本色道久久综合熟妇| 男人天堂新在线| 在线人成亚洲视频免费观看| 全球成人中文在线| 97亚洲性爱| 久久99草| 97精品久久| 乱伦图av| 国产久久视频| 狠久久| A级国产欧美激情在线| 强奸乱伦麻豆| 丝袜性亚洲| 女同性恋中文字幕| 老熟女搡BBBB搡BBBB视频| 天天躁日日躁AAAXX| 超碰 另类 欧美 | 亚洲第91页| 精品国产乱码久久久A| 岛国免费黄色网址| 最新AV在线| 日韩免费在线视频观看| 超碰日本97美女人妻人人玩人人爱 | 人妻喷水| 韩国一级婬片A片无码天美 | 婷婷超| 我爱大香蕉| 中文字幕神马久久| 久久在线观看免费视频| 99色在线视频| WWW美腿丝袜香蕉中文| 亚洲无码国产探花在线观看| 日本有码久久| 蜜臀99久久精品久久久久久| 人人看欧美性爱| 人妻一区久久二区三区色播| 大香蕉综合网| 成人日韩欧美| 国产91 丝袜在线播放| 久久精品国产96精品亚洲拳交| 和协影院中文字幕三区| 一级性爱视频免费观看| 九九九网页| 蜜桃久久一区二区| 95人妻爽爽人人做人人澡| 久久久一二三四区| 国产亚洲精品第一最新| 啊灬啊灬啊灬啊灬高潮奶出了免费视 | 亚洲在线网站| 天天摸夜夜摸| 国产精品福利资源在线尤物| 情色日播放AV| 韩国一级做a久久久久| 亚洲有薄码区日本系列中文字幕| 婷婷午夜清品久久久久久久性色视频观| 亚洲AV无码国产成人| 亚洲综合伊人| av凤凰久久久| 插插综合网天天影视网| 探花精品视频| 久久久啊啊啊| 日韩AV电影网站| 国产一区在线播放| 午夜福利久久久噜久噜久久综合| 97在线免费观看视频| caopeng97| 在线观看不卡一区二区三区| 97 国产一区| 18禁美女裸体无遮挡啪啪| 精品国产久久乱码| 成人三级片无码| 精品人妻一区二区三区不卡断| 色播五月丁香| av九九| 久操97| 欧洲亚洲人妻无码中字久久三区四区| 精品无码久久久久久国产浪潮| 啊啊啊啊啊啊啊在线| 动漫爆乳3D奶水一区在线观看| 国产麻豆91欧美一区二区久久婷婷国产精品| 成年女人18级毛片毛片免费观看| 五月天伊人网| 国产福利夜| 天天操天天舔| 女色综合| 亚洲国产精品久久久久婷婷老年| 丁香五月社区| 精品国产三级av韩国在线| 色综合99999| 久久伊人大香蕉| 国产精品人妻免费精品| 欧洲亚洲天堂精品 | 久久久久九九九九九| 七久久久| 日韩精品人妻一| 中文字幕一区二区三区人妻不卡| 岛国小电影| 亚洲国产午夜真人一级片中文字幕精品黄网站 | 99婷婷一区二区| 日日噜噜夜夜久久亚洲一区二区 | 999热日韩精品| 中文字幕在线观看第二页| 日本一区二区成人在线| 亚洲麻豆av一区二区| 是还免费视频1727我| 五月天伊人| 中日亚韩免费视频| 蜜臀久久99精品久久久久久-DVD原版全| 久久有码| 日本熟妇熟色97一本在线观看| 综合久久久久久久综合网| 精品视频一二三中文| 999九九精品| 青青操97| 激情久久久| 天天搞在线综合网| 天天看精品动漫视频一区| 九九这里只有精品| 啊啊啊不要啊啊受不了了视频在线| 大香蕉久操| 91精品人妻电影| 欧美不卡在线一区二区| 亚洲一二三四区| 蜜臀网址在线| 超碰久久综合| 少妇69中文| 素人美腿视频网站| 精品视频久久久久九九九九9999| 亚洲最大AV网| 成人性爱视频在线看| 91狠狠| 亚洲图片欧美色| 精品十八在线观看| 乱色老一区二区三区的观看方式| 91久久18禁| 欧美天天谢综合网| 久久本道| 91亚洲精品青草| 久久亚洲影院一区二区| 丝袜 亚洲 偷拍| 黄色av一区二区在线| 黄片不用下载在线观看| 特级丰满少妇一级AAAA爱毛片| 亚洲自拍天堂| 日韩乱伦AⅤ| 熟妇xxxxx性春色| 操逼视频国产无套| 九九九精品成人免费视频小说| 国产h小视频在线观看免费| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区 | 青青草中日韩在线| 色五月激情AV在线| 91美女国产在线| 91在线国产后入风骚翘臀美女素人| 91精品免费| 欧洲一区二区三区四区在线观看| 欧美青青草视频| 色与欲影视天天看综合网| 96精品久久久| 久久精品导航| 亚洲av性爱电影| 大屁股人妻女教师撅着屁股| 色就色综合| 日本视频一区二区三区| a天堂视频| 欧美日综合| 熟妇熟女视频一区二区三区| 色婷婷aV一区二区三区麻豆综合| 久久伊人网视频一区二区三区| 欧美久久婷婷| 91伊人久久在线| 欧日韩一二三f区| 亚洲丝袜诱惑| 国产美女销魂在线观看不卡| 免费在线黄片视频| 久久综合99| 亚洲综合网图| 91色色综合| 色臀AV| 可以免费看黄片的视频| 日韩欧美aⅴ综合网站发布| 久久久夜夜嗨免费视频| 美女啊啊啊啊pc| 91久久国产综合精品| 日日摸日日弄日日拍| 91另类| 人人操,操人人| 天天操天天插| 婷婷香网站| 熟女91网站| 另类小说综合网| 久久久网站| 精品小视频在线| 综合欧美色图| 高清国产成人无码| 人妻丝袜无 码视频专区| 大香蕉中文aV在线| 91操熟女视频 | 新婚人妻扶着粗大强行坐下| 亚洲av在线免费观看| 99xav| 欧美色图综合网| 99国产在线 精品 视频| 欧美|91色综合| 中文字幕伊人| 欧州一区二区三区四区| 国产女生在线| 欧美熟妇亚洲版| 亚洲成a人v欧美综合天堂下载| 国内毛片国产专区二| 日韩 人妻 精品| 国产精品在线免费| 在线a v| 99www.bibizy香蕉资源国产一区二区三区高清 | 蜜臀视频网站| 激情综合久久| 九九九草| 国产一级不卡在线观看| 欧美最婬乱婬爆婬性视频 | 天堂涩涩| 伊人97色天使| 国产激情在线| 操逼网站视频漫画国产| 久草男人天堂| 国产真乱mangent| 久久精品欧美一区蜜桃| 婷婷丁香人妻| 亚欧高清在线| 嗯嗯啊啊日韩精品| 国产亚洲美日韩Aⅴ中文字幕无码成人| 狠狠欧美| 色汉综合| 91男女啊啊啊| 欧美狠狠| 久9久| 2017大香蕉| 加勒比在线视频| 国产精品扒开腿做爽爽爽视频| JULIA一区二区三区在线播放| 97操综合| 竹菊影视国产一区二区| 亚洲风情综合网| 中文字幕一区日韩精| 少妇人妻在线| av资源在线播放天堂| 国产日韩中文字幕欧美| 欧亚性爱视频免费看| 亚州Av天美传媒| 国产精品一区二区 尿失禁| 天天综合站| 久久久久久AⅤ无码免费肉站| 欧美日日人人天天| 九九热超碰| 夜夜精品视频| ,国产乱人伦精品一区二区三区| 免费一二区| 天天弄欧美| 五月婷婷六月丁香网址| 久九9精品| 亚洲AV无码久久久国产精品| 九九精品网| 九九在线视频| 思思热在线视频免费| 人人澡综合涩| 国产欧美日韩精品中文| 人妻第一页| 黄色乱论网站| 亚欧性爱无码| 亚洲熟伦熟妇AV无码春色| 3P乱轮视频| 午夜后入| 久久99操天天日| 日骚逼视频| 日本999精品视频| 密乳无码| 欲色综合| 97资源欧美| 亚洲少妇中文字幕网址| 亚洲AV无码乱码| julia中文字幕在线观看| 国产原创剧情在线丝袜| 国产精品福利视频| 日韩精品9区| 五月天伊人| 伊人精品久久网站| 亚洲性高潮| 青青青青草av在线观看| 蜜乳AV一区二区三区四| 精品久| 亚洲熟女乱综合一区二区三区| 大香蕉520| 伊人一区二区在线播放| 97操碰| 九九夜精品九九在线| 99亚洲天堂| 91精品亚洲内射孕妇| 亚洲自拍小说| 96免费视频在线| 天堂岛av| 人看人人摸人人操| 久久精品国产精品一区| 91色伦| 无码视频一区二区| 日产狠狠干| 乱伦日本色图AⅤ| 中文?日韩?免费?精品| 日日AAvv| 国产精品天干天干综合网麻豆| 欧美黄页在线| 熟女人妻一区二区三区| 天天插夜夜操| 翔田千里AV无码秘 三区| 亚洲日韩黑丝| 亚洲老司机123专区| 久久久久久久久久久97| 中文字幕成人| 熟女精品va中文字幕| 欧美精品精品一区二区| 啊啊啊啊好多水| 欧美,日韩,中文,另类| 日韩欧美水蜜桃人妻| 亚洲天堂另类美腿| 蜜桃臀av在线观看| 91人妻Pr| 国产黄色 A 片免费看| 男人的天堂午夜av| 国产无码三级视频在线观看| 亚洲精品97久久| 国产精品一区二区三区在线| 91少妇通奸网站| 深夜福利黄片| 久久久精品网| 四虎免费在线播放| 夜夜骑日日| 九草九九九| 国产丸一视频| 大香蕉92| 91精品婷婷国产综合久久| 欲女人妻性色av| 青青三级视频| 亚洲丝袜99| 欧美色图在线视频少妇| 97资源站久久| 嗯~啊~轻一点 视频| 国产成人啪一区二区| 久久久久久久久国产| 国产丸一视频| 亚洲综人| 好爽视频在线观看| 色欧洲| www国产无码| 国产精品精品系列在线观看| 亚洲天堂在线怕怕视频| 情趣丝袜无码操逼视频| 在线播放免费av福利片| 伊人久久大香线蕉无码| 日本一区二区成人在线| 精品人妻美妇91job| 人妻久久久久久| 99青草| 麻豆九九九| 中文字幕视频免费| 97超碰国产亚洲精品| 嗯嗯啊啊啊好爽| 伊人天天久久动态图| 欧美性爱日韩高清| 日本操逼视频导航| 国模精品一区二区三区苹果色戒 | 人妻日日干| 婷婷五月丁香五月| 日韩中字av一区| 夜精品久无码| www久久精品| 91色狼| 大香蕉一区二区在线观看.| 国产92麻豆天美精品色欲5| 婷婷在线视频| 天天干天天日天天射黄色片| 欧美日韩人妻少妇 一区二区三区| 欧美自拍网| 另类图片欧美激情综合| 久草视频在线视频在线视频在线观看| 亚洲第一成人影院色播| 天天操狠狠日夜夜干超碰撸com视频在线观看| 韩国女主播青草福利视频| 欧美激情久| 加勒比aⅴ| 久久精品国产亚洲AV高清演员表| 日韩激情啪啪| 啊啊啊啊视频免费| 本道在线| 百度百度日本操逼| 国产尤物AV尤物在线观看不卡| 理论久久婷婷网 8| 丁香7月婷婷| 操b在线观看| 久久综合激情| 麻豆精品A片免费观看| 欧美丝袜91| 日本性爱欧美性爱| 欧美后进式| 久久久国产护士丝袜美腿一| 大象AV在线| 久99久视频| 福利天堂| 久久久久久久强迫| 久久艹逼视频| 91真人天天在线| 肏逼视频日本| www.五月天| 视频黄站| 色欲av一区二区三区蜜芽| 啊啊啊啊嗯嗯嗯用力好爽| 国产精品一区二区后入| 人人模人人看| 欧美夜夜狠| 久久风骚城市人| 亚洲和欧美裸体美女双飞视频| 五十路三区在线| 国产女人成人精品视频| 牛牛久久国产精品视频一二三| 九九九九热| 色婷婷综合久久久久中文国产精品一区中文字幕,国产福利电影一区二区三区 | 伊人991| 91AV入口| 天天欧美色| 久久无码精品| 九九RE视频在线精品| 4虎在线视频| 国产一区二区a毛片| 殴美日韩m| 一区二区三区视频| 色色99| 国产成人五月天丁香花| 中文字幕 国产区| 久久人妻一区二区三区高清| 国产麻豆福利av在线播放| 欧美国产一区二区三区麻豆传媒| 国产精品女aA片爽爽视频| 女色视频社区| 亚洲成人贴图| 伊人综合色网| 999久久久| 91啪9色| 啪啪视频免费在线观看| 小草精彩毛片| 国产精品免费久久久久久久久久| 99热官网| 婷婷丁香激情| 一区麻豆 高清中文字幕| 国产乱伦搜索结果91P| 91 丝袜在线| 中文字幕高清精品一区| 久久超碰免费的| 一区二区三区高清天码| 高清肉丝中文无码| 亚洲精品a人片在线观看视| 欧美草草| 激情文学网伊人| 熟女人妻精品一区二区视频| 婷婷成人久久久精品| 精品综合久久久久久五月天| 曰本精品久久久| 国产精品区在线12p| 中文字幕伊人| 色婷婷基地| 色香AV| 人人摸人人干| 首页中文字幕中文字幕免费| 97在线/亚洲| 黄色AV影视| 国产乱伦亚洲| 久久青娱乐| 久久五月份| 国产又黄又爽又刺激久久久久久| 在线情色电影 91大 | 九九国产热| 91精品黄在线观看| 久久亚洲AV无码白度| 午夜福利区| 久久久夜夜嗨免费视频| 97免费在线观看| WWW.加勒比人妻一区不卡.com| 在线中文字幕极品av| 青青草好吊色| 九九九久久久久| 日韩不卡av一二三| 欧美色综合| 在线观看午夜婷婷久久久久清性观看| 五月丁香综合激情| 边做饭边操逼逼| 天天天操天天天爱| 精品四五区| 亚洲国产麻豆一区二区三区| 欧美乱欲| 啊啊啊啊啊啊啊网址在线观看| 婷婷月色| 亚洲精品天堂久久A∨51成人漫| 99re视频在线播放青草| 久久鲁夜| 口爆综合网| 户外裸露刺激视频第一区| 亚洲国产综合图区中文字幕| 久久美国毛片| AV一二区| 99性爱视频| 国产精品无码在线| 亚洲欧美国产va在线播放频| 午夜视频黄| 91制服丝袜中文字幕| 日韩精品国模| av操操不卡| 深夜操逼网| 1769精品一区二区三区| ,成人免费啪啪视频| 九九热三级片| 美女丝袜激情小说| 91色噜噜狠狠| 久久精品国产精品亚洲艾通辽熟妇 | 张柏芝国产一区在线观看| 另类图片五月天| 黑人与人妻| 国产无遮挡| 欧美日不卡| 中文字幕成人| 婷婷亚洲五月***久久| 国产成人午夜视频网址| 91社区伊人| 亚洲熟女av中文字幕| 国产一区二区久久| 91在线精品| 性爱视频无打码在线观看| 色呦呦国产精品免费看| 精…码一二三区| 色香天天| 亚洲丝袜少妇在线| 精品人妻一区二区三区蜜桃视频| 日韩资源网| 日逼五月天| 狠插 制服 自拍| 中文字幕乱碼在线| 亚州操操穴网| 亚洲人精品久久久喷水| 99在线免费视频| 先锋精品av色鲁| 日本免费中文一区二区三区四区| 丁香色五月 97干| 操逼日韩无码 | 国产成人久久久精品免费AV| 黄色视频特级毛片| 国产一区二区av综合| 亚洲成人福利电影免费| 日本午夜操逼| 操B在线观看| 91黑人无码激情在线| 乱伦熟女区| 色五月丁香五月| 色色国产| 亚洲91av| 九九热超碰97亚洲最新香蕉| 日韩午夜国产| 久操视频在线| 国产日韩怡红院|