`
阅读更多

(编写不易,转载请注明:http://shihlei.iteye.com/blog/2431224)

 

一 概述

有段时间没有更新SpringCloud的文章了,目前 SpringBoot 版本 2.0.5.RELEASE,SpringCloud 的版本:Finchley SR1 ,本文继续之前的规划,介绍下 SpringCloud集成 Hystrix 断路器功能。

 

Hystrix 是 Netflix 实现的断路器模式的框架库,关于 “断路器” 和 “Hystrix” 的背景知识可以阅读之前的文章:

《 SpringCloud(四)番外篇(一):Hystrix 断路器 》

深入可以读一下:

《SpringCloud(四)番外篇(二):Hystrix 1.5.12 源码分析》

 

文档地址:https://spring.io/guides/gs/circuit-breaker/

 

二 项目规划

 

1)核心项目

spring-cloud-webfront:服务调用者,调用“时间”微服务,返回当前时间,集成“断路器”能力;

 

2)辅助项目

spring-cloud-eureka-server:提供eureka 集群,提供注册中心;

spring-cloud-hystrix-dashboard:提供Hystrix dashborad,查看hystrix matrix信息

spring-cloud-hystrix-turbine:提供hystrix matrix stream 聚合,聚合后通过 Hystrix dashborad 查看 集群的 hystrix matrix信息;

 

三 SpringCloud Hystrix使用

 

1)概述

spring-cloud-webfront:底层调用时间微服务  "/time/v1/now"(http://microservice-time:10001"),返回格式化的时间,本文主要集成“断路器”功能,如果服务无法使用,返回当前时间的毫秒数。

注:本文重点演示断路功能,所以时间服务默认不可用状态,不需要实现。

 

2)使用Demo

(1)新建springboot工程,添加依赖:
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
</dependency>

 

(2)添加@EnableCircuitBreaker 开启断路器支持:

用于SpringBoot 项目启动时,添加Hystrix支持,会扫描 @HystrixCommand 注解,代理提供熔断能力

 

package x.demo.springcloud.webfront;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.circuitbreaker.EnableCircuitBreaker;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.openfeign.EnableFeignClients;

@SpringBootApplication
@EnableCircuitBreaker
public class SpringCloudWebfrontApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringCloudWebfrontApplication.class, args);
    }
}

 

(3)实现TimeService 进行微服务调用,通过@HystrixCommand整合断路器能力:
package x.demo.springcloud.webfront.service;

public interface TimeService {
    /**
     * 获取当前时间
     * @return 当前时间,格式:yyyy-MM-dd HH:mm:ss
     */
    String now();
}

 

package x.demo.springcloud.webfront.service.impl;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@NoArgsConstructor
@AllArgsConstructor
public class ProtocolResult<T> {
    //0 成功,非0 失败
    private int code;

    //响应提示信息
    private String message;

    //响应实体
    private T body;

    public ProtocolResult(int code, String message) {
        this.code = code;
        this.message = message;
    }
}

 

Hystrix 使用:

package x.demo.springcloud.webfront.service.impl.hystrix;

import javax.annotation.Resource;

import com.netflix.hystrix.contrib.javanica.annotation.HystrixCommand;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.web.client.RestTemplate;
import x.demo.springcloud.webfront.service.TimeService;
import x.demo.springcloud.webfront.service.impl.ProtocolResult;

/**
 * Hystrix 熔断实现
 *
 */
@Service
public class TimeServiceRestClientWithHystrixImpl implements TimeService {

    @Value("${timeMisroService.v1.uri}")
    private String timeMicroServiceV1Uri;

    @Resource
    private RestTemplate restTemplate;

    /**
     * 获取当前时间
     *
     * @return 当前时间,格式:yyyy-MM-dd HH:mm:ss
     */
    @HystrixCommand(
            groupKey = "microservice-time",
            commandKey = "microservice-time.now",
            fallbackMethod = "fallbackNow")
    @Override
    public String now() {
        ProtocolResult<String> result = restTemplate.getForObject(timeMicroServiceV1Uri + "/now", ProtocolResult.class);
        return result.getBody();
    }

    /**
     * 断路器打开时的回调方法
     *
     * @return 当前时间:毫秒数
     */
    public String fallbackNow() {
        return "fallback:" + String.valueOf(System.currentTimeMillis());
    }
}

 

(4)环境配置及 Hystrix 断路器配置:修改application.yml
spring:
  profiles: Instance1
  application:
    name: webfront

server:
  port: 20001

# 自定义配置
timeMisroService:
  v1:
    uri: http://microservice-time/time/v1

# hystrix 配置
hystrix:
  # Hystrix 命令配置
  command:
    # 命令默认配置
    default:
      execution:
        isolation:
          thread:
            timeoutInMilliseconds: 100
      circuitBreaker:
        requestVolumeThreshold: 1
        errorThresholdPercentage: 50
        sleepWindowInMilliseconds: 10000
    # 指定命令配置,这里使用的是 @HystrixCommand 中的   commandKey = "microservice-time.now"(除非公共,一般不建议在配置文件中统一配置)
    microservice-time.now:
      execution:
        isolation:
          thread:
            timeoutInMilliseconds: 100
      circuitBreaker:
        requestVolumeThreshold: 1
        errorThresholdPercentage: 50
        sleepWindowInMilliseconds: 10000
  # Hystrix  线程池配置
  threadpool:
    # 线程池默认配置
    default:
      coreSize: 1
      maxQueueSize: 1
      metrics:
        rollingStats:
          timeInMilliseconds: 10000
          numBuckets: 1
    # 指定命令线程池配置,这里使用的是 @HystrixCommand 中的   groupKey = "microservice-time",
    microservice-time:
      coreSize: 5
      maxQueueSize: 5
      metrics:
        rollingStats:
          timeInMilliseconds: 10000
          numBuckets: 1

 

注:可以在@HystrixCommand 通过属性,commandProperties,threadPoolProperties 直接指定,但是不利于共享和修改,建议在yml中配置,规则如下:

 

[1]  配置Hystrix 命令

hystrix.command.default.* :Hystrix Command 默认配置,共享

hystrix.command.[commandKey].* :Hystrix 指定Command 配置,@HystrixCommand 使用该命令配置需要 属性 commandKey 值 需要和 [commandKey] 一致

 

[2] 配置Hystrix 线程池

hystrix.threadpool.default.* : Hystrix 线程池默认配置,共享

hystrix.threadpool.[groupKey].*:Hystrix 指定group 的线程池配置,@HystrixCommand 使用该线程池配置需要 属性 groupKey 值 需要和 [groupKey] 一致

 

关于 Hystrix 的配置具体意义 参见 《SpringCloud(四)番外篇(一):Hystrix 断路器》 》三 Hystrix  》 5)核心配置说明(如demo);不在赘述;

 

(5)开放Controller用于测试:
package x.demo.springcloud.webfront.web;

import javax.annotation.Resource;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import x.demo.springcloud.webfront.service.TimeService;

@RestController
@RequestMapping("/time")
public class TimeController {

    @Resource(name = "timeServiceRestClientWithHystrixImpl")
    private TimeService timeService;

    @GetMapping("/now")
    public String now() {
        return timeService.now();
    }
}

 

(6)启动验证:

四 FeignClient 集成Hystrix

 

1) 概述

FeignClient 默认集成了Hystrix,启动方法 @FeignClient 设置 “fallback” 属性为 “实现回退的类名”,并将回退类注册到 Spring 容器。

 

注:feign使用Hystrix回退能力,需要保证配置 feign.hystrix.enabled:true (false可以全局禁用Hystrix,即使指定fallback )

 

2)使用demo

package x.demo.springcloud.webfront.service.impl.feign.client;

import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.http.MediaType;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import x.demo.springcloud.webfront.service.impl.ProtocolResult;

/**
 * 实现 Circuit Breaker 的 FeignClient
 * <p>
 * 特别注意 feign 添加hystrix支持是,会有多个接口实现,spring context 不知道使用哪个进行注入,可以加入 primary = false 在指定
 */
@FeignClient(name = "microservice-time", fallback = TimeV1MicroServiceWithHystrixClient.TimeV1MirocServiceFallback.class)
public interface TimeV1MicroServiceWithHystrixClient {

    @RequestMapping(method = RequestMethod.GET, value = "/time/v1/now", consumes = MediaType.APPLICATION_JSON_VALUE)
    ProtocolResult<String> now(@RequestParam(name = "format", required = false) String format);

    /**
     * fallback方法,必须实现  @FeignClient 注释的接口
     * <p>
     * 特别注意:必须加@Component等注解,仍容器能找到并初始化bean
     */
    @Component
    class TimeV1MirocServiceFallback implements TimeV1MicroServiceWithHystrixClient {
        @Override
        public ProtocolResult<String> now(String format) {
            ProtocolResult<String> fallbackResult = new ProtocolResult<>();
            fallbackResult.setCode(-1);
            fallbackResult.setMessage("fallback");
            fallbackResult.setBody("fallback : " + String.valueOf(System.currentTimeMillis()));
            return fallbackResult;
        }
    }
}

 

注:关于Feign的使用参见:《SpringCloud(二):声明式RestClient—Feign》

 

五 Hystrix 监控

 

1) 健康指标

(1)概述

Hystrix 断路器状态(打开,半开,关闭),要查看“断路器”的健康指标,可以通过 SpringBoot actuator 的 health EndPoint获得;

 

(2)开启 actuator 监控信息服务

(a)添加依赖

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>

  

(b)配置management

修改application.yml(这里为了演示,暂不涉及actuator 的安全及详细配置,暂时全部开启)

 

management:
  endpoints:
    web:
      exposure:
        include: ["*"]
  endpoint:
    health:
      show-details: always

 

(3)查看: 访问当前应用的 “/actuator/health”

 

2)DashBoard

(1)概述

Hystrix 通过订阅 HystrixEventStream 统计 “滑动窗口内 ‘成功’、‘失败’ 的次数”,更新“断路器”状态。

Hystrix dashboard 可以通过调用 应用 开放 的 hystrix.stream , 获取实时信息并汇总,展示给我们。

 

注:hystrix.stream 是单“应用”内的,只能查看当前应用的统计信息。

 

git:https://github.com/Netflix-Skunkworks/hystrix-dashboard

 

(2)使用

[1] 创建新的SpringBoot工程:spring-cloud-hystrix-dashboard 并添加依赖

        <!-- dashboard -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-hystrix-dashboard</artifactId>
        </dependency>

 

[2] 添加注解 @EnableHystrixDashboard

package x.demo.springcloud.springcloud.hystrix.dashboard;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.hystrix.dashboard.EnableHystrixDashboard;

/**
 * Hystrix:dashboard
 */
@EnableHystrixDashboard
@SpringBootApplication
public class SpringCloudHystrixDashboardApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringCloudHystrixDashboardApplication.class, args);
    }
}

 

 [3] 修改application.yml 指定端口

server:
  port: 60001

 

(3) 启动使用

[1]欢迎界面

 


 

[2] 指定 webfront 的 /actuator/hystrix.stream

 

 

3)Turbine

(1)概述

上部分介绍,Hystrix Dashboard 可以用于监控 Hystrix 单 server 情况,分布式环境,监控某一节点,没有多大意义。

Turbine 可以将多台 server 的 /hystrix.stream 聚合成 /turbine.stream 供 dashboard 展示使用,这样就可以通过 Dashboard 监控某一集群的“断路器”信息。

 

github:https://github.com/Netflix/Turbine

 

Turbine完成聚合,需要绑定待聚合实例的hystrix.stream 信息;

SpringCloud 整合的Turbine ,简化的配置过程;通过EurekaServer在中间协调获取要监控的实例信息,以便获取 hystrix.stream。

 

所以逻辑架构如下:

 

 

(2)环境搭建

[1] 启动EurekaServer:

Eureka配置可以参见:《SpringCloud(三): 服务注册与发现,服务注册中心—Eureka 》

 

 

 

[2] 改造 webfront 增加上报

(a)添加注解,注册Eureka:

 

package x.demo.springcloud.webfront;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.circuitbreaker.EnableCircuitBreaker;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.openfeign.EnableFeignClients;

@SpringBootApplication
@EnableDiscoveryClient
@EnableCircuitBreaker
public class SpringCloudWebfrontApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringCloudWebfrontApplication.class, args);
    }
}

 

(b)修改application.yml: 添加eureka 信息用于注册,同时通过eureka.instance.metadata-map.cluster: webfront-cluster 提供该服务绑定的集群信息

WebFront Instance1,WebFront Instance2:

 

spring:
  profiles: Instance1
  application:
    name: webfront
server:
  port: 20001

# 自定义配置
timeMisroService:
  server: http://localhost:10001
  v1:
    uri: http://microservice-time/time/v1

eureka:
  client:
    service-url:
      defaultZone: http://localhost:50001/eureka/,http://localhost:50002/eureka/,http://localhost:50003/eureka/
  instance:
    instance-id: ${spring.application.name}:${spring.application.instance_id:${server.port}}
    prefer-ip-address: true
    # 所属集群,提交使用
    metadata-map:
      cluster: webfront-cluster

# Hystrix stream
management:
  endpoints:
    web:
      exposure:
        include: ["*"]
  endpoint:
    health:
      show-details: always

hystrix:
  # Hystrix 命令配置
  command:
    # 命令默认配置
    default:
      execution:
        isolation:
          thread:
            timeoutInMilliseconds: 100
      circuitBreaker:
        requestVolumeThreshold: 1
        errorThresholdPercentage: 50
        sleepWindowInMilliseconds: 10000
    # 指定命令配置,这里使用的是 @HystrixCommand 中的   commandKey = "microservice-time.now"(除非公共,一般不建议在配置文件中统一配置)
    microservice-time.now:
      execution:
        isolation:
          thread:
            timeoutInMilliseconds: 100
      circuitBreaker:
        requestVolumeThreshold: 1
        errorThresholdPercentage: 50
        sleepWindowInMilliseconds: 10000
  # Hystrix  线程池配置
  threadpool:
    # 线程池默认配置
    default:
      coreSize: 1
      maxQueueSize: 1
      metrics:
        rollingStats:
          timeInMilliseconds: 10000
          numBuckets: 1
    # 指定命令线程池配置,这里使用的是 @HystrixCommand 中的   groupKey = "microservice-time",
    microservice-time:
      coreSize: 5
      maxQueueSize: 5
      metrics:
        rollingStats:
          timeInMilliseconds: 10000
          numBuckets: 1
---
spring:
  profiles: Instance2
  application:
    name: webfront

server:
  port: 20002

# 自定义配置
timeMisroService:
  server: http://localhost:10001
  v1:
    uri: http://microservice-time/time/v1

eureka:
  client:
    service-url:
      defaultZone: http://localhost:50001/eureka/,http://localhost:50002/eureka/,http://localhost:50003/eureka/
  instance:
    instance-id: ${spring.application.name}:${spring.application.instance_id:${server.port}}
    prefer-ip-address: true
    metadata-map:
      cluster: webfront-cluster

# 启动 feign hystrix 支持
feign:
  hystrix:
    enabled: false

# Hystrix stream
management:
  endpoints:
    web:
      exposure:
        include: ["*"]
  endpoint:
    health:
      show-details: always

 

(c)启动应用

 

[2] 创建Turbine 服务器:spring-cloud-hystrix-turbine

(a)添加依赖

 

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
        <!-- turbine -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-turbine</artifactId>
        </dependency>

 

(b)添加注解

 

package x.demo.springcloud.springcloud.hystrix.turbine;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.turbine.EnableTurbine;

@EnableTurbine
@SpringBootApplication
public class SpringCloudHystrixTurbineApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringCloudHystrixTurbineApplication.class, args);
    }
}
 

(c)添加配置:修改application.yml

 

spring:
  application:
    name: turbine-server-standalone

# Eureka 集成方式
turbine:
  # appConfig 值为Eureka ServiceId 列表,用于 turbine找到 instance
  appConfig: webfront
  clusterNameExpression: metadata['cluster']
  # 集群参数,指定要监控的集群
  aggregator:
    clusterConfig: ["webfront-cluster"]

# 依赖 Eureka 进行配置
eureka:
  client:
    service-url:
      defaultZone: http://localhost:50001/eureka/,http://localhost:50002/eureka/,http://localhost:50003/eureka/
  instance:
    instance-id: ${spring.application.name}:${spring.application.instance_id:${server.port}}
    prefer-ip-address: true

 

注:

核心一:

turbine.cluster-name-expression: 指定要监控的集群信息,可以填写 metadata['cluster'],意味着从EurekaServer 拉取 turbine.aggregator.clusterConfig 指定的集群列表。

turbine.aggregator.clusterConfig: 提供想要监控的集群名称,多个可以以“,”分割;这个信息是Hystrix应用通过EurekaClient注册到Eureka上的,需要同Hystrix应用(webfront项目)配置一致。

如上webfront 配置 eureka.instance.metadata-map.cluster: webfront-cluster ,这里填写:webfront-cluster 

 

turbine.app-config:指定监控集群需要收集服务id列表(Eureka上的serviceId);

 

核心二:

Eureka 配置,会从Eureka 拉取 监控实例列表,机/hystrix.stream 的访问地址

Eureka配置可以参见:《SpringCloud(三): 服务注册与发现,服务注册中心—Eureka 》

 

(d)启动

 

2018-09-23 16:01:50.515  INFO 2048 --- [        Timer-0] c.n.t.monitor.instance.InstanceMonitor   : Url for host: http://x.x.x.x:20001/actuator/hystrix.stream webfront-cluster
。。。。。。
2018-09-23 16:01:50.518  INFO 2048 --- [        Timer-0] c.n.t.monitor.instance.InstanceMonitor   : Url for host: http:/x.x.x.x:20002/actuator/hystrix.stream webfront-cluster

 

 从启动日志中可以看到,从Eureka拉取到 webfront-cluster 集群的两个聚合地址:http://x.x.x.x:20001/actuator/hystrix.stream,http://x.x.x.x:20002/actuator/hystrix.stream(x.x.x.x 是隐藏了我的本机ip地址)

 

[3] 查看效果

(a)集群:http://localhost:60011/clusters


 

(b)聚合stram:http://localhost:60011/turbine.stream?cluster=webfront-cluster

 

 

[4] 查看聚合后dashboard:

打开dashboard:http://localhost:60001/hystrix

输入:http://localhost:60011/turbine.stream?cluster=webfront-cluster

 

 

  • 大小: 141.1 KB
  • 大小: 199 KB
  • 大小: 168 KB
  • 大小: 42.8 KB
  • 大小: 29.9 KB
  • 大小: 122.2 KB
  • 大小: 125.6 KB
  • 大小: 107.1 KB
  • 大小: 493.2 KB
分享到:
评论

相关推荐

    SpringCloud——断路器(Hystrix)

    SpringCloud——断路器(Hystrix)之Ribbon使用断路器和Feign使用断路器

    【微服务架构】SpringCloud之断路器(hystrix)

    【微服务架构】SpringCloud之断路器(hystrix)https://blog.csdn.net/u012081441/article/details/80814250

    Spring Cloud Netfix Hystrix断路器例子

    Spring Cloud Netfix Hystrix断路器例子工程。使用Spring Cloud Netflix Hystrix以及Spring RestTemplate或Spring Cloud Netflix Feign实现断路器模式。

    25-Spring Cloud断路器Hystrix1

    Spring Cloud断路器Hystrix上文讲到我们服务间调用使用Feign——声明式Web服务客户端,在分布式系统中,一个服务很可能会调用多个其他微服务,

    springCloud项目练习

    第四课: 断路器(Hystrix) 第五课: 路由网关(zuul) 第六课: 分布式配置中心(Spring Cloud Config) 第七课: 高可用的分布式配置中心(Spring Cloud Config) 第八课: 消息总线(Spring Cloud Bus) 第九课: 服务...

    SpringCloud中的断路器(Hystrix)和断路器监控(Dashboard)

    本篇主要介绍的是SpringCloud中的断路器(Hystrix)和断路器指标看板(Dashboard)的相关使用知识,需要的朋友可以参考下

    Spring boot,springCloud精选视频教程

    10.Spring Cloud中的断路器Hystrix 11.Spring Cloud自定义Hystrix请求命令 12.Spring Cloud中Hystrix的服务降级与异常处理 13.Spring Cloud中Hystrix的请求缓存 14.Spring Cloud中Hystrix的请求合并 15.Spring ...

    03Spring Cloud Hystrix:服务容错保护1

    在启动类上添加@EnableCircuitBreaker来开启Hystrix的断路器功能创建UserHystrixController接口用于调用user-se

    SpringCloud服务容错保护(Hystrix)介绍与使用示例

    SpringCloud服务容错保护(Hystrix)介绍与使用示例 在微服务架构中,一个服务可能会调用很多的其他微服务应用,虽然做了多集群部署,但可能还会存在诸如网络原因或者服务提供者自身处理的原因,或多或少都会出现请求...

    74-Spring Cloud断路器Hystrix原理读书笔记1

    2.2、否,进入3 3.2、否,进入4 5.2、否,进入6 6.2、否,至此执行成功,返回结果 7.2、否,抛异常

    SpringCloud教程

    史上最简单的SpringCloud教程 | 第四篇:断路器(Hystrix) 史上最简单的SpringCloud教程 | 第五篇: 路由网关(zuul) 史上最简单的SpringCloud教程 | 第六篇: 分布式配置中心(Spring Cloud Config) 史上最简单的Spring...

    springCloud介绍与搭建流程说明.zip

    Hystrix:熔断管理组件,实现断路器模式,倘若依赖的服务出现延迟或故障,则提供强大的容错功能。 Ribbon:客户端负载均衡的服务调用组件。 Feign:基于Ribbon和Hystrix的声明式服务调用组件。 Zuul:边缘服务工具,...

    SpringCloud断路器Hystrix原理及用法解析

    主要介绍了SpringCloud断路器Hystrix原理及用法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    积分管理系统java源码-SpringCloud-Learning:SpringCloud-Learning

    它为微服务架构中涉及的配置管理、服务治理、负载均衡、断路器、智能路由、微代理、控制总线、全局锁、决策竞选、分布式会话和集群状态管理等操作提供了一种简单的开发方式 主要的子项目 Spring Cloud Config:配置...

    Spring Cloud.docx

    Spring Cloud(五)断路器监控(Hystrix Dashboard) spring-cloud-zuul Spring Cloud(六)服务网关 zuul 快速入门 spring-cloud-zuul-filter Spring Cloud(七)服务网关 Zuul Filter 使用 spring-...

    尚硅谷SpringCloud第2季2020版.mmap

    Hystrix断路器 zuul路由网关 Gateway新一代网关 SpringCloud Config 分布式配置中心 SpringCloud Bus 消息总线 SpringCloud Stream 消息驱动 SpringCloud Sleuth 分布式请求链路跟踪 SpringCloud Alibaba入门...

    尚硅谷SpringCloud视频(最新)

    38.尚硅谷_SpringCloud_Hystrix断路器是什么 39.尚硅谷_SpringCloud_服务熔断 40.尚硅谷_SpringCloud_服务降级 41.尚硅谷_SpringCloud_服务降级熔断小总结 42.尚硅谷_SpringCloud_豪猪hystrixDashboard 43.尚硅谷_...

    SpringCloud五大组件及中间件方案报告

    讲到了Spring Cloud五大...Hystrix断路器的监控 Spring Cloud的网关 有赞网关架构 Spring Cloud Zuul 统一配置中心的架构图 Spring Cloud Config工作流程简图 全链路监控应该的功能 Spring cloud Sleth与PinPoint集成

    SpringCloudLearning_forezp.tar.gz

    史上最简单的SpringCloud教程 | 第四篇:断路器(Hystrix)(Finchley版本) 史上最简单的SpringCloud教程 | 第五篇: 路由网关(zuul)(Finchley版本) 史上最简单的SpringCloud教程 | 第六篇: 分布式配置中心(Spring ...

Global site tag (gtag.js) - Google Analytics