Hystrix命令密钥决定,服务名称+实例IP + Api名称?
问题描述:
我想在网关中实现Hystrix(如zuul)。 网关会发现服务A,B或C,假设服务A有10个实例和10个Api。我的问题是。Hystrix命令密钥决定,服务名称+实例IP + Api名称?
命令关键决策的最佳做法是什么?服务名称+实例IP + Api名称。
它似乎获得最好的细节水平,因为不同的api,不同的实例失败将不会破坏另一个,但它可能会占用大量的命令键。
这里是例子。假如我跟服务A,有服务A的5个实例,我跟服务将负载平衡器和IP如下
- 192.168.1.1
- 192.168.1.2
- 192.168。 1.3
- 192.168.1.4
- 192.168.1.5
和服务A具有4 API,像
- createOrder
- deleteOrder
- updateOrder
- getOrder
现在有这个命令键choosen许多选项。
- serivce水平,像serviceA
- 实例级,像192.168.1.1
- 实例+ API级别等192.168.1.1_getOrder
对于第一种选择,也有只有一个锥命令,它占用更少的CPU或内存,但如果一个API失败,所有的API都是循环中断。
答
您的HystrixCommandKey
标识HystrixCommand
,封装aService.anOperation()
。因此HystrixCommandKey
可以使用组合键服务+命令(但是而不是运行服务或IP地址的实例)命名。如果您没有提供明确的名称,则使用HystrixCommand
的类名作为默认HystrixCommandKey
。
Hystrix仪表板然后根据服务集群中运行的每个实例汇总每个HystrixCommandKey
(服务+命令)的度量标准。
在你的例子中,它将是serviceA_createOrder
。
你是什么意思的“命令关键决定”? –
@ManishMaheshwari感谢您的评论,我已更新我的问题。 – hongshuwei