博客
关于我
Hystrix线程隔离策略与传播上下文
阅读量:181 次
发布时间:2019-02-28

本文共 861 字,大约阅读时间需要 2 分钟。

Hystrix的隔离策略主要有两种:线程隔离和信号量隔离。选择哪种策略取决于具体的使用场景和需求。

线程隔离(THREAD)是一种常用的隔离方式。使用这种方法时,HystrixCommand会在单独的线程上执行,线程池中的线程数量会限制并发请求的数量。在大多数情况下,Hystrix默认使用线程隔离,因为这种方式除了网络超时外,还提供了额外的保护层。

信号量隔离(SEMAPHORE)则相对轻量化。使用这种方式时,HystrixCommand会在调用线程上执行,开销较小,并发请求的数量受信号量的个数限制。通常情况下,只有在负载非常高时(如每个实例每秒调用数百次),才建议使用信号量隔离。这种情况下,线程隔离的开销会较高。需要注意的是,信号量隔离通常不适用于网络调用的隔离。

Hystrix提供了通过commandProperties属性来配置隔离策略。例如,可以在注解中指定如下配置:

@HystrixCommand(fallbackMethod = "stubMyService",     commandProperties = {        @HystrixProperty(name="execution.isolation.strategy", value="SEMAPHORE")    })

如果需要传播线程本地上下文到@HystrixCommand,可以通过配置使其在同一线程上执行,避免找不到上下文的运行时异常。例如:

@HystrixCommand(fallbackMethod = "stubMyService",     commandProperties = {        @HystrixProperty(name="execution.isolation.strategy", value="SEMAPHORE")    })

总的来说,Hystrix的默认隔离策略是线程隔离,除非有特殊需求,否则无需特别配置。仅在遇到极端高负载场景或需要更高效的资源利用时,才建议考虑信号量隔离。

转载地址:http://purj.baihongyu.com/

你可能感兴趣的文章
PEP8规范
查看>>
PEPM Cookie 远程代码执行漏洞复现(XVE-2024-16919)
查看>>
Percona Server 5.6 安装TokuDB
查看>>
SpringBoot(十四)整合MyBatis
查看>>
percona-xtrabackup 备份
查看>>
SpringBoot集成OpenOffice实现doc文档转html
查看>>
ROS中机器人的强化学习路径规划器
查看>>
perl---2012学习笔记
查看>>
Perl6 必应抓取(1):测试版代码
查看>>
Perl的基本語法
查看>>
perl输出中文有乱码
查看>>
Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password). 大数据ssh权限问题 hadoop起不来 hadoopssh错
查看>>
PermissionError:Python 中的 [Errno 13]
查看>>
PermissionError:[Errno 13] 权限被拒绝:‘/manage.py‘
查看>>
Permutation
查看>>
perspective意思_2020年12月英语四级词汇讲解丨考点归纳:perspective
查看>>
PE文件,节头有感IMAGE_SECTION_HEADER
查看>>
PE查找文件偏移地址
查看>>
PE知识复习之PE的导入表
查看>>
PFX(Parallel Framework) and Traditional Multithreading
查看>>