Zuul路由网关
Zuul
- zuul包含了对请求的路由和过滤的两个主要的功能
- 路由功能负责将外部请求转发到具体的微服务实例上,是实现外部访问统一入口的基础
- 过滤器对请求的处理进行干预,请求校验,服务聚合等功能的基础
- Zuul和Eureka整合,注册在Eureka服务下,从Eureka中获取其他微服务的消息
- 以后访问微服务通过Zuul跳转后获得
真是的微服务地址隐藏起来
Demo
-
Zuul-9527
-
主要流程:
- 导入两个依赖文本,zuul、Eureka
- 启动类开启zuul支持
- 配置
-
<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> </dependency>
-
开启zuul服务支持
-
@SpringBootApplication @EnableZuulProxy public class Zuul9527Application { public static void main(String[] args) { SpringApplication.run(Zuul9527Application.class, args); } }
-
配置application
-
server.port=9527 spring.application.name=zuul-9527 eureka.client.service-url.defaultZone:http://localhost:7001/eureka/ #http://localhost:9527/provider-8001/test zuul.routes.mydept.service-id=provider-8001 #对接的服务 zuul.routes.mydept.path=/mydept/** #使用的别名 zuul.ignored-services="*" #排除/mudept以外的别名 zuul.prefix=/haoyun #设置前缀 #http://localhost:9527/haoyun/mydept/test
-
不配置这些之前,需要通过,zuul路径后加服务的applicationName加请求来访问
-
http://localhost:9527/provider-8001/test
-
这样会导致微服务的名称暴露
-
在zuul.routes中有很多的设置
-
是一个map参数
-
可以设置的选项
-
为了防止多个zuul的冲突可以加入前缀
-
所以现在访问的格式是
-
zuul地址:端口/前缀/微服务的别名/请求
-
http://localhost:9527/haoyun/mydept/test