SpringCloud_learn05_Zuul
Zuul是什么
Zuul路由基本配置
Zuul路由访问映射规则
一、Zuul是什么
Zuul包含了对请求的路由和过滤两个最主要的功能:
其中路由功能负责将外部请求转发到具体的微服务实例上,是实现外部访问统一入口的基础。而过滤器功能则负责对请求的处理过程进行干预,是实现请求校验、服务聚合等功能的基础.
Zuul和Eureka(注册中心)进行整合,将Zuul自身注册为Eureka服务治理下的应用,同时从Eureka中获得其他微服务的消息,也即以后的访问微服务都是通过Zuul跳转后获得。
注意:Zuul服务最终还是会注册进Eureka(注册中心)
三大功能:代理+路由+过滤
二、Zuul路由基本配置
1.新建cloud-zuul-9527模块
2.GAV坐标
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.xx.discovery</groupId>
<artifactId>springcloud-nepxion-discovery</artifactId>
<version>1.0.1</version>
</parent>
<artifactId>cloud-zuul-9527</artifactId>
<dependencies>
<!-- zuul路由网关 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zuul</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<version>1.5.0.RELEASE</version>
</dependency>
<!-- actuator监控 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency><!-- 引入自己定义的commons通用包,可以使用Dept部门Entity -->
<groupId>com.xx.discovery</groupId>
<artifactId>cloud-commons</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jetty</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
</dependency>
<!-- 热部署插件 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>springloaded</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
</dependencies>
</project>
3.Yaml
server:
port: 9527
spring:
application:
name: cloud-zuul-gateway
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848
4.主启动类
@SpringBootApplication
@EnableZuulProxy
public class Zuul_9527_StartSpringCloudApp
{
public static void main(String[] args)
{
SpringApplication.run(Zuul_9527_StartSpringCloudApp.class, args);
}
}
5.启动测试
5.1 启动一个后端服务,访问:http://localhost:8001/dept/get/1
5.2 启动zuul项目,访问:http://localhost:9527/cloud-provider/dept/get/1
三、Zuul路由访问映射规则
1.代理原来的后端微服务名称,修改yaml文件
zuul:
# 隐藏所有微服务的原始名称
ignored-services: "*"
routes:
# 代理的微服务名称KEY
mydept.serviceId: cloud-provider
# 代理后的名称
mydept.path: /mydept/**
那么原访问路径:http://localhost:9527/cloud-provider/dept/get/1 访问到的就是ERROR PAGE
新使用的访问路径:http://localhost:9527/mydept/dept/get/1
2.设置统一公共前缀
zuul:
# 设置统一公共前缀
prefix: /juwenzhe
新使用的访问路径:http://localhost:9527/juwenzhe/mydept/dept/get/1