Hystrix命令密钥决定,服务名称+实例IP + Api名称?

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许多选项。

  1. serivce水平,像serviceA
  2. 实例级,像192.168.1.1
  3. 实例+ API级别等192.168.1.1_getOrder

对于第一种选择,也有只有一个锥命令,它占用更少的CPU或内存,但如果一个API失败,所有的API都是循环中断。

+0

你是什么意思的“命令关键决定”? –

+0

@ManishMaheshwari感谢您的评论,我已更新我的问题。 – hongshuwei

您的HystrixCommandKey标识HystrixCommand,封装aService.anOperation()。因此HystrixCommandKey可以使用组合键服务+命令(但是而不是运行服务或IP地址的实例)命名。如果您没有提供明确的名称,则使用HystrixCommand的类名作为默认HystrixCommandKey

Hystrix仪表板然后根据服务集群中运行的每个实例汇总每个HystrixCommandKey(服务+命令)的度量标准。

在你的例子中,它将是serviceA_createOrder