一、hystrix在生产中的建议
1、保持timeout的默认值(1000ms),除非需要修改(其实通常会修改)
2、保持threadpool的的线程数为10个,除非需要更多
3、依赖标准的报警和监控系统来捕获问题
4、通过dashboards的实时监控来动态修改配置,直到满意为止
二、配置信息(default或HystrixCommandKey)最常用的几项
- 超时时间(默认1000ms,单位:ms)
- hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds
- hystrix.command.HystrixCommandKey.execution.isolation.thread.timeoutInMilliseconds
- 线程池核心线程数
- hystrix.threadpool.default.coreSize(默认为10)
- Queue
- hystrix.threadpool.default.maxQueueSize(最大排队长度。默认-1,使用 SynchronousQueue。其他值则使用 LinkedBlockingQueue。如果要从-1换成其他值则需重启,即该值不能动态调整,若要动态调整,需要使用到下边这个配置)
- hystrix.threadpool.default.queueSizeRejectionThreshold(排队线程数量阈值,默认为5,达到时拒绝,如果配置了该选项,队列的大小是该队列)
- 注意:如果maxQueueSize=-1的话,则该选项不起作用
- 断路器
- hystrix.command.default.circuitBreaker.requestVolumeThreshold(当在配置时间窗口内达到此数量的失败后,进行短路。默认20个)
- hystrix.command.default.circuitBreaker.sleepWindowInMilliseconds(短路多久以后开始尝试是否恢复,默认5s)
- hystrix.command.default.circuitBreaker.errorThresholdPercentage(出错百分比阈值,当达到此阈值后,开始短路。默认50%)
- fallback
- hystrix.command.default.fallback.isolation.semaphore.maxConcurrentRequests(调 用线程允许请求HystrixCommand.GetFallback()的最大数量,默认10。超出时将会有异常抛出,注意:该项配置对于THREAD 隔离模式也起作用)
三、监控hystrix
说明:hystrix为每一个commandKey提供了计数器。原理:
附:清晰大图
四、常见的hystrix事件类型
- run()
- SUCCESS:run()成功,不触发getFallback()
- FAILURE:run()抛异常,触发getFallback()
- TIMEOUT:run()超时,触发getFallback()
- BAD_REQUEST:run()抛出HystrixBadRequestException,不触发getFallback()
- SHORT_CIRCUITED:断路器开路,触发getFallback()
- THREAD_POOL_REJECTED:线程池耗尽,触发getFallback()
- FALLBACK_MISSING:没有实现getFallback(),抛出异常
- getFallback()
- FALLBACK_SUCCESS:getFallback()成功,不抛异常
- FALLBACK_FAILURE:getFallback()失败,抛异常
- FALLBACK_REJECTION:调用getFallback()的线程数超量,抛异常
五、Metrics storage and Dashboard
仅仅记录hystrix1.5.0及其后续版本,之前的版本的数据结构不一样。
http://www.ahlinux.com/java/18235.html
http://my.oschina.net/yu120/blog/714747
相关推荐
#### 二、Hystrix介绍 Hystrix是由Netflix开源的一个用于提高分布式系统稳定性的库。它提供了一种机制,用于控制和优化服务之间的相互调用,特别是在面对高并发和潜在故障的情况下。 ##### 功能特性 - **服务隔离...
**Hystrix 概述** Spring Cloud Hystrix 是 Netflix 开源的一个库,用于实现容错和隔离,确保在分布式系统中单个组件故障不会导致整个系统瘫痪。Hystrix 提供了断路器、线程池和队列、命令式编程模型等特性,帮助...
##概述#####Hyrax 是Scala 版本,使用 scala Futures/Promises 和 Akka Actors/ActorSystems 作为依赖弹性层。 它使用 Akka IO 来实现远程依赖。 它最初只支持 Web 服务,并使用 Spray 来处理 HTTP 请求/响应。 ...
微服务架构是一种现代软件开发的方法论,它将大型复杂应用分解为一组小的、独立的服务,每个服务都专注于单一业务功能,...通过观看"微服务架构概述"的视频教程,你将深入理解这一领域的基础概念,并逐步掌握实战技巧。
**Spring Cloud 概述** Spring Cloud 是一个基于 Spring Boot 实现的云应用开发工具集,它为开发者提供了在分布式系统(如配置管理、服务发现、断路器、智能路由、微代理、控制总线、一次性令牌、全局锁、领导选举...
#### 一、Spring Cloud概述 **Spring Cloud** 是一套完整的微服务解决方案,基于Spring Boot框架,提供了与外部系统的集成能力。它主要包括以下几个方面: 1. **Spring Cloud Stream**: 这是一种构建高度可伸缩的...
Feign概述Feign是一个声明式的REST客户端,支持基于接口的注解方式,简化了客户端配置。Spring Cloud对Feign进行了封装,使其支持SpringMVC注解。 快速入门通过引入springcloudstarteropenfeign依赖,编写Feign...
**项目概述** `projeto-spring-cloud` 是一个基于Spring Cloud框架构建的示例项目,旨在展示和实践Spring Cloud的一些核心组件,如Feign、Ribbon、Hystrix、OAuth2、JWT、服务发现服务器Eureka、API网关Zuul以及...
├2 1.1 微服务架构概述.avi ├20 5.2 Hystrix简介及简单代码示例.avi ├20 5.2Hystrix简介及简单代码事例.avi ├21 Hystrix Health Indicator及Metrics Stream.avi ├22 5.4 Hystrix Health Indicator及Metrics ...
#### 一、Spring Cloud 概述 Spring Cloud 是一个基于 Spring Boot 实现的微服务云应用开发框架,它提供了微服务开发中所需的一系列工具,包括服务发现注册、配置中心、消息总线、断路器、客户端负载均衡、智能路由...
一、Spring Cloud概述 Spring Cloud基于Spring Boot,为开发者提供了在分布式系统(如配置管理、服务发现、断路器、智能路由、微代理、控制总线、一次性令牌、全局锁、领导选举、分布式会话、集群状态)操作的开发...
一、Feign 概述 Feign 是 Netflix 开源的一个云原生的声明式 HTTP 客户端,它的设计灵感来源于 Ribbon 和 JAX-RS。Feign 的目标是让编写 HTTP 客户端变得更简单,通过注解和接口绑定,可以创建出优雅的 API。Feign ...
第一章 微服务架构概述 第二章 开始使用Spring Cloud实战微服务 第三章 服务提供者与服务消费者 第四章 服务发现与服务注册 第五章 使用Hystrix保护应用 第六章 使用Zuul构建API Gateway 第七章 Spring Cloud...
【Spring Cloud概述】 Spring Cloud是基于Spring Boot的微服务框架,它简化了构建分布式系统(如配置管理、服务发现、断路器、智能路由、微代理、控制总线、一次性令牌、全局锁、领导选举、分布式会话、集群状态)...
#### 1.1 SpringCloud概述 SpringCloud是一套基于Spring Boot实现的微服务云应用开发工具集,它提供了在分布式系统(如配置管理、服务发现、断路器、智能路由、微代理、控制总线、一次性令牌、全局锁、领导选举、...
### 微服务架构概述 微服务架构是一种将单一应用程序划分成一组小服务的开发方法,每个服务运行在其独立的进程中,服务间通过轻量级的通信机制(通常是HTTP RESTful API)进行交互。微服务架构可以解决单体应用架构...
一、Spring Cloud概述 Spring Cloud是基于Spring Boot实现的一套微服务解决方案,它为开发者提供了在分布式系统(如配置管理、服务发现、断路器、智能路由、微代理、控制总线、一次性令牌、全局锁、领导选举、分布式...
##### 4.1 Hystrix概述 Hystrix是Netflix开发的一款流行的熔断降级库,主要用于处理分布式系统中的延迟和故障问题。它通过隔离各个服务之间的访问点,减少服务间的级联故障,并提供回滚策略来增强系统的整体弹性。 ...
二、SpringCloud Rest微服务案例-总体概述 15.尚硅谷_SpringCloud_Rest微服务案例-总体概述.avi视频教程则聚焦于基于RESTful API的微服务实战,主要讲解以下知识点: 1. RESTful API设计原则:包括资源定位、HTTP...