zoukankan      html  css  js  c++  java
  • Hystrix 中线程池隔离与信号量隔离区别

    Hystrix的隔离策略有两种:分别是线程隔离和信号量隔离。

    THREAD(线程隔离):使用该方式,HystrixCommand将会在单独的线程上执行,并发请求受线程池中线程数量的限制。
    SEMAPHORE(信号量隔离):使用该方式,HystrixCommand将会在调用线程上执行,开销相对较小,并发请求受信号量的个数的限制。

    配置:hystrix.command.default.execution.isolation.strategy 隔离策略,默认是Thread, 可选Thread|Semaphore

    (1) 什么是线程池隔离?

    为每一个服务接口单独开辟一个线程池,保持与其他服务接口线程的隔离,提高该服务接口的独立性和高可用。

    (2) 线程池隔离的优点是什么?

    (3) 线程池隔离的缺点是什么?

     

    线程池隔离和信号量隔离的区别

    (1) 线程池隔离与信号量隔离有什么区别?

     (2) 什么情况下使用线程池隔离?

    (3) 什么情况下使用信号量隔离?

     

    hystrixCommand线程
       线程池隔离:
          1、调用线程和hystrixCommand线程不是同一个线程,并发请求数受到线程池(不是容器tomcat的线程池,而是hystrixCommand所属于线程组的线程池)中的线程数限制,默认是10。
          2、这个是默认的隔离机制
          3、hystrixCommand线程无法获取到调用线程中的ThreadLocal中的值
       信号量隔离:
          1、调用线程和hystrixCommand线程是同一个线程,默认最大并发请求数是10
          2、调用数度快,开销小,由于和调用线程是处于同一个线程,所以必须确保调用的微服务可用性足够高并且返回快才用

    注意:如果发生找不到上下文的运行时异常,可考虑将隔离策略设置为SEMAPHONE。

  • 相关阅读:
    【MySQL】学生成绩
    【MySQL】统计累计求和
    【MySQL】查询不在表中的数据
    【MySQL】排名函数
    【Python】数据处理分析,一些问题记录
    【Github】如何下载csv文件/win10如何修改txt文件为csv文件
    【Windows】github无法访问/hosts文件只能另存为txt
    【C/C++】拔河比赛/分组/招商银行
    【C/C++】金币
    【C/C++】旋转数组的最小数字/ 剑指offer
  • 原文地址:https://www.cnblogs.com/ming-blogs/p/14596721.html
Copyright © 2011-2022 走看看