微服务学习笔记八 Spring Cloud Hystrix容错机制

Hystrix 容错机制
在不改变各个服务器调用关系的前提下,针对错误情况进行预先处理。
设计原则:
1)服务隔离机制
2)服务降级机制
3)熔断机制
4)提供实时的监控和报警功能
5)提供实时的配置修改功能
Hystrix数据监控需要结合Spring Cloud Actuator来使用,Actuator提供了
对服务的健康监控、数据统计,可以通过hystrix.stream节点获取监控的请求数据,
提供了可视化的监控界面。
创建maven模块
pom.xml

>
    >
        >org.springframework.cloud>
        >spring-cloud-starter-netflix-eureka-client>
        >2.0.2.RELEASE>
    >

    >
        >org.springframework.cloud>
        >spring-cloud-starter-openfeign>
        >2.0.2.RELEASE>
    >

    >
        >org.springframework.boot>
        >spring-boot-starter-actuator>
        >2.0.7.RELEASE>
    >

    >
        >org.springframework.cloud>
        >spring-cloud-starter-netflix-hystrix>
        >2.0.2.RELEASE>
    >

    >
        >org.springframework.cloud>
        >spring-cloud-starter-netflix-hystrix-dashboard>
        >2.0.2.RELEASE>
    >
>

创建配置文件 application.yml

server:
  port: 8060
spring:
  application:
    name: hystrix
eureka:
  client:
    service-url:
      defaultZone: http://localhost:8761/eureka/
  instance:
    prefer-ip-address: true
feign:
  hystrix:
    enabled: true
management:
  endpoints:
    web:
      exposure:
        include: 'hystrix.stream'

创建启动类

package com.shuang;


import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.circuitbreaker.EnableCircuitBreaker;
import org.springframework.cloud.netflix.hystrix.dashboard.EnableHystrixDashboard;
import org.springframework.cloud.openfeign.EnableFeignClients;

@SpringBootApplication
@EnableFeignClients
@EnableCircuitBreaker
@EnableHystrixDashboard
public class HystrixApplication {
    public static void main(String[] args) {
        SpringApplication.run(HystrixApplication.class,args);
    }
}

注解说明:
@EnableCircuitBreaker:声明启用数据监控
@EnableHystrixDashboard:声明启用可视化数据监控
Handler

package com.shuang.controller;

import com.shuang.entity.Student;
import com.shuang.feign.FeignProviderClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.Collection;

@RestController
@RequestMapping("/hystrix")
public class HystrixHandler {
    @Autowired
    private FeignProviderClient feignProviderClient;

    @GetMapping("/findAll")
    public Collection<Student> findAll(){
        return feignProviderClient.findAll();
    }

    @GetMapping("/index")
    public String index(){
        return feignProviderClient.index();
    }
}

启动成功后,访问http://localhost:8060/actuator/hystrix.stream 可以监控到请求数据
访问 http://localhost:8060/hystrix,可以看到可视化的监控界面,输入要监控的地址节点,
即可看到该节点的可视化数据监控。

微服务学习笔记八 Spring Cloud Hystrix容错机制_第1张图片
feign提供了服务熔断,与笔记7相同,这里就不啰嗦了

你可能感兴趣的:(Java,spring,cloud)