Zuul路由网关含义
Zuul包含了请求路由和过滤两个追主要的功能:
其中路由功能主要负责请求转发到具体的微服务实例上,是实现外部访问统一入口的基础,而过滤器功能则负责对请求处理过程进行干涉,是实现请求校验,服务聚合等功能的基础。Zuul和Eureka进行整合后,将Zuul自身注册到未Eureka服务治理下的应用,同时从Eureka获得其他微服务的消息,即以后访问微服务都是通过Zuul来跳转的。
- Zuul服务最终会被注册到Eureka中
- 提供 代理+路由+过滤三大功能
如上图:最外层代表Eureka,黄色部分为注册进去的Zuul,只有将Zuul注册进去才能去发现其他微服务,每次访问微服务,都必须通过Zuul里进行访问。
1.添加Zuul相关依赖:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zuul</artifactId>
<version>1.4.6.RELEASE</version>
</dependency>
2。编写配置
server:
port: 9527
spring:
application:
name: springcloud-zuul
eureka:
client:
service-url:
defaultZone: http://localhost:7002/eureka/,http://localhost:7001/eureka/
instance:
instance-id: zuul9527.com
prefer-ip-address: true
3.开启注解
4.启动测试
通过配置的9527端口进行访问,相当于本地访问,避免暴露真实的微服务
可以通过微服务具体名字来访问:http://www.wangstudy:9527/springcloud-provider/dept/getAll
另外,在配置文件中可以定义其他配置
1.通过定义其他名称来代替真实的微服务名称,即通过源路径和新路径都可以访问
zuul:
routes:
mydept.serviceId: springcloud-provider-dept
mydept.path: /mydept/**
即通过 /mydept/** 代替 springcloud-provider-dept 访问路径变为:http://www.wangstudy:9527 /mydept/dept/getAll
2.指定某个路径不可以访问(可以使用通配符映射批量路径)
zuul:
ignored-services: springcloud-provider-dept
即设置成无法通过服务名访问
zuul:
ignored-services: "*" #不能在使用这个路径访问, “*”代表隐藏全部的项目
3.设置公共前缀,即访问路径必须加上此前缀
zuul:
prefix: /wang #设置公共前缀
访问路径前要加上设置的公共前缀才允许访问,即访问路径变为http://www.wangstudy:9527 /wang/mydept/dept/getAll