从实战的角度谈微服务(五):使用Zuul创建微服务网关、添加熔断
一、简介
Zuul 是 Netflix 开源的微服务网关,Spring Cloud 对 Zuul 进行了整合和增强。在 SpringCloud 体系中,Zuul 担任着网关的角色,对发送到服务端的请求进行一些预处理,比如安全验证、动态路由、负载分配等。
二、配置步骤
主要分三步:
- 依赖包引入
- 配置文件修改
- 启动类添加注解
三、依赖包引入
在pom.xml文件新引入依赖包
<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>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
四、配置文件修改
eureka:
client:
serviceUrl:
defaultZone:http://localhost:8761/eureka/
server:
port:8769
spring:
application:
name:service-zuul
zuul:
routes:
api-a:
path:/api-a/**
serviceId:service-ribbon
api-b:
path:/api-b/**
serviceId:service-feign
以上,url为/api-a/**的路由转发到application的name为service-ribbon服务包
url为/api-b/**的路由转发到application的name为service-feign服务包。
五、修改项目启动类
application配置添加如下注解
@EnableZuulProxy
@EnableEurekaClient
如下图
添加熔断-针对某一个服务
创建熔断处理类
ProducerFallback 实现接口FallbackProvider
重写getRoute方法,返回对应服务的name
重写fallbackResponse方法,处理相对应的结果
开发工作着,生活快乐着,留下总结,相互交流,共同进步