zoukankan      html  css  js  c++  java
  • Hystrix-命令名称、分组以及线程池划分

    命令名称:

      1.1 以继承的方式实现Hystrix命令使用类名作为默认的命令名称,我们也可以在构造函数中通过Setter静态类来设置

            

      1.2 为了保存每个命令分配的Setter分配,你也可以像这样缓存Setter

      

    命令分组和线程池划分:

      通过设置命令组,Hystrix会根据组来组织和统计命令的告警、仪表盘等信息。一定要设置命令组,因为除了根据组来实现统计外,Hystrix命令默认的线程划分也是根据命令分组来实现的。默认情况下,Hystrix会让相同组名的精灵使用同一个线程池,所以我们需要在创建Hystrix命令时为其指定命令组名来实现默认的线程池划分。

      Hystrix还提供了HystrixThreadPoolKey来对线程池进行设置,通过它我们可以实现更细粒度的线程池划分,比如

       

      通常情况下,尽量通过HystrixThreadPoolKey的方式来指定线程池的划分,而不是通过组名默认的方式,因为多个不同的命令可能从业务逻辑上来看属于同一个组,但是往往从实现本身上需要跟其他命令进行隔离。

      当我们使用@HystrixCommand注解的时候,只需要设置commandKey、groupKey以及threadPoolKey属性就可以设置命令名称、分组以及线程划分。

       @HystrixCommand(commandKey = "getUserId", groupKey = "UserGroup", threadPoolKey = "getUserByIdThread")
        public String getUserId(String name) {
            .....
        }

    参考:

    [1]Github,https://github.com/Netflix/Hystrix/wiki/How-it-Works

     [2] 《SpringCloud微服务实战》,电子工业出版社,翟永超

  • 相关阅读:
    最近的一些心理活动
    object_c函数多个返回值
    nslayoutConstraint
    判断一些常用的东西
    color 的一些处理
    最近的心理活动
    加载不同的nib文件
    Be a person
    按钮居左显示
    SQLite错误码
  • 原文地址:https://www.cnblogs.com/happyflyingpig/p/8117309.html
Copyright © 2011-2022 走看看