1:SpringCloud中使用:
1.1:加入依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-hystrix</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-hystrix-dashboard</artifactId>
</dependency>
1.2:启动类上添加
@SpringBootApplication
@EnableHystrixDashboard
@EnableCircuitBreaker
//@EnableHystrix
1.3:Controller上配置
在Controller的方法上添加Hystrix的配置,形如:
@HystrixCommand(fallbackMethod = "error", commandProperties = {
@HystrixProperty(name="execution.isolation.strategy", value = "THREAD"),
@HystrixProperty(name = "execution.isolation.thread.timeoutInMilliseconds", value = "4000"),
@HystrixProperty(name = "circuitBreaker.requestVolumeThreshold", value = "10"),
@HystrixProperty(name = "circuitBreaker.errorThresholdPercentage", value = ”50")
}, threadPoolProperties = {
@HystrixProperty(name = "coreSize", value = "1"),
@HystrixProperty(name = "maxQueueSize", value = "10"),
@HystrixProperty(name = "keepAliveTimeMinutes", value = "1000"),
@HystrixProperty(name = "queueSizeRejectionThreshold", value = "8"),
@HystrixProperty(name = "metrics.rollingStats.numBuckets", value = "12"),
@HystrixProperty(name = "metrics.rollingStats.timeInMilliseconds", value = "1500")
})
Hystrix支持两种方式定义HystrixCommand,一种是将类继承自HystrixCommand类,重写run方法,另一种是在方法头上写注解的方式,使用注解的方式代码会比较清晰,将Hystrix代码和业务代码隔离开
2: DashBoard
2.1: 概述
Hystrix自带了DashBoard,如果监控单个实例,可以很方便的通过Hystrix的dashboard进行查看运行情况,直接进入http://localhost:8080/hystrix
Hystrix Dashboard共支持三种不同的监控方式,依次为:
- 1:默认的集群监控:通过URLhttp://turbine-hostname:port/turbine.stream开启,实现对默认集群的监控。
- 2:指定的集群监控:通过URLhttp://turbine-hostname:port/turbine.stream?cluster=[clusterName]开启,实现对clusterName集群的监控。
- 3:单体应用的监控:通过URLhttp://hystrix-app:port/hystrix.stream开启,实现对具体某个服务实例的监控。
前两者都对集群的监控,需要整合Turbine才能实现
2.2: 示例如下
- Delay:该参数用来控制服务器上轮询监控信息的延迟时间,默认为2000毫秒,可以通过配置该属性来降低客户端的网络和CPU消耗。
- Title:该参数对应了头部标题Hystrix Stream之后的内容,默认会使用具体监控实例的URL,可以通过配置该信息来展示更合适的标题。
- 监控信息的左上部分找到两个重要的图形信息:一个实心圆和一条曲线。
(1)实心圆:共有两种含义。它通过颜色的变化代表了实例的健康程度,它的健康度从绿色、黄色、橙色、红色递减。该实心圆除了颜色的变化之外,它的大小也会根据实例的请求流量发生变化,流量越大该实心圆就越大。所以通过该实心圆的展示,就可以在大量的实例中快速的发现故障实例和高压力实例。
(2)曲线:用来记录2分钟内流量的相对变化,可以通过它来观察到流量的上升和下降趋势。
相关推荐
基于这样的背景下,我开源了本示例项目,方便大家快速上手Spring Boot、Spring Cloud 。 每个示例都带有详细的介绍文档、作者在使用过程中踩过的坑、解决方案及参考资料,方便快速上手为你提供学习捷径,少绕弯路...
根据提供的文件信息,我们可以推断出这是一套关于Spring Cloud的教学资源。接下来,我们将围绕“尚硅谷最新...通过学习这些视频,不仅可以快速上手 Spring Cloud 的核心组件,还能了解到更多实际开发中的最佳实践。
【SpringCloud项目Demo】是一个基于SpringCloud框架的示例项目,旨在帮助开发者理解和学习如何在实际应用中使用SpringCloud...对于初学者来说,这是一个极好的学习资源,能够帮助他们快速上手SpringCloud并进行实践。
周阳老师制作的“SpringCloud2018第一季思维导图”是针对Spring Cloud学习的重要参考资料,它详细梳理了Spring Cloud的核心组件和技术体系,包括Eureka、Ribbon、Feign、Hystrix以及Zuul等关键模块,旨在帮助学习者...
《Spring Boot Demo Master:SpringCloud入门实践指南》 在当今的微服务架构中,Spring Cloud以其强大的服务治理能力,成为了开发者构建分布式系统的重要选择。本文将深入探讨名为"spring-boot-demo-master"的...
【标题】"基于SpringCloud的预约上门维修服务系统"是一个综合性的项目,它结合了Java后端技术、SpringBoot框架、SSM(Spring、SpringMVC、MyBatis)架构以及微信小程序作为前端交互平台。这个系统旨在为用户提供便捷...
《SpringCloud Alibaba + Vue 线上团购项目:构建分布式微服务系统》 在现代互联网应用开发中,微服务架构已经成为主流,它将大型复杂应用分解为一系列小而独立的服务,每个服务都能独立部署、扩展和维护。Spring...
SpringBoot学习Demo是一个用于教学和实践的项目,它展示了Spring Boot框架的核心特性和常用配置,帮助开发者快速理解和上手这个强大的Java开发工具。Spring Boot是由Pivotal团队开发的,旨在简化Spring应用的初始...
它通过提供默认配置来简化 Spring 的配置,使得开发者能够快速上手并构建生产级的应用。在“Springboot开发学习路径目录大纲”这个压缩包中,包含了学习 Spring Boot 开发的详细路径和大纲,这将帮助初学者系统地...
【SpringBootDemo-master】压缩包文件是一个基于Spring Boot框架的示例项目,旨在帮助开发者快速理解和上手Spring Boot。Spring Boot是由Pivotal团队提供的全新框架,其设计目标是用来简化新Spring应用的初始搭建...
SpringCloud为开发者提供了在分布式系统(如配置管理、服务发现、断路器、智能路由、微代理、控制总线、一次性令牌、全局锁、领导选举、分布式会话、集群状态)中快速构建一些常见模式的工具。这两个技术的结合,...
1. **Spring Boot入门**:介绍Spring Boot的安装与环境配置,包括如何创建第一个Spring Boot项目,以及如何使用Spring Initializr快速初始化项目结构。 2. **起步依赖与自动配置**:解释Spring Boot的起步依赖和...
3. **微服务开发**:讲解如何使用Spring Boot构建微服务,包括服务发现(如Eureka)、服务注册、API Gateway(如Zuul或Spring Cloud Gateway)、熔断机制(Hystrix)和服务间的通信(Ribbon或Feign)。 4. **安全...
4. **Cloud**:Spring Cloud为基于Spring Boot的应用提供了微服务治理的解决方案,如Eureka、Zuul、Ribbon、Hystrix等。 5. **Swagger**:用于生成API文档,便于前后端协作和接口测试。 **四、新手练习源码分析** ...