目录
干什么的?
所有请求经过网关--安全监控
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
===========================================================