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

  • 相关阅读:
    .NET Core VS Code 环境配置
    系统架构正交分解法
    面向接口可扩展框架之“Mvc扩展框架及DI”
    发送和接收数据包
    Easticsearch通信方式_API
    Web Api集成Swagger
    NET MVC RazorEngine 解析模板生成静态页
    NET单元测试的艺术
    NET平台机器学习组件-Infer.NET
    ActiveMQ相关背景(转)
  • 原文地址:https://www.cnblogs.com/lovechengyu/p/10270213.html
Copyright © 2020-2023  润新知