Zuul
1. 概述
- Zuul包含了对请求的路由和过滤两个最主要的功能
- Zuul和Eureka进行整合,将Zuul自身注册为Eureka服务治理下的应用,同时从Eureka中获得其他微服务的信息,也即以后的访问微服务是通过Zuul跳转后获得
- Zuul服务最终还是回注册进Eureka
- 提供: 代理 + 路由 + 过滤 三大功能
2. 使用Zuul
1. 导入依赖
由于Zuul要注册到Eureka中,因此需要同时导入Eureka和Zuul的依赖
<!--Eureka-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
<version>1.4.6.RELEASE</version>
</dependency>
<!--Zuul-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zuul</artifactId>
<version>1.4.6.RELEASE</version>
</dependency>
2. 配置Zuul
server:
port: 9527
spring:
application:
name: springcloud-zuul
eureka:
client:
service-url:
defaultZone: http://eureka7001.com:7001/eureka/,http://eureka7002.com:7002/eureka/,http://eureka7003.com:7003/eureka/
instance:
instance-id: zuul_9572.com
prefer-ip-address: true
info:
app.name: wang-springcloud
company.name: wangStudy.com
zuul:
routes:
mydept:
serviceId: springcloud-provider-dept
path: /mydept/**
# ignored-services: springcloud-provider-dept #不能再使用这个路径访问了
ignored-services: "*" #隐藏全部的真实服务名
prefix: /wang #设置公共的访问前缀
我们这里使用9527端口
注意
- Zuul要注册到Eureka中,因此要配置服务名以及Eureka发现
- 在zuul的配置中,serviceId属性指定一个微服务的名字,path指定这个微服务被zuul重定向后的位置,这样就可以实现隐藏我们微服务的真实的名称
- 在zuul的配置中,ignored-services表示要隐藏的服务,指定了某个服务之后,就不能用真实的服务名访问了,提高了安全性. 我们可以用 "*" 通配符来隐藏全部的微服务名称
- 在zuul的配置中,prefix指定了前缀,一旦设定了前缀,必须加上前缀才能访问
3. 配置主启动类
package com.wang.springcloud;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.zuul.EnableZuulProxy;
@SpringBootApplication
//开启Zuul
@EnableZuulProxy
public class ZuulApplication_9527 {
public static void main(String[] args) {
SpringApplication.run(ZuulApplication_9527.class,args);
}
}
在启动类上加上 @EnableZuulProxy 注解即可使Zuul生效
3. 测试
为了使得访问更加真实,我们在hosts中将localhost配置为了www.wangStudy.com
发现,访问 http://www.wangstudy.com:9527/wang/mydept/dept/list 可以得到预期的结果
而访问不带前缀或者直接访问微服务的名称,则会报告404错误
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。