Hystrix学习

系列文章目录

JavaSE
基础知识、数据类型学习万年历项目代码逻辑训练习题
代码逻辑训练习题方法、数组学习图书管理系统项目
面向对象编程:封装、继承、多态学习封装继承多态习题常用类、包装类、异常处理机制学习
集合学习IO流、多线程学习仓库管理系统JavaSE项目
员工管理系统、多表查询、反射实现DBHelper学习DML、DDL、数据库对象学习
JavaWeb
网络编程、各种标签、CSS学习ECMAScript、BOM学习DOM、jQuery学习
Servlet、JSP、Cookie、Ajax学习融资管理系统JavaWeb项目
框架
MyBatis框架学习逆向工程、Spring框架IOC、AOP学习SpringMVC框架学习
SpringBoot框架学习招聘网站框架项目Vue介绍、窗体内操作、窗体间操作学习
Vue路由配置、网络请求访问框架项目、element组件介绍学习标准管理系统Vue项目
微服务
Linux安装、Nginx反向代理、负载均衡学习Docker学习Jenkins学习
Nexus学习Spring Security学习RabbitMQ学习
Redis学习MongoDB学习MongoDB学习
Nacos学习Spring Session学习Spring Gateway学习
JSR 303学习OpenFeign学习Hystrix学习


前言

本文我们要讲述:
Hystrix
通过网盘分享的文件:SpringSession——OpenFeign.zip
链接: https://pan.baidu.com/s/1uKEYyQ80RGMnDsoa5j9v5Q?pwd=tmm5 提取码: tmm5
在下攸攸太上。


一、Hystrix介绍

Hystrix是一个用于处理分布式系统的延迟和容错的开源库。其主要作用是通过控制服务之间的通讯,从而对延迟和故障提供了强大的支持。

1. Hystrix介绍

Hystrix是一个用于处理分布式系统的延迟和容错的开源库,它的核心目标是防止分布式系统中的雪崩效应。当某个服务发生故障时,故障可能会向下游服务传播,最终导致整个系统的崩溃。Hystrix通过引入熔断器的概念,允许您对延迟和故障进行控制,从而提高系统的弹性和可靠性。

2. Hystrix的作用

熔断:当某个服务出现故障时,Hystrix可以熔断对该服务的请求,防止故障向下游传播,从而减少系统的崩溃风险。
查看微服务请求状态:Hystrix可以提供对微服务请求状态的监控和统计,帮助您了解服务的健康状况和性能表现。

3. Hystrix使用场景

Hystrix主要适用于微服务架构下的场景,特别是在面对高并发和复杂的微服务通信时更为重要。
在高并发和负载下,Hystrix可以帮助应对突发的请求压力,防止因为高负载导致系统崩溃。
根据业务需求,如果对熔断的需求相对简单,可以选择使用Hystrix。但如果需求更为复杂,可以考虑使用Sentinel,Sentinel功能更加丰富,包括限流、熔断等功能。

二、Hystrix代码实现

1. 项目基础

本项目基于OpenFeign的两个项目实现,可以在下面的网盘链接取到
SpringSession——OpenFeign.zip
可以看我之前的OpenFeign学习文章,里面会有介绍

以下更改均在demo-session-01内更改,demo-session-02无需任何改动,如需改动,会特别标出

2. 开启Nacos和Redis环境

docker start nacos
docker start redis-6379

在这里插入图片描述

3. 添加依赖

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

4. 更改项目名(可不更改)

application.properties配置文件内配置了项目名,更改为:

spring.application.name=hystrixdemo

5. 开启注解

在SpringBootMain启动类中

@EnableHystrix

在这里插入图片描述

6. 添加熔断函数

更改UserController类下的info方法,添加infoHystrix方法

    @GetMapping
    @HystrixCommand(fallbackMethod = "infoHystrix") //一旦熔断了,就去执行infoHystrix方法。
    public Result info(){
        UserDto userDto=userService.info();
        return Result.ok().put("data",userDto);
    }
    public Result infoHystrix() {
        return Result.error().setMessage("被熔断了");
    } 

在这里插入图片描述

7. 添加setMessage方法

在Result工具类中,添加setMessage方法

    public Result setMessage(String message){
        this.message = message;
        return this;
    }

8. 添加配置信息

在application.yml配置文件中添加如下配置信息

feign:
  hystrix:
    enabled: true

9. 运行demo-session-01后运行demo-session-02

在这里插入图片描述
关闭demo-session-02项目,刷新页面
在这里插入图片描述

三、仪表盘

1. 添加依赖

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

2. 添加配置类

package com.jjy.config;

import com.netflix.hystrix.contrib.metrics.eventstream.HystrixMetricsStreamServlet;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import javax.servlet.http.HttpServlet;

@Configuration
public class HystrixConfig {

    @Bean
    public ServletRegistrationBean<HttpServlet> httpServletServletRegistrationBean() {
        ServletRegistrationBean<HttpServlet> result = new ServletRegistrationBean<>(new HystrixMetricsStreamServlet());
        result.addUrlMappings("/actuator/hystrix.stream");
        return result;
    }
}

3. 启动类添加注解

SpringBootMain启动类内添加如下注解

@EnableHystrixDashboard

在这里插入图片描述

4. 启动项目、访问网址

先访问项目地址http://127.0.0.1:100/user
在这里插入图片描述
访问http://localhost:100/hystrix,出现如下页面
在这里插入图片描述
长条框中输入http://localhost:100/actuator/hystrix.stream
Delay默认2000ms;
Title随意写。
在这里插入图片描述
点击Monitor Stream按钮后,不断刷新项目http://127.0.0.1:100/user
在这里插入图片描述
关闭demo-session-02项目后,不断刷新项目http://127.0.0.1:100/user
在这里插入图片描述
我们可以访问http://localhost:100/actuator/hystrix.stream,里面是这样的
在这里插入图片描述


总结

本文讲述了:
Hystrix:解决熔断问题
在下攸攸太上,所有扣我的人,我都会诅咒她,三天之内吃米线拉稀。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

攸攸太上

感谢支持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值