路由网关(zuul)

动态路由 监控与审查 身份认证与安全

创建项目

  • 添加依赖
1
2
3
4
5
6
7
8
9
10
11
12
<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-hystrix</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-zuul</artifactId>
</dependency>
  • 启动类
1
2
3
4
5
6
7
8
9
10
11
12
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.zuul.EnableZuulProxy;

@EnableZuulProxy
@SpringBootApplication
public class LoanadminZuulApplication {

public static void main(String[] args) {
SpringApplication.run(LoanadminZuulApplication.class, args);
}
}
  • 配置文件bootstrap.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
server:
port: 8080

spring:
application:
name: loanadmin-zuul

eureka:
client:
serviceUrl.defaultZone: http://www.wekri.com/eureka
zuul:
routes:
base:
path: /admin/base/**
serviceId: loanadmin-base
stripPrefix: false
apply:
path: /admin/apply/**
serviceId: loanadmin-apply
baidu:
path: /baidu/**
url: http://www.baidu.com

当stripPrefix=false的时候(http://127.0.0.1:8080/admin/base/list -> http://192.168.1.100:8080/admin/base/list)
当stripPrefix=true的时候 (http://127.0.0.1:8080/admin/apply/list -> http://192.168.1.101:8080/list)

路由规则

  • 默认路由

如果微服务太多了,配置起来也比较麻烦。zuul会默认代理eureka上的所有微服务。
默认路由:

1
http://zuul_addr:zuulport/eureka上微服务serviceId/**
  • 自定义路由
    配置格式为: zuul.routes.微服务Id = 指定路径,
    如: zuul.routes.user-service = /user/**
    这样,我们后面就可以通过/user/来访问user-service所提供的服务,比如之前的访问可以更改为: http://localhost:8280/user/users/admin。 所要配置的路径可以指定一个正则表达式来匹配路径,因此,/user/*只能匹配一级路径,但是通过/user/**可以匹配所有以/user/开头的路径。

  • 忽略服务
    配置格式为: zuul.ignored-services=微服务Id1,微服务Id2…,多个微服务之间使用逗号分隔。如:
    zuul.ignored-services=user-service,product-service

本文源码


路由网关(zuul)
https://www.wekri.com/springcloud/springCloudZuul/
Author
Echo
Posted on
June 7, 2018
Licensed under