Hystrix【参数配置及缓存】
2019-10-25 06:59:26来源:博客园 阅读 ()
Hystrix【参数配置及缓存】
1、常用参数说明
hystrix参数的详细配置可参照 https://github.com/Netflix/Hystrix/wiki/Configuration
下面是一些常用的配置:
配置项 | 默认值 | 默认属性 | 实例属性 |
隔离策略,HystrixCommandKey,如果不配置,默认为方法名 | THREAD | hystrix.command.default.execution.isolation.strategy | hystrix.command.HystrixCommandKey.execution.isolation.strategy |
超时时间,hystrixCommand命令执行超时时间,单位:毫秒 | 1000 | hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds | hystrix.command.HystrixCommandKey.execution.isolation.thread.timeoutInMilliseconds |
hystrixCommand命令执行是否开启超时 | true | hystrix.command.default.execution.timeout.enabled | hystrix.command.HystrixCommandKey.execution.timeout.enabled |
超时的时候,是否中断执行操作 | true | hystrix.command.default.execution.isolation.thread.interruptOnTimeout | hystrix.command.HystrixCommandKey.execution.isolation.thread.interruptOnTimeout |
信号量请求数,当设置为信号量隔离策略时,设置最大允许的请求数 | 10 | hystrix.command.default.execution.isolation.semaphore.maxConcurrentRequests | hystrix.command.HystrixCommandKey.execution.isolation.semaphore.maxConcurrentRequests |
CircuitBreaker设置打开fallback并启动fallback逻辑的错误比例 | 50 | hystrix.command.default.circuitBreaker.errorThresholdPercentage | hystrix.command.HystrixCommandKey.circuitBreaker.errorThresholdPercentage |
强制打开断路器,拒绝所有请求 | false | hystrix.command.default.circuitBreaker.forceOpen | hystrix.command.HystrixCommandKey.circuitBreaker.forceOpen |
当为线程隔离时,核心线程池大小 | 10 | hystrix.threadpool.default.coreSize | hystrix.threadpool.HystrixThreadPoolKey.coreSize |
当隔离策略为线程池隔离模式时,最大线程池大小配置。1.5.9版本中还需要allowMaximumSizeToDivergeFromCore为true | 10 | hystrix.threadpool.default.maximumSize | hystrix.threadpool.HystrixThreadPoolKey.maximumSize |
allowMaximumSizeToDivergeFromCore,该属性允许配置maximumSize生效 | false | hystrix.threadpool.default.allowMaximumSizeToDivergeFromCore | hystrix.threadpool.HystrixThreadPoolKey.default.allowMaximumSizeToDivergeFromCore |
在真实的项目中,一般会对超时时间、线程池大小、信号量等进行修改,具体需要根据业务,hystrix默认超时1秒,实际项目中,这个时间是肯定不够的,一般会设置5-10秒,如果有同步上传的业务,时间需要更长,如果配置了ribbon的时间,其超过时间也需要和ribbon的时间配合使用,一般情况下,ribbon的时间应短于hystrix的超时时间。
2、hystrix缓存使用
常用的注解说明:
注解 | 说明 |
@CacheResult |
使用该注解后,结果会被缓存,同时它需要和 @HystrixCommand(commandKey = "xxx") 一起使用,注解参数为cacheKeyMethod |
@CacheRemove(commandKey="xxx") |
清除缓存,需要指定commandKey,注解参数为cacheKeyMethod |
@CacheKey |
指定请求命令参数,默认使用方法所有参数作为key,注解属性为value |
一般在查询接口上使用@CacheResult,在更新接口上使用@CacheRemove删除缓存。
在使用hystrix缓存,注意事项:
- 需要开启 @EnableHystrix
- 需要初始化 HystrixRequestContext
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.web.servlet.HandlerInterceptor; import org.springframework.web.servlet.ModelAndView; import com.netflix.hystrix.strategy.concurrency.HystrixRequestContext; /** * 初始化hystrix上下文 */ public class HystrixContextInterceptor implements HandlerInterceptor { private HystrixRequestContext context; @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object arg2) { context = HystrixRequestContext.initializeContext(); return true; } @Override public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object arg2, Exception arg3) { context.shutdown(); } }
- 在指定了 HystrixCommand 的commandKey以后,在@CacheRemove也要指定commandKey
原文链接:https://www.cnblogs.com/idoljames/p/11722710.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- springboot2配置JavaMelody与springMVC配置JavaMelody 2020-06-11
- nacos~配置中心功能~springboot的支持 2020-06-10
- Maven安装与配置 2020-06-09
- Spring Boot 实现配置文件加解密原理 2020-06-08
- springboot 配置本地文件映射路径 2020-06-05
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash