首页 > 其他分享 >16.微服务hystrix解析部署使用全流程

16.微服务hystrix解析部署使用全流程

时间:2024-09-29 16:51:45浏览次数:8  
标签:hystrix Hystrix 16 springframework 熔断 org 解析 添加

目录

1、什么是hystrix?

2、Hystrix作用

3、Hystrix使用场景

4、准备工作

5、应用

1、引入依赖

2、开启Hystrix

3、添加熔断

6、添加仪表盘【了解,功能单一使用少】

添加依赖

添加配置类HystrixConfig

启动项目,访问如下地址

​编辑

注意:


1、什么是hystrix?

是一个做熔断的框架,当程序被高并发访问时可能会造成微服务的宕机,hystrix可以熔断微服务之间通信。防止后台服务发生雪崩。

2、Hystrix作用

  • 熔断

  • 查看微服务请求状态

3、Hystrix使用场景

是在微服务架构下才有意义,做各个微服务通信熔断的。

  • 并发和负载量如果都不大,可用可不用,一旦负载过大,一定要用熔断。

  • 看业务需求,如果对熔断的需求比较简单,选用Hystrix,如果需求复杂,可用选用sentinel(sentinel功能比较丰富,比如限流,比如可以设置服务器限流,一秒钟只处理多少个请求,超过这个请求熟练的 ,就自动熔断了)。

4、准备工作

【1.启动nacos和redis】

【2.以openfeign代码为例子】在此链接

微服务 OpenFeign 解析部署使用全流程-CSDN博客

openfeign-Score工程(没有代码改变)先启动之后断开(模拟宕机),

openfeign-User工程(修改一下工程的注册名字就可以)。

spring.application.name=hystrixdemo

运行效果:

【开启Score工程:】

【关闭Score工程】

5、应用

1、引入依赖

在User工程里添加下面的依赖

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

2、开启Hystrix

在User工程的启动类上添加开启Hystrix的注解

@EnableHystrix

此时完成上述两个操作后,再次关闭Score工程,页面也是报错,但不是“连接超时”的错误,而是“熔断类型”的错误。为了让用户体验度好一些,报错信息不暴露给用户,我们完成下面的编码。

3、添加熔断

  @Autowired
    private IUserService userService;

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

    public Result infoHystrix() {
        return Result.error().setMessage("被熔断了");
    }

在result中添加此方法

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

如果发生了熔断,那么执行注解中fallbackMethod定义的方法。

在application.yml配置文件添加

feign:
  hystrix:
    enabled: true

开启feign的hystrix做熔断,默认是开启的,需要知道有这个配置,在开发中可能会用到。

有延迟可以在这里看还在不在

【连接成功:】【开启Score工程:】

【连接失败:】【关闭Score工程:】

6、添加仪表盘【了解,功能单一使用少】

添加依赖

在user工程里添加如下依赖:

<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>

添加配置类HystrixConfig

在user工程里添加如下配置类:直接粘贴就可以,是固定写法。

package com.jr.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;
    }

}

启动类添加注解

@EnableHystrixDashboard

启动项目,访问如下地址

地址1:http://localhost:67/actuator/hystrix.stream    里面的端口号看自己的user项目

地址2:http://localhost:67/hystrix                               里面的端口号看自己的user项目

第一个地址是用来在仪表盘中配置的,第二个地址是访问仪表盘的。

在访问仪表盘之前先访问一下接口,Hystrix是懒加载,不访问接口第一个请求地址会一直输出ping

先来这里访问一下

注意:

熔断 与 连接成功 状态之间的延迟很大,如果想模拟两个状态之间的切换,一定要将【两个项目】都重新启动开。

标签:hystrix,Hystrix,16,springframework,熔断,org,解析,添加
From: https://blog.csdn.net/m0_71240584/article/details/142635479

