Zuul包含了对请求的路由和过滤两个最主要的功能:
其中路由功能负责将外部请求转发到具体的微服务实例上,是实现外部访问统一入口的基础而过滤器功能则负责对请求的处理过程进行干预,是实现请求校验、服务聚合等功能的基础.Zuul和Eureka进行整合,将Zuul自身注册为Eureka服务治理下的应用,同时从Eureka中获得其他微服务的消息,也即以后的访问微服务都是通过Zuul跳转后获得。
提供: 代理+路由+过滤三大功能
注意:Zuul服务最终还是会注册进Eureka
路由基本配置
1.新建Module模块microservicecloud-zuul-gateway
2.修改pom文件
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zuul</artifactId>
</dependency>
3.新建启动类
@SpringBootApplication
@EnableZuulProxy
public class Zuul_StartSpringCloudApp {
public static void main(String[] args) {
SpringApplication.run(Zuul_StartSpringCloudApp.class, args);
}
}
4.测试
启动三个eureka集群,一个服务提供类microservicecloud-provider-dept-8001,一个路由
不用路由:http://localhost:8001/dept/get/2
使用路由:http://localhost:9527/microservicecloud-dept/dept/get/2
路由访问映射规则
修改服务的访问名称,可以通过修改yml文件实现
zuul:
routes:
mydept.serviceId: microservicecloud-dept
mydept.path: /mydept/**
原来访问通过http://localhost:9527/microservicecloud-dept/dept/get/2 ()
加上上面的配置之后:http://localhost:9527/mydept/dept/get/1,上面的也能够访问
想让原来的服务名隐藏
在原来的yml文件中添加
ignored-services: microservicecloud-dept
zuul:
ignored-services: microservicecloud-dept
routes:
mydept.serviceId: microservicecloud-dept
mydept.path: /mydept/**
单个隐藏可以配置具体的服务名,若是想隐藏所有的可以用""
ignored-services: ""
设置统一公共前缀
prefix: /demo
zuul:
prefix: /demo
ignored-services: microservicecloud-dept
routes:
mydept.serviceId: microservicecloud-dept
mydept.path: /mydept/**