繁体   English   中英

hystrixCommand批注-commandKey的用途是什么

[英]hystrixCommand annotation - what is purpose of commandKey

使用此处描述的 spring的Hystrix注释

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

   @HystrixCommand(groupKey="UserGroup", commandKey = "GetUserByIdCommand")
public User getUserById(String id) {
    return userResource.getUserById(id);
}

注意,这里的commandKey定义为GetUserByIdCommand,这与线程池有关系吗? 这是否意味着具有该命令键的任何东西都使用相同的线程池,如果是的话,这是否意味着我对具有故障回复的每个方法都拥有自己的commandKey的良好做法?

我有大约8个要在其中注释方法的类。 我将以此来注释一些类方法,但我想知道如何构造commandKeys? 我应该使用所有相同的东西,还是每个班级使用相同的东西或所有唯一的东西等?

终于找到答案了。 CommandKey用于。

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

然后,您可以在hystrix命令中使用commandKey来引用方法。 如果不使用commandKey(可选)。 然后使用方法名称作为默认名称。 因此,仅重命名命令即可。

我在这里找到了所有这些信息

  1. commandKey与线程池有关系吗?

    HystrixCommand用于监视,断路器,度量发布,缓存和其他此类用途。

    It has nothing to do with thread pool.

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

  2. 如何构造commandKeys?

    默认情况下,Commandkey的名称为命令方法名称,在您的情况下为getUserById

    You don't have to specify a CommandKey unless you want a different name for the command.

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM