5.Spring Cloud 网关Zuul使用入门
简介
Zuul是Netflix开源的网关,能够与Eureka、Ribbon、Hystrix 等组件配合使用(都是自家的)。其核心是过滤器,使用这些过滤器我们可以:动态路由、请求监控、认证鉴权、压力测试、灰度发布。
从使用角度,为全部服务提供了统一的入口,保障后台服务安全性的同时,使后台服务与客户端解耦。
上手
-
使用Idea快捷创建Spring Boot 项目,除去勾选Spring Web,Eureka Discovery Client外,额外勾选Zuul。
maven依赖
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-zuul</artifactId> </dependency>
-
启动类添加
@EnableZuulProxy
启用Zuul -
配置文件添加微服务映射
#微服务映射 zuul: routes: #自定义网关别名 user-service-api: #映射路径 path: /us/** #微服务名称,名字与其他微服务中配置的spring.application.name保持一致 serviceId: user-service business-service-api: path: /bs/** serviceId: business-service2
-
测试运行
如配置文件中所添加的,继续沿用前面几篇博客中的例子,user-service,business-service2。这里为了方便,我将eureka-server部署到了Linux服务器中,这里直接访问查看所有的服务是否已经注册到配置中心。
先访问user-service中的请求
访问business-service2中的请求
-
负载均衡
Zuul本身也是一个微服务,内置Ribbon,Hystrix。
配置负载均衡策略同博客中讲解的一致。可配置全局,配置单独的某一具体微服务。
-
熔断
Spring Cloud Zuul 内置了Hystrix,我们这里只需要实现FallBackProvider接口,实现接口中的两个方法。
这里以user-service为例:@Component public