日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

gateway路由网关,zuul的替代品

發布時間:2023/12/10 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 gateway路由网关,zuul的替代品 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
zuul1 low, zuul2 還沒長大呢,不敢用。 gateway 基于netty, spring flux, reactor 異步非阻塞, 快呀。 與spring良好整合, spring社區的呢。官方推薦。

https://spring.io/projects/spring-cloud-gateway


https://cloud.spring.io/spring-cloud-static/spring-cloud-gateway/2.2.1.RELEASE/reference/html/

gateway

  • 特性
  • 網關的三大核心對象
  • 入門配置
  • 斷言配置
  • 支持自定義過濾器

特性

Spring Cloud Gateway 使用的Webflux中的reactor-netty響應式編程組件,底層使用了Netty通訊框架.

1. 基于spring5.0 reactor, boot2.x 2. 能夠轉發所有請求的路由 反向代理 3. 路由支持斷言和過濾器 4. 熔斷 5. 服務發現 客戶端 6. 簡單斷言和過濾器 7. 能限制請求 8. 根據路徑轉發日志監控.. 流量控制.. 鑒權..

網關在微服務的哪個地方, nginx后面就是。


網關的三大核心對象

路由Route

路由是構建網關的基本模塊,它由ID,目標URI,一系列的斷言和過濾器組成,如果斷言為true則匹配該路由。

route --> 根據規則將請求轉發到對應的微服務。

斷言Predicate

參考的是java8的java.util.function.Predicate開發人員可以匹配HTTP請求中的所有內容(例如請求頭或請求參數),如果請求與斷言相匹配則進行路由。

可以設置對應的規則來設置斷言。符合規則轉發請求, 不符合可以做出對應處理。

過濾 filter

指的是Spring框架中GatewayFilter的實例,使用過濾器,可以在請求被路由前或者之后對請求進行修改。

java web 中的過濾器, 過濾器鏈, 懂吧。

入門配置

pom

<!--新增gateway 需要排除web和actuator 2.2.1.RELEASE --><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-gateway</artifactId></dependency>

routes 下面可以配置多個路由路徑。‘

使用yaml配置路由

# gateway --> 路由 斷言 過濾器 server:port: 9527# 網關配置 spring:application:name: cloud-gatewaycloud:gateway:discovery:locator:enabled: true # 開啟從注冊中心獲取動態路由的功能。利用微服務名進行路由。routes:- id: payment_routh1 # 路由的id 沒有固定規則但是要求唯一 配合服務名稱# uri: http://localhost:8001 # 匹配后提供服務的路由地址uri: lb://cloud-payment-service # 根據服務名進行路由predicates:- Path=/payment/get/** # 路徑像匹配的進行斷言~

使用bean的方式配置路由

