Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java hystrixCommand注释-commandKey的用途是什么_Java_Spring_Hystrix - Fatal编程技术网

Java hystrixCommand注释-commandKey的用途是什么

Java hystrixCommand注释-commandKey的用途是什么,java,spring,hystrix,Java,Spring,Hystrix,使用spring的Hystrix注释 我想知道commandKey参数是什么。在以下上下文中,我想知道此参数的含义: @HystrixCommand(groupKey="UserGroup", commandKey = "GetUserByIdCommand") public User getUserById(String id) { return userResource.getUserById(id); } 注意这里的commandKey被定义为GetUserByIdComm

使用spring的Hystrix注释

我想知道commandKey参数是什么。在以下上下文中,我想知道此参数的含义:

   @HystrixCommand(groupKey="UserGroup", commandKey = "GetUserByIdCommand")
public User getUserById(String id) {
    return userResource.getUserById(id);
}
注意这里的commandKey被定义为GetUserByIdCommand,这与线程池有关吗?这是否意味着使用该命令键的任何东西都使用相同的线程池?如果是,这是否意味着我使用的每个方法都有自己的commandKey,这是一个很好的实践


我有大约8个类,我想在其中注释方法。我将用这个注释一些类方法,但我想知道如何构造commandKeys?我应该使用所有相同的,或者每个类使用相同的,或者所有唯一的等等。

最终找到了答案。CommandKey用于

默认情况下,命令键的名称为命令方法名称:For 例如,getUserById,但您可以将其重命名为getUserById命令

然后可以使用hystrix命令中的commandKey来引用这些方法。如果不使用commandKey(可选)。然后将方法名称用作默认名称。因此,只需重命名命令即可

我找到了所有这些信息

  • commandKey与线程池有关吗

    HystrixCommand用于监控、断路器、度量发布、缓存和其他此类用途

    它与线程池无关。

    通常,每个CommandGroupKey都有自己的线程池,因此任何一组命令都不能使其他命令无法运行。HystrixCommand可以通过注入ThreadPoolKey显式配置线程池。默认CommandGroupKey是带注释方法的类名

  • 如何构造命令键

    默认情况下,Commandkey的名称是command方法名称,在您的示例中,它是getUserById

    除非您想为命令指定不同的名称,否则不必指定CommandKey。


  • 该键代表用于监视、断路器、度量发布、缓存和其他的HystrixCommand。这不一定与线程池有关吗?如果我对我注释的所有方法使用唯一的commandkey,它将生成许多新的线程池,对吗?如果你不提供线程池key,那么Hystrix将使用组键来控制线程池。如果它们都不可用,默认情况下只有1个线程池,默认线程数为10。这是我一直在寻找的答案,但我希望你有文档来备份它或其他什么。你可以创建一个答案供考虑。