問題タブ [hystrix]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
spring-cloud - server.contextPath が設定された Spring Boot と Eureka Server 経由の hystrix.stream への URL
Turbine インスタンスが実行されている Eureka Server とそれに接続されているいくつかの検出クライアントがあります。すべて正常に動作しますが、server.contextPath
設定されている検出クライアントを登録すると、認識されずInstanceMonitor
、Turbine ストリームはそのhystrix.stream
.
これは、Eureka/Turbine サーバーのログでどのように見えるかです:
http://user-service:8887/hystrix.stream
server.contextPath を含む正しい URL があるべき場所から hystrix ストリームを取得しようとします。http://user-service:8887/uaa/hystrix.stream
そのapplication.yml
クライアントの には次が含まれます。
私の質問は、適切な hystrix.stream URL の場所を登録するために、このユーザー サービス検出クライアントに追加の構成オプションを追加する必要があるかどうかです。
私はまだそれを掘り下げていません。その質問への回答を得る前に何かを見つけたらお知らせします。
現在のソリューション
と の使用に関しては、1 つの問題がありserver.contextPath
ますmanagement.context-path
。両方が設定されている場合、タービン ストリームは で提供され${HOST_URL}/${server.contextPath}/${management.context-path}/hystrix.stream
ます。その場合、使用を中止する必要がserver.contextPath
ありました ( controllers のプレフィックスに置き換えました@RequestMapping
)。
ここで、 を使用するmanagement.context-path
と、hystrix.stream は、それをプレフィックスとして使用する URL から提供されます。その場合、スペンサーの提案に従って設定する必要があります
もちろん、これはすべてのディスカバリー クライアントで同じ値に設定する必要があります。Spring Cloud Config http://cloud.spring.io/spring-cloud-config/spring-cloud-config.htmlmanagement.context-path
で簡単に設定できます。
java - Hystrix と MultiThreadedHttpConnectionManager の比較
SpringMVC+JSP を使用して実装された Web ページがあります。各ページで必要なデータを取得するために、外部 API を呼び出します。手順の概要は次のとおりです。 - リクエストがコントローラーに到着する - データを取得するために API が呼び出される - データが JSP ビューモデルに追加され、ユーザーに返される。
MultiThreadedHttpConnectionManager
API を呼び出すには、接続と読み取りタイムアウトで初期化されたRestTemplate を使用しています。API が利用できない場合、RestTemplate は Web ページのコントローラーによって処理される例外をスローします。
最近、Hytrix について読んでいましたが、システム間で要求を行うために使用されているようです。Hytrix が私たちのシステムでどのように役立つか、またそれを統合する方法について説明をお願いします。
さらに、API 実装はさまざまなソースからデータを取得します。そのうちの 1 つはデータベースです。Hytrix は、データベースがダウンしているシナリオでも役立ちますか?
前もって感謝します。
spring - PCF に Spring Boot がデプロイされた Hystrix ダッシュボードにメトリックが表示されない
Spring boot と spring cloud starter hystrix ライブラリを使用して、簡単なアプリを作成しました。
私のbuild.gradleでは:
上記のライブラリを使用して 1 つのアプリを hystrix ダッシュボードとしてデプロイし、@EnableHystrixDashboard
次に、注釈が付けられた別のアプリをデプロイしました@EnableHystrix
テストするためだけに、コントローラーを介して呼び出すコマンドを持つコンポーネントを追加しました。
hystrix アプリは問題なく動作します。URL にアクセスすると、ストリームが表示されます。
私はそれが何度も繰り返されているのを見ています。
ダッシュボードが稼働中で、実行中の hystrix サンプル アプリの URL を入力すると、ロード画面が表示されます。
次に、hystrix アプリをもう一度確認すると、次のように表示されます。
ここからどこへ行けばいいのかわからない。hereからダウンロードした自分で構築する代わりに、hystrix ダッシュボード戦争を展開しようとしましたが、同じ結果が得られました。
また、ブラウザ コンソールに JavaScript エラー出力が表示されることにも気付きました。
サーバーログには、これが何度も繰り返されていることがわかります。
2015-02-15 20:03:55.324 情報 9360 --- [nio-8080-exec-9] ashboardConfiguration$ProxyStreamServlet:
次へのプロキシ開始接続: http://myappurl/hystrix.stream
私は今、タービンを動かしてみて、それを使って魔法のように問題が解決するかどうかを確認します. 私もここに投稿すると思いましたが、これまでに行ったことに基づいて、誰かが私の側のエラーを見つけることができる可能性があります。
編集: 言及しなかった重要な点は、アプリとダッシュボードの両方を PCF にデプロイしたことです。ローカルにデプロイするとこの問題は発生しないため、これは重要なようです。それでも何が原因なのかはわかりません。
concurrency - 独自のスレッド プールを維持するライブラリの影響は何ですか?
私たちのプロジェクトでは、Google Guava と Netflix Hystrix ライブラリを使用しています。各ライブラリには、構成可能な独自のスレッドのプールが付属しています。
その影響を考えさせられました。つまり、各ライブラリは独自のスレッド プールを維持しており、もちろん、各ハードウェアには独自の最適なセットアップがあります。
スレッド プールで Guava を 50 に設定し、Hystrix をスレッド プールで 40 に設定するとします。何が起こるでしょうか?彼らは資源をめぐって競争しますか?
spring - Hystrix Spring Cloud を使用したユニット テスト フォールバックへのサンプル
次のシナリオをテストしたいと思います。
hystrix.command.default.execution.isolation.thread.timeoutInMillisecond
値を低い値に設定し、アプリケーションの動作を確認します。- 単体テストを使用して、フォールバック メソッドが呼び出されていることを確認します。
サンプルへのリンクを教えてください。
java - Hystrix サーキット ブレーカーを強制的に開く方法は?
特定のグループに対してサーキット ブレーカーをプログラムで強制的に開放したいと考えています。グループ内のコマンドに構成を設定して強制的に開き、そのコマンドを実行することで、それができるかもしれないと思いました。しかし、それはうまくいかないようです。これは可能ですか?別のアプローチをとるべきですか?これは、2回目の assertEquals 呼び出しで失敗する、私が試したテストです。
java - Spring は、Hystrix コマンドを実行するスレッドで SecurityContext を使用できるようにしますか?
スプリング ブート アプリを実行していて、spring-cloud-netflix から Hystrix を統合し始めたところです。@HystrixCommand を使用して、偽のクライアントで行われたサービス間の呼び出しをラップしています。
この偽のクライアントは、Spring セキュリティ コンテキストを使用して、作成するリクエストにセキュリティ ヘッダーを追加します。
私が抱えている問題は、HystrixCommand が実行されると、Hystrix スレッド プールとは別のスレッドで実行され、コードがスプリング セキュリティ コンテキストにアクセスしようとすると、新しいスレッドでは利用できないことです。
私は次のように春のセキュリティコンテキストにアクセスしています:
私の質問は、Spring は、Spring セキュリティ コンテキスト (およびアプリケーション コンテキスト) を Hystrix コマンドを実行している Hystrix スレッドに渡す方法を提供しますか?