博學谷狂野架構(gòu)師大數(shù)據(jù)
微服務網(wǎng)關(guān)就是一個系統(tǒng),通過暴露該微服務網(wǎng)關(guān)系統(tǒng),方便我們進行相關(guān)的鑒權(quán),安全控制,日志統(tǒng)一處理,易于監(jiān)控,限流等相關(guān)功能 SpringCloud Gateway的工作流程 Gateway的客戶端回向Spring Cloud Gateway發(fā)起請求,請求首先會被HttpWebHandlerAdapter進行提取組裝成網(wǎng)關(guān)的上下文,然后網(wǎng)關(guān)的上下文會傳遞到DispatcherHandler。 DispatcherHandler是所有請求的分發(fā)處理器,DispatcherHandler主要負責分發(fā)請求對應的處理器,比如將請求分發(fā)到對應RoutePredicateHandlerMapping(路由斷言處理器映射器)。 路由斷言處理映射器主要用于路由的查找,以及找到路由后返回對應的FilteringWebHandler。 FilteringWebHandler主要負責組裝Filter鏈表并調(diào)用Filter執(zhí)行一系列Filter處理,然后把請求轉(zhuǎn)到后端對應的代理服務處理,處理完畢后,將Response返回到Gateway客戶端。 在Filter鏈中,通過虛線分割Filter的原因是,過濾器可以在轉(zhuǎn)發(fā)請求之前處理或者接收到被代理服務的返回結(jié)果之后處理。所有的Pre類型的Filter執(zhí)行完畢之后,才會轉(zhuǎn)發(fā)請求到被代理的服務處理。被代理的服務把所有請求完畢之后,才會執(zhí)行Post類型的過濾器。 網(wǎng)關(guān)重要概念:路由、斷言、過濾器 Gateway路由配置分為基于配置的靜態(tài)路由設置和基于代碼動態(tài)路由配置。 靜態(tài)路由是指在application.yml中把路由信息配置好了,而動態(tài)路由則支持在代碼中動態(tài)加載路由信息,更加靈活,我們接下來把這2種路由操作都實現(xiàn)一次。 本文禁止轉(zhuǎn)載或摘編 點贊 收藏 分享