一、什么是Zuul
Zuul是Netflix开源的微服务网关,核心是一系列过滤器。这些过滤器可以完成以下功能。
- 所有微服务的入口。进行分发。
- 身份认证和安全。拦截不合法请求。
- 监控。更加全面收集请求。
- 动态路由。动态将请求分发到不同的后端集群。
- 压力测试。可以逐渐增加对后端的流量,进行测试。
- 负载均衡。也是用ribbon。
- 限流。比如每秒只放行10000请求,第10001次就不让访问了
- 服务熔断。所有拦截尽可能前置,熔断也算拦截的一种。
二、配置使用
1、依赖
<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>
2、需要配置介入Eureka服务器
3、启动类添加@EnableZuulProxy注解
4、负载均衡,默认是轮询
#consumer是服务ID
consumer:
ribbon:
NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule
5、路由端点
# 调试的时候,看网关请求的地址,以及 映射是否正确。网关请求有误时,可以通过此处排查错误
management:
endpoints:
web:
exposure:
include: '*'
endpoint:
routes:
enabled: true
health:
show-details: always
enabled: true
三、配置网关指定微服务的访问路径
1、通过服务名配置
# 虚拟虚拟主机名 这个consumer和provider是serviceid
zuul:
routes:
consumer: /con/**
provider: /pvd/**
2、自定义地址映射
zuul:
routes:
consumer:
path: /con/**
url: http://www.baidu.com
3、自定义负载均衡
zuul:
routes:
consumer:
path: /con/**
service-id: consumer
provider:
path: /pvd/**
service-id: provider
prefix: /xin
consumer:
ribbon:
listOfServers: localhost:7905,localhost:7906
provider:
ribbon:
listOfServers: localhost:7903,localhost:7904
ribbon:
eureka:
enabled: false
4、其他配置
zuul:
# 网关前缀
prefix: /xin
# 忽略那些微服务
ignored-services=user-provider: consumer
# 带上前缀请求
strip-prefix: false
标签:网关,Zuul,请求,Netflix,provider,zuul,consumer,ribbon
From: https://www.cnblogs.com/xinay/p/17746163.html