米鼠商城

多快好省,买软件就上米鼠网

最新项目

人才服务

靠谱的IT人才垂直招聘平台

Spring Cloud 网关 Gateway 配置使用 springcloud alibaba

  • lkj155
  • 2
  • 2021-04-08 13:41

客户端向spring-cloud-gateway请求网关映射处理程序(gateway handler mapping),如果确认请求与路由匹配,则将请求发送到web处理程序(gateway web handler),web处理程序通过特定于该请求的过滤器链处理请求,图中filters被虚线划分的原因是filters可以在发送代理请求之前(pre filter)或之后执行逻辑(post filter)。先执行所有pre filter逻辑,然后进行请求代理。在请求代理执行完后,执行post filter逻辑。

开始使用Spring-Cloud-Gateway Spring Cloud Gateway依赖Spring Boot和Spring Webflux提供的Netty runtime,所以springboot必须在2.0或者以上,springcloud在Finchley以上,基本springcloud环境确认后,然后引入:

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>

路由配置

官网都是用的yml配置文件配置,与properties配置文件配置稍有不同,我这里全部使用properties配置文件配置。

直接使用注册中心路由配置

#使用服务发现路由
spring.cloud.gateway.discovery.locator.enabled=true
#服务路由名小写
spring.cloud.gateway.discovery.locator.lower-case-service-id=true

指定服务配置

#设置路由id
spring.cloud.gateway.routes[0].id=auth-service
#设置路由的uri
spring.cloud.gateway.routes[0].uri=lb://auth-service
#设置路由断言,代理servicerId为auth-service的/auth/路径
spring.cloud.gateway.routes[0].predicates[0]= Path=/auth/**

spring.cloud.gateway.routes.predicates:路由断言,配置时必须得有一项,不一定是Path;

spring.cloud.gateway.routes.uri:配置路由uri,"lb://‘serviceId’"前代表路由的服务,同时也可以是一个url

编码服务配置

//java项目www.fhadmin.org
@Configuration
public class RoutesConfiguration {

    @Bean
    public RouteLocator customRouteLocator(RouteLocatorBuilder builder) {
        return builder.routes().route(predicateSpec ->
                predicateSpec.path("/auth/**").uri("lb://auth-service").id("auth-service")
        ).build();
    }

}

总结 Spring-Cloud-Gateway与Zuul 1.0相比,前者基于WebFlux与Reactive线程模型的异步非阻塞框架,服务通过底层的Netty来进行发布及运行,异步非阻塞可以有效降低系统的线程数量,只需要很少的线程就可以完成较高的并发支持,而Zuul1.0是基于servlet性能上的差距可想而知,同时Spring-Cloud-Gateway还内置了许多的路由断言(Factories)与过滤器(Filter)可以减少开发人员的编码,和更好的功能支持和扩展  



这里给大家推荐一个在线软件复杂项交易平台:米鼠网 https://www.misuland.com

米鼠网自成立以来一直专注于从事软件项目人才招聘软件商城等,始终秉承“专业的服务,易用的产品”的经营理念,以“提供高品质的服务、满足客户的需求、携手共创双赢”为企业目标,为中国境内企业提供国际化、专业化、个性化、的软件项目解决方案,我司拥有一流的项目经理团队,具备过硬的软件项目设计和实施能力,为全国不同行业客户提供优质的产品和服务,得到了客户的广泛赞誉。



如有侵权请联系邮箱(service@misuland.com)

猜你喜欢

评论留言