文章目录
简介
路由是微服务架构不可或缺的一部分。例如,/可能被映射到您的Web应用程序,/api/users被映射到用户服务以及/api/shop被映射到商店服务。 Zuul是Netflix基于JVM的路由器和服务器端负载均衡器。
Zuul功能如下:
- Authentication - 认证
- Insights - 审查监控
- Stress Testing - 压力测试
- Canary Testing - 金丝雀测试
- Dynamic Routing - 动态路由
- Service Migration - 服务迁移
- Load Shedding - 负载均衡
- Security - 安全
- Static Response handling - 静态响应处理
- Active/Active traffic management - 动态流量管理
Zuul的规则引擎使规则和过滤器基本上可以用任何JVM语言编写,并具有对Java和Groovy的内置支持。
配置属性
zuul.max.host.connections已由两个新属性替换,zuul.host.maxTotalConnections并zuul.host.maxPerRouteConnections分别默认为200和20。
ExecutionIsolationStrategy所有路由 的默认Hystrix隔离模式()为SEMAPHORE。zuul.ribbonIsolationStrategy可以更改为THREAD是否首选该隔离模式。
快速开始
依赖导入
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-zuul</artifactId>
</dependency>
具体版本依赖可以去start.spring.io/查看。
代码示例
使用@EnableZuulProxy注解来开启代理。代理使用Ribbon通过服务发现来定位后端服务实例。并且所有请求在 hystrix command中执行。所以当断路器打开时,代理将不会重试连接后端服务。
注意:Zuul starter不包含服务发现客户端,所以想要使用服务发现功能,需要提供一个服务发现客户端(比如Eureka)
@Configuration
@EnableZuulProxy
public class ZuulConfig {
}
配置文件
zuul:
routes:
laker:
path: /laker/**
url: http://httpbin.org
请求:http://localhost:8080/laker/get 将被路由到 httpbin.org/get。
QQ群【837324215】
关注我的公众号【Java大厂面试官】,回复:常用工具、资源等关键词(更多关键词,关注后注意提示信息)获取更多免费资料。
公众号也会持续输出高质量文章,和大家共同进步。