Zuul网关配置and案例

目录

干什么的?

网关会帮着路由到集群

开启网关配置user-zuul~接收所有请求

网管怎么把请求分发到服务器---配置文件中映射路径

总结图片

此时只需要网关 服务 注册中心 不需要服务调用者

访问集群,自动负载均衡,如何实现?

过滤器ZuulFilter

负载均衡和熔断都集成网关来做


干什么的?

所有请求经过网关--安全监控

Zuul加入之后的架构

网关会帮着路由到集群

创建网关模块

引入jar包

 <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-zuul</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>

    </dependencies>

开启网关配置user-zuul~接收所有请求

网关的application.yaml

网管怎么把请求分发到服务器---配置文件中映射路径

path意思时拦截这个开头的所有请求

访问方式

总结图片

此时只需要网关 服务 注册中心 不需要服务调用者

访问集群,自动负载均衡,如何实现?

通过服务名进行访问底层自动实现负载---zuul面向服务

1 引入坐标 (把网关作为服务的调用者)

添加注解@EnableDiscoveryClient--此时既是网关又是服务的调用者

2 添加Eureka配置 获取服务信息 

如何通过服务名字访问服务

过滤器ZuulFilter

public abstract ZuulFilter implements IZuulFilter{

    abstract public String filterType();

    abstract public int filterOrder();
    
    boolean shouldFilter();// 来自IZuulFilter

    Object run() throws ZuulException;// IZuulFilter
}
  • shouldFilter:返回一个Boolean值,判断该过滤器是否需要执行。返回true执行,返回false不执行。

  • run:过滤器的具体业务逻辑。

  • filterType:返回字符串,代表过滤器的类型。包含以下4种:

    • pre:请求在被路由之前执行

    • routing:在路由请求时调用

    • post:在routing和errror过滤器之后调用

    • error:处理请求时发生错误调用

  • filterOrder:通过返回的int值来定义过滤器的执行顺序,数字越小优先级越高。

========================================================================

图解:整个服务流程是先走prefilter,再走路由过滤器routingfliter,再走orginserver服务器,再走postfilter返回给用户,出现错误走error过滤器

customfilter是自定义过滤器

负载均衡和熔断都集成网关来做

配置网关的application

===========================================================

猜你喜欢

转载自blog.csdn.net/sinat_40895117/article/details/85266343