Hystrix

断路器:避免了服务雪崩的问题。

在分布式系统中,服务与服务之间的相互依赖调用错综复杂

可能出现某个服务因为一些异常或者调用超时

从而长时间线程阻塞,导致整个系统出现雪崩问题。

Hystrix提供了熔断器的功能,执行fallback方法,快速返回一个友好提示,这样可以避免长时间线程阻塞(这种叫做服务降级)

Hystrix有什么功能?

防雪崩(整个调用链路被拖垮),具备服务降级,服务熔断,依赖隔离,监控(Hystrix Dashboard)

什么是服务熔断? 什么是服务降级? https://blog.csdn.net/qq_37312838/article/details/82966209

服务降级是服务内部出现异常,每个请求都会触发服务降级,执行fallback方法,返回一个友好提示

服务熔断是具有周期性的,在一定时间内,服务请求失败次数达到一个阈值时,会触发熔断打开

熔断打开之后,所有的请求都会执行fallback方法,返回一个有好的提示

一个周期过后,会再次判断是否打开或关闭熔断

我们来实现一个在SpringCloud集成Hystrix,以及访问Hystrix可视化界面案列

spring cloud版本为Greenwich.SR3

spring-boot版本为2.1.9.RELEASE

1.在消费者服务项目工程的pom.xm引入依赖

org.springframework.cloud    spring-cloud-starter-netflix-hystrixorg.springframework.cloud    spring-cloud-starter-netflix-hystrix-dashboard

2.启动类加上注解

@EnableCircuitBreaker//开启对hystrix熔断机制的支持

@EnableHystrixDashboard//hystrix的可视化界面

3.启动类中加上这个

/**

* hystrix仪表盘

* @return

*/

@Bean

public ServletRegistrationBean getServlet(){

HystrixMetricsStreamServlet streamServlet = new HystrixMetricsStreamServlet();

ServletRegistrationBean registrationBean = new ServletRegistrationBean(streamServlet);

registrationBean.setLoadOnStartup(1);

registrationBean.addUrlMappings("/hystrix.stream");

registrationBean.setName("HystrixMetricsStreamServlet");

return registrationBean;

}

4.在controller层中的方法上加上@HystrixCommand,不然被无法出现仪表盘

5.启动项目,先访问http://localhost:8201/hystrix 8201是消费者服务的端口号

一定要记得使用谷歌浏览器,不用谷歌浏览器简直会把你气死,不用谷歌浏览器不配玩代码

6.特别要注意我第一个框里输入的东西,http://localhost:8201/hystrix后面加了个 .stream, 然后点击按钮

7.去另一个地址栏访问一下带有@HystrixCommand这个注解的接口

比如我访问 http://localhost:8201/dept/list,回到步骤6的那个页面,可以看到

hystrix 页面_《SpringCloud微服务之Hystrix组件》相关推荐

  1. SpringCloud微服务:Eureka组件之服务注册与发现

    一.Eureka基本架构 1.Eureka角色结构图 角色职责如下: 1).Register:服务注册中心,它是一个Eureka Server ,提供服务注册和发现功能. 2).Provider:服务 ...

  2. SpringCloud微服务架构分布式组件如何共享session对象

    参考文章: https://www.cnblogs.com/fengli9998/p/7881331.html https://blog.csdn.net/dsen726/article/detail ...

  3. hystrix 单独使用_Spring cloud微服务架构-Hystrix工作原理(微服务故障熔断)

    流程图 下图显示了通过Hystrix向服务依赖项请求时发生的情况: 以下各节将更详细地说明此流程: 1.构造一个HystrixCommand或HystrixObservableCommand对象 第一 ...

  4. SpringCloud微服务,euraka、feign、hystrix组件学习

    SpringCloud 1 eureka 1.1 eureka基本概念 eureka主要包含两个组件:Eureka Server 和 Eureka Client. eureka server(注册中心 ...

  5. Spring Cloud构建微服务架构-Hystrix依赖隔离

    依赖隔离 "舱壁模式"对于熟悉Docker的读者一定不陌生,Docker通过"舱壁模式"实现进程的隔离,使得容器与容器之间不会互相影响.而Hystrix则使用该 ...

  6. 学习笔记:SpringCloud 微服务技术栈_实用篇②_黑马旅游案例

    若文章内容或图片失效,请留言反馈.部分素材来自网络,若不小心影响到您的利益,请联系博主删除. 前言 学习视频链接 SpringCloud + RabbitMQ + Docker + Redis + 搜 ...

  7. Java服务超时保护_五、服务保护-Hystrix

    服务之间的调用,很有可能会遇到服务之间调用超时的情况,此时我们可以用到一个很好用的技术:Hystrix.具体可以了解我的该标签下得第二篇博文二.SpringCloud微服务架构, 一.背景 在一个分布 ...

  8. Spring Cloud构建微服务架构-Hystrix断路器

    断路器 断路器模式源于Martin Fowler的Circuit Breaker一文."断路器"本身是一种开关装置,用于在电路上保护线路过载,当线路中有电器发生短路时," ...

  9. 学习笔记:SpringCloud 微服务技术栈_实用篇①_基础知识

    若文章内容或图片失效,请留言反馈.部分素材来自网络,若不小心影响到您的利益,请联系博主删除. 前言 学习视频链接 SpringCloud + RabbitMQ + Docker + Redis + 搜 ...

最新文章

  1. 最新开源Faster-LIO:快速激光IMU里程计
  2. Javascript中的深拷贝和浅拷贝
  3. [转载]Yacc基础
  4. Python命令行自动补全和记录历史命令
  5. Cocos Creator JS 获取当前日期与时间
  6. zabbix 4.2官方自动监控网络服务端口脚本
  7. 66. 查询分页数据
  8. windows下客户端连接上马上会断开连接_zookeeper系列客户端的骚操作amp; Curator使用...
  9. mojoportal学习——文章翻译之使用Artisteer快捷的创建模板
  10. E-prime 行为实验设计
  11. 公式经纬度换算度分秒,度分秒换算经纬度
  12. 人生八境——古诗词中读懂人生境界
  13. linux 安装与卸载ProFTPd
  14. 巧用TP-LINK无线路由器连接IPv6网络
  15. 软件开发之版本控制方式
  16. traceback说明
  17. Django 之ORM(一)
  18. XCTF 攻防世界 MISC杂项 高手进阶区
  19. RDD操作(超详细)
  20. Linux系统基本知识(4)

热门文章

  1. community 计算模块度_聚苯乙烯泡沫模块可以用在哪些建筑上?
  2. 求[100,9999]区间的超级素数,c语言编程,程序中含数组,2010计算机等级考试二级C语言预测题...
  3. css grid随页面大小_CSS中的间距知识总结,前端开发中各种间距的使用及优缺点
  4. mac打开chm文件_Mac无法打开TXT文件怎么办?Mac无法打开txt文档的解决方法
  5. java中fileter用法,Java 8 使用Lambda表达式的FileFilter示例
  6. java类加载器分类_Java 类加载器的种类
  7. python 自动化 在日历中选择时间-Python中Selenium选择日期(选择日历控件)的方法...
  8. java .equal_Java 中的equals()方法
  9. py导入包异常跳出_14-0-包的介绍及使用
  10. 交互式python解释器_从python脚本中调用python交互式解释器