喜馬拉雅自研網關架構演進過程
點擊藍色“肉眼品世界”關注我喲
深度價值體系傳遞

來源:https://www.jianshu.com/p/165b1941cdfa






用戶鑒權和登陸校驗,支持接口級別配置
黑白明單,分全局和應用,以及IP維度,參數級別
流量控制,支持自動和手動,自動是對超大流量自動攔截,通過令牌桶算法實現
智能熔斷,在histrix的基礎上做了改進,支持自動升降級,我們是全部自動的,也支持手動配置立即熔斷,就是發(fā)現服務異常比例達到閥值,就自動觸發(fā)熔斷
灰度發(fā)布,我對新啟動的機器的流量支持類似tcp的慢啟動機制,給 機器一個預熱的時間窗口
統(tǒng)一降級,我們對所有轉發(fā)失敗的請求都會找統(tǒng)一降級的邏輯,只要業(yè)務方配了降級規(guī)則,都會降級,我們對降級規(guī)則是支持到參數級別的,包含請求頭里的值,是非常細粒度的,另外我們還會和varnish打通,支持varish的優(yōu)雅降級
流量調度,支持業(yè)務根據篩選規(guī)則,對流量篩選到對應的機器,也支持只讓篩選的流量訪問這臺機器,這在查問題/新功能發(fā)布驗證時非常用,可以先通過小部分流量驗證再大面積發(fā)布上線
流量copy,我們支持對線上的原始請求根據規(guī)則copy一份,寫入到mq或者其他的upstream,來做線上跨機房驗證和壓力測試
請求日志采樣,我們對所有的失敗的請求都會采樣落盤,提供業(yè)務方排查問題支持,也支持業(yè)務方根據規(guī)則進行個性化采樣,我們采樣了整個生命周期的數據,包含請求和響應相關的所有數據

Connection:close
空閑超時,關閉鏈接
讀超時關閉鏈接
寫超時,關閉鏈接
Fin,Reset


協議解析超時
等待隊列超時
建鏈超時
等待鏈接超時
寫前檢查是否超時
寫超時
響應超時

攻擊性請求,只發(fā)頭,不發(fā)/發(fā)部分body,采樣落盤,還原現場,并報警
Line or Head or Body過大的請求,采樣落盤,還原現場,并報警
耗時監(jiān)控,有慢請求,超時請求,以及tp99,tp999等
QPS監(jiān)控和報警
帶寬監(jiān)控和報警,支持對請求和響應的行,頭,body單獨監(jiān)控。
響應碼監(jiān)控,特別是400和404
鏈接監(jiān)控,我們對接入端的鏈接,以及和后端服務的鏈接,后端服務鏈接上待發(fā)送字節(jié)大小也都做了監(jiān)控
失敗請求監(jiān)控
流量抖動報警,這是非常有必要的,流量抖動要么是出了問題,要么就是出問題的前兆。




/**
* Cleans up if the user forgets to close it.
*/
protected void finalize() throws IOException {
close();
}


end
如有收獲,點個在看,誠摯感謝
