动态路由 监控与审查 身份认证与安全
创建项目
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); } }
|
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
本文源码