【发布时间】:2016-05-10 11:18:21
【问题描述】:
使用spring的Hystrix注解described here
我想知道 commandKey 参数是什么。在以下上下文中,我想知道这个参数的含义:
@HystrixCommand(groupKey="UserGroup", commandKey = "GetUserByIdCommand")
public User getUserById(String id) {
return userResource.getUserById(id);
}
注意这里的 commandKey 定义为 GetUserByIdCommand ,这和线程池有关系吗?这是否意味着具有该命令键的任何东西都使用相同的线程池,如果是这样,这是否意味着它对于我拥有的每一个具有故障回复的方法都有自己的 commandKey 的良好做法?
我有大约 8 个要在其中注释方法的类。我将用这个注释一些类方法,但我想知道如何构造命令键?我应该使用所有相同的,还是每个班级相同或所有唯一的等等。
【问题讨论】:
-
该键代表用于监控、断路器、指标发布、缓存等的 HystrixCommand。
-
这不是和线程池有关吗?如果我对我注释的所有方法都使用唯一的命令键,它将产生许多新的线程池,对吗?
-
如果你不提供线程池key,那么Hystrix会使用组key来控制线程池。如果它们都不可用,则默认只有1个线程池,默认线程数为10。
-
这是我一直在寻找的答案,但我希望你有文档来支持它或其他东西。你可以创建一个答案以供考虑。