2017-11-11 4 views
1

ゲートウェイにHystrixを実装したい(zuulのような) ゲートウェイは、サービスA、B、またはCを検出します。サービスAには10個のインスタンスと10個のApiがあるとします。私の質問は。Hystrixコマンドキー決定、サービス名+インスタンスIP + API名?

コマンドキーの決定のベストプラクティスは何ですか。サービス名+インスタンスIP + API名。

これは、異なるapiとして、異なるインスタンスの失敗は、他のブレークサークルしないように、この最高の詳細レベルと思われるが、それはコマンドキーの大量を占めている可能性があります。

これは例です。私は、サービスAに話すと仮定し、サービスAの5件のインスタンスがありますが、私は、ロードバランサでサービスAに話し、そして

  • 192.168.1.1
  • 192.168.1.2
  • 192.168以下のようにIP。 1.3
  • 192.168.1.4
  • 192.168.1.5

とサービスA有する4 API、等

  • createOrder
  • deleteOrder
  • getOrder

  • updateOrder今、コマンドキー選びだしのための多くのオプションがあります。

    1. serivceレベル、インスタンスレベル
    2. サービスA
    3. ように、最初のオプションのための192.168.1.1_getOrder

    など192.168.1.1

  • インスタンス+ APIレベルのような、一つだけhystrixコマンドが存在しますそれはCPUまたはメモリを消費しませんが、1つのAPIが失敗した場合、すべてのAPIは円の中断です。

  • +0

    「コマンドキー決定」とはどういう意味ですか? –

    +0

    @ManishMaheshwariあなたのコメントありがとう、私は私の質問を更新しています。 – hongshuwei

    答えて

    1

    HystrixCommandKeyは、aService.anOperation()をカプセル化するHystrixCommandを識別します。したがって、HystrixCommandKeyは、複合キーサービス+コマンド(ただし、ではなく、サービスまたはIPアドレスを実行しているインスタンス)を使用して名前を付けることができます。明示的な名前を指定しない場合は、クラス名HystrixCommandがデフォルトのHystrixCommandKeyとして使用されます。

    次に、Hystrix Dashboardは、サービスクラスタで実行されている各インスタンスのHystrixCommandKey(Service + Command)のメトリックを集計します。

    この例では、serviceA_createOrderになります。

    関連する問題