Java hystrixCommand注释-commandKey的用途是什么
使用spring的Hystrix注释 我想知道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
@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(可选)。然后将方法名称用作默认名称。因此,只需重命名命令即可 我找到了所有这些信息
它与线程池无关。
通常,每个CommandGroupKey都有自己的线程池,因此任何一组命令都不能使其他命令无法运行。HystrixCommand可以通过注入ThreadPoolKey显式配置线程池。默认CommandGroupKey是带注释方法的类名除非您想为命令指定不同的名称,否则不必指定CommandKey。
该键代表用于监视、断路器、度量发布、缓存和其他的HystrixCommand。这不一定与线程池有关吗?如果我对我注释的所有方法使用唯一的commandkey,它将生成许多新的线程池,对吗?如果你不提供线程池key,那么Hystrix将使用组键来控制线程池。如果它们都不可用,默认情况下只有1个线程池,默认线程数为10。这是我一直在寻找的答案,但我希望你有文档来备份它或其他什么。你可以创建一个答案供考虑。