package top.bitqian.springcloud.config;import org.springframework.cloud.gateway.route.RouteLocator; import org.springframework.cloud.gateway.route.builder.RouteLocatorBuilder; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration;/*** 網關規則bean配置* @author echo lovely* @date 2020/12/12 16:53*/@Configuration public class GatewayConfig {// 可以配置多個bean, 根據規則跳轉到不同的url@Beanpublic RouteLocator customerRouteLocator(RouteLocatorBuilder routeBuilder) {RouteLocatorBuilder.Builder routes = routeBuilder.routes();routes.route("adorable1",r -> r.path("/team"). // localhost:9527/teamuri("https://github.com/team")). // to teambuild();return routes.build();}@Beanpublic RouteLocator customerRouteLocator1(RouteLocatorBuilder routeBuilder) {RouteLocatorBuilder.Builder routes = routeBuilder.routes();routes.route("adorable2",r -> r.path("/explore"). // localhost:9527/exploreuri("https://github.com/explore")). // to explorebuild();return routes.build();}}

斷言配置

https://cloud.spring.io/spring-cloud-static/spring-cloud-gateway/2.2.1.RELEASE/reference/html/#gateway-request-predicates-factories

支持cookie, 請求頭, 請求方法,請求參數, 請求時間…

可以本地使用curl來測試, 像linux curl localhost:8080

# gateway --> 路由 斷言 過濾器 server:port: 9527# 網關配置 spring:application:name: cloud-gatewaycloud:gateway:discovery:locator:enabled: true # 開啟從注冊中心獲取動態路由的功能。利用微服務名進行路由。routes:- id: payment_routh1 # 路由的id 沒有固定規則但是要求唯一 配合服務名稱# uri: http://localhost:8001 # 匹配后提供服務的路由地址uri: lb://cloud-payment-service # 根據服務名進行路由predicates:- Path=/payment/get/** # 路徑像匹配的進行斷言~- id: payment_routh2 # 路由的id 沒有固定規則但是要求唯一 配合服務名稱# uri: http://localhost:8001 # 匹配后提供服務的路由地址uri: lb://cloud-payment-servicepredicates:- Path=/payment/lb/** # 路徑像匹配的進行斷言~# 新增斷言配置# https://cloud.spring.io/spring-cloud-static/spring-cloud-gateway/2.2.1.RELEASE/reference/html/#gateway-request-predicates-factories- After=2020-12-13T11:37:03.340+08:00[Asia/Shanghai] # 必須在這個時間之后# - Cookie=username, adorable # 測試 curl --cookie "username=adorable" localhost:9527/payment/lb# - Header=X-Request-Id, \d+ # 屬性必須是整數 curl --header "X-Request-Id:99" localhost:9527/payment/lb# - Query=age # curl localhost:9527/payment/lb?age=19# - Host=**.adorable.cn,**.adorable.top # curl localhost:9527/payment/lb -H "host:bitqian.lovely.adorable.top"# gateway 入駐eureka~ eureka:instance:hostname: cloud-gateway-serviceclient:service-url:register-with-eureka: truefetch-registry: truedefaultZone: http://eureka7001.com:7001/eureka

支持自定義過濾器

package top.bitqian.springcloud.filter;import lombok.extern.slf4j.Slf4j; import org.springframework.cloud.gateway.filter.GatewayFilterChain; import org.springframework.cloud.gateway.filter.GlobalFilter; import org.springframework.core.Ordered; import org.springframework.http.HttpStatus; import org.springframework.stereotype.Component; import org.springframework.web.server.ServerWebExchange; import reactor.core.publisher.Mono;import java.util.Date;/*** 網關自定義過濾器配置* 官方有兩種過濾器, 單一的和全局的。* @author echo lovely* @date 2020/12/13 14:37*/@Component @Slf4j public class MyGatewayFilter implements GlobalFilter, Ordered { // global filter...@Overridepublic Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {log.info("=======================gateway進來了======" + new Date());// 獲取到請求中的參數String username = exchange.getRequest().getQueryParams().getFirst("username");if (username == null) {log.info("/(ㄒoㄒ)/~~ 用戶名為空了,非法的用戶名稱......");// 406 不被服務器接受的exchange.getResponse().setStatusCode(HttpStatus.NOT_ACCEPTABLE);// 返回monoreturn exchange.getResponse().setComplete();}// 放行return chain.filter(exchange);}@Overridepublic int getOrder() {// 數字越小, 越優先return 0;} }

總之網關作為分布式,微服務架構 在安全,限流,日志記錄方面具有強大的功能。

總結

以上是生活随笔為你收集整理的gateway路由网关,zuul的替代品的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 天天插天天操 | 日本激情网站 | 秋霞影院午夜 | 十八岁世界在线观看高清免费韩剧 | julia一区 | 日韩亚洲视频在线观看 | 久久久久一区 | 在线播放日韩av | 欧美人妻日韩精品 | 最新成人在线 | 男人天堂av电影 | 91麻豆精品国产午夜天堂 | 国产一区在线视频 | 亚洲资源av| 日韩综合av | 91偷拍精品一区二区三区 | 日韩女同强女同hd | 综合狠狠开心 | 国产三级网站 | 免费黄网在线看 | 欧美亚洲一二三区 | 91成人国产综合久久精品 | 天堂在线资源网 | 精品国产一区二区三区久久 | 黄视频网站在线 | 日本在线免费观看视频 | 精国产品一区二区三区a片 国产精品第一 | 欧美日韩中文字幕视频 | 亚洲综合视频在线观看 | 女人脱裤子让男人捅 | 日韩国产传媒 | v8888av| 成人黄色片免费看 | 精东影业一区二区三区 | 久热精品视频 | 999国产精品视频免费 | 熟妇高潮精品一区二区三区 | 午夜视频在线免费播放 | 亚洲玖玖爱 | 天天久久综合网 | 极品销魂美女一区二区三区 | 日女人网站 | 日本免费精品视频 | 免费精品 | 男女床上拍拍拍 | 亚洲视频h| 午夜免费福利小电影 | 黄色资源在线观看 | 护士的小嫩嫩好紧好爽 | 国产高潮国产高潮久久久 | av毛片网站 | 中文字幕一区二区三区四区免费看 | 中文字幕2021 | 在线无| 涩涩屋视频在线观看 | 91麻豆精品国产91久久久久久久久 | 娇妻高潮浓精白浆xxⅹ | 黄色一级在线视频 | 亚洲一区二区在线免费 | 欧美日本韩国 | 天堂中文在线资源 | 国产在线999 | 新91av| exo妈妈mv在线播放高清免费 | 四虎国产精品成人免费入口 | 黄色网址视频 | 色婷亚洲 | 韩国av一区 | 美女穴穴 | 国产免费一区二区三区网站免费 | 美女18毛片| 日本天堂网在线观看 | 涩涩亚洲 | 免费看色| 久久99在线 | zjzjzjzjzj亚洲女人 | 亚洲无av在线中文字幕 | 天天看夜夜 | 天天做天天看 | 俺去俺来也在线www色官网 | 精品免费一区二区 | 免费簧片在线观看 | 激情图片网站 | 欧美性受xxxx白人性爽 | 亚洲一区免费 | 特黄一级大片 | 最近中文字幕av | 亚洲av电影一区二区 | 美女被草视频 | 疯狂伦交| 99热一区 | 男欢女爱久石 | 日韩中文字幕综合 | 制服丝袜国产精品 | a在线观看视频 | 天堂网在线观看 | 午夜成人亚洲理伦片在线观看 | 久久123| 偷偷操99|