什么是Zuul
zuul 是springcloud大家族的一员悍将,担负的责任有点类似于足球场上的守门员,不过跟足球场上的守门员所不同的是,zuul的职责不是拦截对方射过来的球,而是对客户端的请求正式进入对应的处理器之前做一些响应的处理,或者引导到正确的处理器上,总体而言zuul的核心是一系列的过滤器,实现的功能有:身份认证与安全、审查与监控、动态路由、压力测试、负载分配、静态响应处理、多区域弹性。
zuul相关注解
@EnableZuulProxy可以认为是@EnableZuulServer的增强版,当Zuul与Eureka、Ribbon等组件配合使用时,我们使用@EnableZuulProxy。
zuul实战案例
1、zuul依赖引入
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-zuul</artifactId>
</dependency>
2、配置文件
zuul.routes.apia.path=/api-a/** #需要代理的url
zuul.routes..apia.service-id=eureka-client02 #代理到那个服务上
zuul.routes.apia.url=http://localhost:9002 #代理的实际地址zuul.routes.apib.path=/api-b/**
zuul.routes.apib.service-id=eureka-client02
zuul.routes.apib.url=http://localhost:9002
3、启动类
@EnableZuulProxy
@EnableEurekaClient
@SpringBootApplication
public class CodingApplication {public static void main(String[] args) {SpringApplication.run(CodingApplication.class, args);}
}
4、测试
浏览器访问:http://localhost:9001/api-a/api/a/test,转换后的实际地址为:http://localhost:9002/api/a/test
小结
伴随着springcloud的不断发展,zuul相关的内容在后续的版本中已经被移除了,虽然如此,zuul作为微服务曾经的重要组件对于它的掌握还是必不可少的。