版权声明:fromZjy QQ1045152332 https://blog.csdn.net/qq_36762677/article/details/85096295
官网: https://springcloud.cc/spring-cloud-dalston.html#_router_and_filter_zuul
springcloud版本: 【Finchley 版】
代理、路由和过滤Zuul |
- Zuul是Netflix的基于JVM的路由器和服务器端负载均衡器
- 将外部请求转发到具体的微服务实例上,实现外部统一入口
- 最终注册到eureka
Spring Cloud Zuul和Spring Cloud Eureka进行整合,将自身注册为Eureka服务治理下的应用,同时从Eureka中获得了所有微服务的实例信息。这就使得维护实例的工作交给服务治理框架来完成,不再需要人工介入。对于路由规则的维护,Zuul默认会将通过以服务名作为ContextPath的方式来创建路由映射,大部分情况下这么的默认设置已经可以实现我们大部分的路由需求,除了一些特殊情况(比如兼容老的URL)还需要做一些特别的配置,但是已经大大减少了运维的工作量。
Zuul应用 |
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-zuul</artifactId>
</dependency>
启动类
@EnableDiscoveryClient
@EnableZuulProxy
@SpringBootApplication
@EnableCircuitBreaker
public class ZuulApplication {
public static void main(String[] args) {
SpringApplication.run(ZuulApplication.class, args);
}
}
yml(要注册到eureka)
server:
port: 9101
spring:
application:
name: eureka-client-gateway-zuul
eureka:
instance:
instanceId: ${spring.cloud.client.hostname}:${spring.application.name}:${spring.application.instance_id:${server.port}}
lease-expiration-duration-in-seconds: 1
lease-renewal-interval-in-seconds: 2
prefer-ip-address: true
client:
service-url:
defaultZone: http://localhost:8760/eureka,http://localhost:8761/eureka
info:
app.name: gateway-zuul
启用路由后请求格式
http:// localhost:9101/eureka-client-user/user
自定义配置映射路径 |
- 正常配置
zuul:
routes:
api-a:
path: /user/**
serviceId: eureka-client-user
api-b:
path: /movie/**
serviceId: eureka-client-movie
2.屏蔽微服务名称
zuul:
#屏蔽所有 "*"
ignored-services: eureka-client-user,eureka-client-movie
prefix: /cloud # 设置前缀
routes:
api-a:
path: /user/**
serviceId: eureka-client-user
api-b:
path: /movie/**
serviceId: eureka-client-movie