網(wǎng)關(guān)架構(gòu)模型
- 沒有網(wǎng)關(guān)之前,面對(duì)后端服務(wù),前端要對(duì)接n個(gè)系統(tǒng)
- 沒有統(tǒng)一入口所以,鑒權(quán),監(jiān)控,熔斷等都要重復(fù)實(shí)現(xiàn)
參考
- http://www.scienjus.com/api-gateway-and-netflix-zuul/
- zuul壓測和性能優(yōu)化
https://mp.weixin.qq.com/s?__biz=MzAxOTg2NDUyOA==&mid=2657554861&idx=1&sn=5de35bd5f46608505eaa4b1a0dc724a3&scene=0#wechat_redirect - 全解析
http://tech.lede.com/2017/05/16/rd/server/SpringCloudZuul/ - 日志規(guī)范
http://tech.lede.com/2017/06/30/rd/server/loggingHabit/ - 復(fù)雜模型業(yè)務(wù)處理方式 http://tech.lede.com/2017/02/13/rd/server/ChainOfResponsibilityForActivity/ 【類似注冊(cè)形式】

image.png
演變

image.png
開源產(chǎn)品
- kong,go方面的
- zuul
spring cloud zuul
- 功能
動(dòng)態(tài)路由
監(jiān)控
安全
認(rèn)證鑒權(quán)
壓力測試
金絲雀測試
審查
服務(wù)遷移
負(fù)載剪裁
靜態(tài)應(yīng)答處理 - 可擴(kuò)展性
- 鑒權(quán),監(jiān)控,路由,灰度
- 如何快速落地到我們的業(yè)務(wù)中
zuul組件
- ribbon https://yq.aliyun.com/articles/61823 [可選]
- Hystrix [熔斷器 可選]
- eureka 【注冊(cè)中心 可選】
zuul整體架構(gòu)

image.png
流程分析
- @EnableZuulServer 普通網(wǎng)關(guān),只支持基本的route與filter.
- @EnableZuulProxy 配合上服務(wù)發(fā)現(xiàn)與熔斷開關(guān)的上面這位增強(qiáng)版,具有反向代理功能 【我們需要的】
zuul filter
PreDecorationFilter:該過濾器根據(jù)提供的RouteLocator確定路由到的地址,以及怎樣去路由。該路由器也可為后端請(qǐng)求設(shè)置各種代理相關(guān)的header。
RibbonRoutingFilter:該過濾器使用Ribbon,Hystrix和可插拔的HTTP客戶端發(fā)送請(qǐng)求。serviceId在RequestContext.getCurrentContext().get("serviceId") 中。該過濾器可使用不同的HTTP客戶端,例如
Apache HttpClient:默認(rèn)的HTTP客戶端
Squareup OkHttpClient v3:如需使用該客戶端,需保證com.squareup.okhttp3的依賴在classpath中,并設(shè)置ribbon.okhttp.enabled = true 。
Netflix Ribbon HTTP client:設(shè)置ribbon.restclient.enabled = true 即可啟用該HTTP客戶端。需要注意的是,該客戶端有一定限制,例如不支持PATCH方法,另外,它有內(nèi)置的重試機(jī)制。
- SimpleHostRoutingFilter:該過濾器通過Apache HttpClient向指定的URL發(fā)送請(qǐng)求。URL在RequestContext.getRouteHost() 中。
動(dòng)態(tài)路由【避免網(wǎng)關(guān)發(fā)版本】【灰度】(api-getway admin or restapi)
- 繼承SimpleRouteLocator 類 重載locateRoutes方法
- 獲取請(qǐng)求上下文得到用戶id,根據(jù)redis或者db配置規(guī)則 進(jìn)行路由轉(zhuǎn)發(fā)到特定的機(jī)器
- 如何上線【walle上簡單操作分開發(fā)特定機(jī)器結(jié)合開發(fā)手動(dòng)更新路由】實(shí)現(xiàn)簡單灰度方案
微服務(wù)中sso和權(quán)限方案
- 網(wǎng)關(guān)層進(jìn)行權(quán)限管理 ;
- 各服務(wù)獨(dú)立實(shí)現(xiàn)校驗(yàn);
- 校驗(yàn)邏輯實(shí)現(xiàn)在各服務(wù)上,通過共享數(shù)據(jù)或者授權(quán)中心等方式實(shí)現(xiàn);
- 參考:https://my.oschina.net/crazyFeng1/blog/867428
協(xié)議解析
如何在現(xiàn)有業(yè)務(wù)系統(tǒng)中落地
- 思考

image.png
驗(yàn)證
運(yùn)維和發(fā)布,灰度Fenix