什么是ZUUL?
1.ZUUL是一种网关技术。
2.所有的URL均不对外暴露,只留下网关作为对外的唯一接口。
3.请求使用网关对外提供的路由,经过网关的解析转发到对应接口,进行调度和过滤。
4.高级使用:
1).路由规则
2).熔断机制
3).服务聚合
总结:ZUUL通过路由规则配置,隐蔽接口,通过相应的规则,将请求转发到对应的接口。
ZUUL的搭建:(新建一个Eureka客户端项目:)
1.添加依赖:
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-zuul</artifactId>
<version>2.2.10.RELEASE</version>
</dependency>
<dependency>
<groupId>com.netflix.zuul</groupId>
<artifactId>zuul-core</artifactId>
<version>1.3.0</version>
</dependency>
</dependencies>
2.配置文件:
server:
port: 9100
spring:
application:
name: zuul
eureka:
client:
service-url:
defaultZone: http://localhost:8761/eureka/ #当前zuul网关想要注册到哪个注册中心
#路由规则定义。这里定义两种路由规则route1和route2
#,代表访问网关/test01/**或/test02/**时。
#路由到服务名为 eurekaservice1或 eureka
#service2中的服务集群去。
zuul:
routes:
baidu:
#自定义名称 支持配置多个
defin-url-route:
#配置开放出来的RUL (所有/zuul-test开头的请求都会被转发到注册中心id为;eruekaClient的服务中)
path: /zuul-test/**
#注册中心的服务名称 转发到哪个服务
serviceId: eurekaClient
#访问 http://localhost:port/zuul-test/test ===> 转发到 eurekaClient上的test
3.开启网关特性:
1.启动类添加@EnableZuulProxy注解,开启网关特性。
2.启动服务,如果服务注册到Eureka注册中心后即表示搭建成功。
4.ZUUL访问:
1.通过以上配置达到如下效果:
#访问 http://localhost:port/zuul-test/test ===> 转发到 eurekaClient上的test
5.待完善:
1.路由配置
2.单实例配置
3.多实例配置
4.服务路由配置
5.服务路由默认规则
6.自定义路由映射规则
7.路径匹配
8.忽略表达式
9.路由前缀