Spring Cloud 微服务笔记(六)Spring Cloud Hystrix
Spring Cloud Hystrix
Hystrix是一个延迟和容错库,旨在隔离远程系统、服务和第三方库,阻止链接故障,在复杂的分布式系统中实现恢复能力。
一、快速入门
1)依赖:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
</dependency>
2)启用断路模式
@SpringBootApplication
@EnableHystrix
@EnableDiscoveryClient
public class ClientApplication {
public static void main(String[] args) {
SpringApplication.run(ClientApplication.class, args);
}
}
3)降级
@Component
public class UserService implements IUserService {
@Override
@HystrixCommand(fallbackMethod = "defaultUser")
public String getUser(String username) throws Exception {
if (username.equals("spring")) {
return "Right user.";
} else {
throw new Exception();
}
}
/**
* 调用该方法返回预设友好错误
* */
public String defaultUser(String username) {
return "Use the default user.";
}
}
在Feign中默认是自带Hystrix功能的,在老版本中是默认打开的,从最近几个版本中开始默认
关闭了,所以需要通过配置文件打开它。
二、Hystrix Dashboard
Hystrix Dashboard仪表盘是根据系统一段时间内发生的请求情况来展示的可视化面板,
这些信息是每个HystrixCommand执行过程中的信息。
依赖:
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-hystrix-dashboard</artifactId>
</dependency>
<!-- <dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
</dependency> -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
</dependencies>
启用:
SpringBootApplication
@EnableDiscoveryClient
@EnableHystrixDashboard
public class HystrixDashboardApplication {
public static void main(String[] args) {
SpringApplication.run(HystrixDashboardApplication.class, args);
}
}
三、Hystrix异常处理机制
Hystrix的异常处理中,有5种出错的情况会被fallback所截获:
1)FAILURE:执行失败,抛出异常。
2)TIMEOUT:执行超时。
3)SHORT_CIRCUITED:断路器打开。
4)THREAD_POOL_REJECTED:线程池拒绝。
5)SEMAPPHORE_REJECTED:信号量拒绝。
Spring Cloud 微服务笔记(六)Spring Cloud Hystrix的更多相关文章
- Spring Cloud 微服务五:Spring cloud gateway限流
前言:在互联网应用中,特别是电商,高并发的场景非常多,比如:秒杀.抢购.双11等,在开始时间点会使流量爆发式地涌入,如果对网络流量不加控制很有可能造成后台实例资源耗尽.限流是指通过指定的策略削减流量, ...
- Spring Cloud微服务笔记(三)服务治理:Spring Cloud Eureka快速入门
服务治理:Spring Cloud Eureka 一.服务治理 服务治理是微服务架构中最为核心和基础的模块,它主要用来实现各个微服务实例的自动化注册与发现. 1.服务注册: 在服务治理框架中,通常会构 ...
- Spring Cloud微服务笔记(一)微服务概念
微服务概念 一.什么是微服务架构 微服务,是一个小的.松耦合的分布式服务. 为什么需要微服务: 1)单体系统部署在一个进程中,修改了一个小功能,为了部署上线就会影响其他功能. 2)单体应用各个功能模块 ...
- Spring Cloud微服务笔记(二)Spring Cloud 简介
Spring Cloud 简介 Spring Cloud的设计理念是Integrate Everything,即充分利用现有的开源组件, 在它们之上设计一套统一的规范/接口使它们能够接入Spring ...
- spring cloud微服务实践六
本片我们就来认识下spring cloud中的zuul组件. 注:这一个系列的开发环境版本为 java1.8, spring boot2.x, spring cloud Greenwich.SR2, ...
- Spring Cloud 微服务笔记(七) Zuul入门
Zuul入门 Zuul是从设备和网站到后端应用程序所有请求的前门,为内部服务提供可配置的对外URL到服务的 映射关系,基于JVM的后端路由器.其具备一下功能: 1)认证与授权 2)压力控制 3)金丝雀 ...
- Spring Cloud微服务笔记(五)Feign
Feign 一.Feign概述 Feign是一个声明式的Web Service客户端.在Spring Cloud 中使用Feign,可以做到 使用HTTP请求访问远程服务,就像调用本地方法一样,同时它 ...
- Spring Cloud微服务笔记(四)客户端负载均衡:Spring Cloud Ribbon
客户端负载均衡:Spring Cloud Ribbon 一.负载均衡概念 负载均衡在系统架构中是一个非常重要,并且是不得不去实施的内容.因为负载均衡对系统的高可用性. 网络压力的缓解和处理能力的扩容的 ...
- Spring Cloud 微服务六:调用链跟踪Spring cloud sleuth +zipkin
前言:随着微服务系统的增加,服务之间的调用关系变得会非常复杂,这给运维以及排查问题带来了很大的麻烦,这时服务调用监控就显得非常重要了.spring cloud sleuth实现了对分布式服务的监控解决 ...
随机推荐
- mysql MHA扩展haproxy搭建从库只读负载均衡
[环境介绍] 系统环境:Red Hat Enterprise Linux 7 + 5.7.18 + MHA version 0.57 MHA架构中从库之间的负责均衡可选择mysql_route& ...
- 【C#第一天】数据相关
程序的基本任务:对数据进行处理. 数据分为常量和变量. 变量本质上是内存的空间,用来存储信息. 数据类型:本质上是数据的存储方式及其能参与运算的抽象. 数据类型分两大类:值类型(Value Type) ...
- idea integrate project
idea的integrate project功能,版本控制工具:svn 之前我对这个功能的误解太深了,这里特别记录一下这个功能的使用,首先上图 先看这里的source1和source2,里面填的是sv ...
- 使用 “mini-css-extract-plugin” 提取css到单独的文件
一.前言 我们在使用webpack构建工具的时候,通过style-loader,可以把解析出来的css通过js插入内部样式表的方式到页面中,插入的结果如下: <style> .wrappe ...
- jmeter和jdk的安装教程
jmeter和jdk的安装教程 1:先下载安装jdk并且配置环境变量,配置环境变量的步骤如下: 右击计算机图标--点击属性--点击高级系统设置--点击环境变量后添加jdk的环境变量 a.系统变量→新建 ...
- scrollview 嵌套imageview显示长图
起初使用代码如下:但是图片显示不全,上半截被截 <ScrollView android:layout_width="match_parent" android:layout_ ...
- 基于注解的SpringMVC自定义DispatcherServlet配置
通过重载AbstractAnnotationConfigDispatcherServletInitializer实现类的customizeRegistration()方法来自定义DispatcherS ...
- DotNet 资源大全(转)
awesome-dotnet 是由 quozd 发起和维护.内容包括:编译器.压缩.应用框架.应用模板.加密.数据库.反编译.IDE.日志.风格指南等. https://github.com/jo ...
- 【interview】汉诺塔学递归
https://www.cnblogs.com/yanlingyin/archive/2011/11/14/2247594.html https://www.cnblogs.com/dmego/p/5 ...
- jmeter知识总结(一)
Apache JMeter是一款纯java编写负载功能测试和性能测试开源工具软件.相比Loadrunner而言,JMeter小巧轻便且免费,逐渐成为了主流的性能测试工具,是每个测试人员都必须要掌握的工 ...