2

Turbine を Spring Cloud で動作させるのに少し問題があります。一言で言えば、一度に複数のアプリケーションから回路を集約するように構成する方法がわかりません。

6 つの個別のサービス、eureka サーバー、およびスタンドアロン モードで実行されているタービン サーバーがあります。Eureka サーバーから、タービンを含むすべてのサービスが登録されていることがわかります。私のタービン サーバーは稼働しており、その /hystrix ページを問題なく表示できます。しかし、それを使用してturbine.streamを調べようとすると、turbine.appConfigにリストされている最初のサーバーしか表示されず、残りは無視されます。

これは私のタービン サーバーの application.yml、または少なくとも関連する部分です。

---
eureka:
  client:
    serviceUrl:
      defaultZone: http://localhost:8010/eureka/
server:
  port: 8030
info:
  component: Turbine
turbine:
  clusterNameExpression: new String(“default”)
  appConfig: sentence,subject,verb,article,adjective,noun
management:
  port: 8990  

これを実行して、タービン インスタンスの hystrix ダッシュボードにアクセスし、turbine.stream を要求すると、出力にリストされている唯一のサーキット ブレーカーは、appConfig にリストされている最初のサービス (この場合は「文」サービス) 用です。不思議なことに、これらのサービスの順序を並べ替えて、別のサービス (「名詞」など) を最初に配置すると、そのサービスの回線のみが表示されます。リストの最初のサービスのみが表示されます。

ストリームやクラスターなどの一部の用語について少し混乱していることを認めます。そのため、ここでは基本的な概念が欠落している可能性がありますが、Turbine は複数のサービスからストリームを消化してそれらを集約できるということを理解しています。単一のディスプレイで。提案をいただければ幸いです。

4

1 に答える 1

6

コメントするには十分な評判がないので、これを回答に書く必要があります:)

私はまったく同じ問題を抱えていました:

"test-service" と "other-service" という 2 つのサービスがあり、それぞれに独自の hystrix-stream が動作しており、次のように構成された 1 つの Turbine-Application があります。

    turbine:
        clusterNameExpression: new String("default")
        appConfig: test-service,other-service

すべてのサービスがローカル マシンで実行されています。

結果は次のとおりです。Hystrix-Dashboard には、「test-service」からのメトリックのみが表示されます。

理由:

上記の方法で構成された Turbine-Client は、複数のサービスが同じホストで実行されている場合、それらを処理しないようです。

これはここで説明されています:

https://github.com/Netflix/Hystrix/issues/117#issuecomment-14262713

タービンは、それらへの永続的な接続を維持するためにこれらすべてのインスタンスの状態を維持し、「ホスト名」に依存します。ホスト名が同じ場合、同じサーバーへの新しい接続を(別のポートで)インスタンス化しません。)。

したがって、要点は、すべてのサービスを異なるホスト名で登録する必要があるということです。ローカル マシンでこれを行う方法については、以下で説明します。

UPDATE 2015-06-12/2016-01-23: ローカル テストの回避策

ホストファイルを変更します。

    # ...
    127.0.0.1 localhost
    127.0.0.1 localdomain1
    127.0.0.1 localdomain2
    # ...
    127.0.0.1 localdomainx

次に、各クライアントのホスト名を次のように異なるドメイン エントリに設定します:
application.yml:

    eureka:
        instance:
            hostname: localdomainx
于 2015-06-11T09:41:03.373 に答える