本文共 3339 字,大约阅读时间需要 11 分钟。
Spring Cloud Gateway是Spring官方基于Spring 5.0,Spring Boot 2.0和Project Reactor等技术开发的网关,Spring Cloud Gateway旨在为微服务架构提供一种简单而有效的统一的API路由管理方式。Spring Cloud Gateway作为Spring Cloud生态系中的网关,目标是替代Netflix ZUUL,其不仅提供统一的路由方式,并且基于Filter链的方式提供了网关基本的功能,例如:安全,监控/埋点,和限流等。
入门案例
接下来,介绍一下简单使用SpringCloud Gateway路由功能
创建项目
新建一个项目,项目种加入SpringCloud Gateway依赖,完整pom如下:
4.0.0 com.dalaoyang springcloud_gateway 0.0.1-SNAPSHOT jar springcloud_gateway springcloud_gateway org.springframework.boot spring-boot-starter-parent 2.0.0.RELEASE UTF-8 UTF-8 1.8 Finchley.RC1 org.springframework.cloud spring-cloud-starter-gateway org.springframework.boot spring-boot-devtools runtime org.springframework.boot spring-boot-starter-test test org.springframework.cloud spring-cloud-dependencies ${spring-cloud.version} pom import org.springframework.boot spring-boot-maven-plugin
SpringBoot主程序
在类中配置路由
主程序中加入了一种配置路由的方法,利用@Bean的方式自定义RouteLocator。
package com.dalaoyang; import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.cloud.gateway.route.RouteLocator;import org.springframework.cloud.gateway.route.builder.RouteLocatorBuilder;import org.springframework.context.annotation.Bean; @SpringBootApplicationpublic class SpringcloudGatewayApplication { public static void main(String[] args) { SpringApplication.run(SpringcloudGatewayApplication.class, args); } @Bean public RouteLocator customRouteLocator(RouteLocatorBuilder builder) { return builder.routes() .route(r -> r.path("/jianshu") .uri("http://www.jianshu.com/u/128b6effde53") ).build(); } }
在配置文件中配置:
server: port: 8888 spring: application: name: gateway-service cloud: gateway: routes: - id: dalaoyang uri: http://www.dalaoyang.cn/ predicates: - Path=/dalaoyang/** - id: juejin uri: https://juejin.im/user/5aa50b96f265da23866f836e predicates: - Path=/juejin/** //Spring Cloud大型企业分布式微服务云架构源码 //请加一七九一七四三三八零
到这里配置完成了。
转载地址:http://cykul.baihongyu.com/