SpringCloud路由网关Zuul
在父工程目录下创建一个maven项目,在这个maven项目中添加依赖
<dependencies>
<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>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot</artifactId>
</dependency>
</dependencies>
在配置文件application.yml中添加以下配置
server:
port: 8080
spring:
application:
name: service-zuul
eureka:
client:
serviceUrl:
defaultZone: http://localhost:7010/eureka/
zuul:
routes:
feign:
path: /feign/**
serviceId: feign-service
ribbon:
path: /ribbon/**
serviceId: ribbon-service
host:
connect-timeout-millis: 3000
socket-timeout-millis: 3000
#添加代理头
add-proxy-headers: true
#Zuul为了安全起见,过滤了敏感头部,默认移除了"Cookie", “Set-Cookie”, “Authorization”
#不填,则不拦截
sensitive-headers:
启动类
@EnableZuulProxy
@EnableEurekaClient
@EnableDiscoveryClient
@SpringBootApplication
public class ZuulApplication {
public static void main(String[] args) {
SpringApplication.run(ZuulApplication.class, args);
}
}
zuul过滤器
@Component
public class MyFilter extends ZuulFilter {
@Override
public String filterType() {
return "pre";
}
@Override
public int filterOrder() {
return 0;
}
@Override
public boolean shouldFilter() {
return true;
}
@Override
public Object run() throws ZuulException {
return null;
}
}
依次启动Eureka、config-server、ribbon、feign、再启动本服务
在浏览器上访问localhost:8080/ribbon/hi?name=qwe或localhost:8080/feign/hi?name=qwe
得到的返回值相同