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

  • 相关阅读:
    【转】myeclipse中连接mysql数据库
    struts2入门示例(hello world)
    【转】MyEclipse第一个Servlet程序
    学习马士兵的struts2/hibernate/spring中遇到的问题及其解决方法
    typeof关键字
    SHLVL--shell终端深度
    stack
    queue
    getopt--parse command line options
    怎样实时判断socket连接状态?
  • 原文地址:https://www.cnblogs.com/lovechengyu/p/10270213.html
一二三 - 开发者的网上家园