2022-10-27
請(qǐng)求 過(guò)濾器 路由
一 介紹
1.1 gateway介紹
Spring Cloud GateWay是Spring Cloud的?個(gè)全新項(xiàng)?,?標(biāo)是取代Netflix Zuul,基于Spring5.0+SpringBoot2.0+WebFlux(基于?性能的Reactor模式響應(yīng)式通信框架Netty,異步?阻塞模型)等技術(shù)開(kāi)發(fā),性能?于Zuul,官?測(cè)試,GateWay是Zuul的1.6倍,旨在為微服務(wù)架構(gòu)提供?種簡(jiǎn)單有效的統(tǒng)?的API路由管理?式
在項(xiàng)目中使用網(wǎng)關(guān)需要導(dǎo)入下面的依賴(lài),需要是springcloud項(xiàng)目
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>
介紹
1.2 屬性介紹
gateway中包含以下屬性
Route: 路由,主要的功能就是將請(qǐng)求轉(zhuǎn)發(fā)到對(duì)應(yīng)的服務(wù)端點(diǎn),包含一個(gè)唯一的路由id,一個(gè)目標(biāo)的url,一系列斷言的集合,一組filter過(guò)濾器,當(dāng)斷言條件為true的時(shí)候就會(huì)執(zhí)行這個(gè)路由
Predicate: 斷言,主要是判斷當(dāng)前訪問(wèn)網(wǎng)關(guān)的地址應(yīng)該執(zhí)行哪個(gè)路由,轉(zhuǎn)發(fā)到什么地方,可以通過(guò)判斷請(qǐng)求中的任何數(shù)據(jù)來(lái)決定結(jié)果,比如可以判斷請(qǐng)求頭header,請(qǐng)求參數(shù)等
Filter: 過(guò)濾器,和servlet中的過(guò)濾器類(lèi)似,主要是在請(qǐng)求轉(zhuǎn)發(fā)之前和返回結(jié)果之前進(jìn)行相關(guān)的處理
術(shù)語(yǔ)
1.3 網(wǎng)關(guān)如何工作
下圖描述了網(wǎng)關(guān)如何工作,當(dāng)網(wǎng)關(guān)收到請(qǐng)求的時(shí)候,會(huì)根據(jù)定義好的路由映射進(jìn)行匹配,查看當(dāng)前的請(qǐng)求地址能夠匹配那個(gè)mapping, 然后將相關(guān)的請(qǐng)求發(fā)送到下面的web handler, handler中有一些過(guò)濾器組成了責(zé)任鏈對(duì)請(qǐng)求進(jìn)行pre處理,然后最終送達(dá)到響應(yīng)的服務(wù)器,在目標(biāo)返回結(jié)果之后再通過(guò)過(guò)濾器進(jìn)行post處理,最終返回給調(diào)用這個(gè),過(guò)濾器的虛線用于區(qū)分是前置處理還是后置處理,其實(shí)整體過(guò)程類(lèi)似于SpringMVC
工作流程圖
流程介紹
開(kāi)班時(shí)間:2021-04-12(深圳)
開(kāi)班盛況開(kāi)班時(shí)間:2021-05-17(北京)
開(kāi)班盛況開(kāi)班時(shí)間:2021-03-22(杭州)
開(kāi)班盛況開(kāi)班時(shí)間:2021-04-26(北京)
開(kāi)班盛況開(kāi)班時(shí)間:2021-05-10(北京)
開(kāi)班盛況開(kāi)班時(shí)間:2021-02-22(北京)
開(kāi)班盛況開(kāi)班時(shí)間:2021-07-12(北京)
預(yù)約報(bào)名開(kāi)班時(shí)間:2020-09-21(上海)
開(kāi)班盛況開(kāi)班時(shí)間:2021-07-12(北京)
預(yù)約報(bào)名開(kāi)班時(shí)間:2019-07-22(北京)
開(kāi)班盛況
Copyright 2011-2023 北京千鋒互聯(lián)科技有限公司 .All Right
京ICP備12003911號(hào)-5
京公網(wǎng)安備 11010802035720號(hào)