相关文章

  • CAS原子类:AtomicLongArray源码解析
    AtomicLongArray内部维护了一个int类型的数组,需要先复习下数组对象的在内存中的结构,这对接下来对数组类型原子类的理解至关重要。一、数组对象的内存结构我们运行以下代码并将数组对象的内存结构通过JOL工具打印出来,关于这部分知识,参考之前的文章:深入理解Java对象结构publiccl......
  • 深入解析网络通信的四大关键要素:网卡、MAC地址、IP地址、子网掩码与端口
    文章目录深入解析网络通信的四大关键要素:网卡、MAC地址、IP地址、子网掩码与端口**1.网卡(NetworkInterfaceCard,NIC)**关键知识点:联系与区别:**2.MAC地址(MediaAccessControlAddress)**关键知识点:联系与区别:**3.IP地址(InternetProtocolAddress)**关键知识......
  • CF1648D Serious Business题解
    题目链接关键:DP状态的设计\(dp[i]\)表示走到\((2,i)\)的最小价值。转移分类讨论只用一个区间\(i\)从\([li,x]\)选择位置向下拐\(dp[i]=max_{li\lek\lex}(sum[1][k]+sum[2][x]-sum[2][k-1]+v[i])\)使用别的区间显然转移点小于\(li\),不然用一个区间即可。\(dp[i]=max_......
  • getBeansOfType源码解析
    org.springframework.beans及org.springframework.context这两个包是SpringIoC容器的基础,其中重要的类有BeanFactory,BeanFactory是IoC容器的核心接口,其职责包括:实例化、定位、配置应用程序中的对象及建立这些对象间的依赖关系。ApplicationContext作为BeanFactory的子类,在Bean管......
  • Unity实战案例全解析:RTS游戏的框选和阵型功能(4)阵型功能
    前篇:Unity实战案例全解析:RTS游戏的框选和阵型功能(3)生成范围检测框+重置框选操作-CSDN博客本案例来源于unity唐老狮,有兴趣的小伙伴可以去泰克在线观看该课程我只是对重要功能进行分析和做出笔记分享,并未无师自通,吃水不忘打井人本案例的实现流程图 本节实现效果分析......
  • Spring Cloud- Hystrix
    SpringCloudHystrix熔断与降级在微服务架构中,每个服务都是独立运行的,如果某个服务出现故障或者响应时间过长,会影响整个系统的稳定性。为了防止这样的情况,SpringCloud提供了Hystrix作为熔断器,确保服务的可用性。通过Hystrix,我们可以实现:熔断:当某个服务长时间不可用......
  • Hystrix详细解释
    Hystrix详细解释1.背景与概念在微服务架构中,系统通常由许多独立的服务组成,每个服务之间通过网络进行通信。由于网络的不确定性,以及服务之间存在的依赖关系,单个服务的故障或响应延迟可能会影响整个系统的稳定性,甚至导致级联故障(即一个服务的失败可能会引发多个其他服务的......
  • 推出TMS320VC5416GWS120、TMS320VC5416PGE160、TMS320VC5416ZWS160定点数字信号处理器
    系列概述:TMS320VC5416定点数字信号处理器(DSP)基于先进的改进型哈佛架构打造,具有一条程序存储器总线和三条数据存储器总线。该处理器采用具有高并行能力的算术逻辑单元(ALU)、特定于应用的硬件逻辑、片上存储器和附加片上外设。高度专业化的指令集是TMS320VC5416操作灵活性和速度的基......
  • 代码随想录算法训练营Day16 | 513.找树左下角的值、112.路径总和、113.路径总和Ⅱ、10
    目录513.找树左下角的值112.路径总和113.路径总和Ⅱ106.从中序与后序遍历序列构造二叉树105.从前序与中序遍历序列构造二叉树513.找树左下角的值题目513.找树左下角的值-力扣(LeetCode)给定一个二叉树的根节点root,请找出该二叉树的最底层最左边节点的值。假......
  • 基于Java&MYSQL&Android的商品比价软件设计与实现20516-计算机毕设定制原创选题推荐(附
                                                 目 录摘要1绪论1.1开发背景1.2研究现状1.3论文结构与章节安排2 商品比价软件APP系统分析2.1可行性分析2.2......