从实战的角度谈微服务(五):使用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方法,处理相对应的结果

原文地址:https://www.cnblogs.com/lovechengyu/p/10270213.html