我想在网关中实现Hystrix(比如zuul)。 网关将发现服务A,B或C,假设服务A有10个实例和10个Api。我的问题是。
命令键决策的最佳做法是什么?服务名称+实例IP + Api名称。
它似乎获得了最好的细节级别,因为不同的api,不同的实例失败不会绕圈破坏另一个,但它可能会占用大量的命令键。
这是一个例子。假设我与服务A交谈,有5个服务A实例,我通过负载均衡器与服务A通信,ip如下
和服务A有4个api,比如
现在有很多选项可供选择命令键。
对于第一个选项,只有一个hystrix命令,它占用较少的CPU或内存,但如果一个api失败,则所有api都是循环中断。
答案 0 :(得分:1)
您的HystrixCommandKey
标识HystrixCommand
,其中包含aService.anOperation()
。因此,HystrixCommandKey
可以使用复合键服务+命令(但运行服务的非实例或IP地址)命名。如果您未提供明确的名称,则HystrixCommand
的班级名称将用作默认名称HystrixCommandKey
。
然后,Hystrix仪表板会聚合服务群集中运行的每个实例中每个HystrixCommandKey
(服务+命令)的指标。
在您的示例中,它将是serviceA_createOrder
。