2016-03-07 13 views
6

私は自分のnodejsアプリケーションの1つにhystrixJSを設定しようとしています。私は、私のアプリが作っているいくつかの外部依存関係をまとめたい。 https://www.npmjs.com/package/hystrixjsノードアプリケーションでHystrixjsを設定するにはどうすればいいですか?

私はreadmeを読んだが、私はこのヒステリシスを使って自分の依存関係の呼び出しをどうやって包み込むことができないのか、これについてダッシュボードを構成する方法を得ることができなかった。既に誰かがこれを試したことがある場合は、私に指示をしてください。

ありがとうございました。

答えて

7

サンプルは、レポのexample appにあります。しかし、bitbucketについて質問を提出することも自由です。さらなる例を提供しようとします。

通常、最も一般的な使用例ですが、約束を返す関数はすべてラップできますが、http要求である必要はありません。

ダッシュボードはhystrix自体の一部ではありません。動作方法は、ダッシュボードをローカルで実行し、指示hereを参照して、アプリケーションにエンドポイントを追加してメトリックを公開します。例のアプリはそれを行う方法を示しています。

function hystrixStreamResponse(request, response) { 
    response.append('Content-Type', 'text/event-stream;charset=UTF-8'); 
    response.append('Cache-Control', 'no-cache, no-store, max-age=0, must-revalidate'); 
    response.append('Pragma', 'no-cache'); 
    return hystrixStream.toObservable().subscribe(
     function onNext(sseData) { 
      response.write('data: ' + sseData + '\n\n'); 
     }, 
     function onError(error) {console.log(error); 
     }, 
     function onComplete() { 
      return response.end(); 
     } 
    ); 
}; 

app.get('/api/hystrix.stream', hystrixStreamResponse); 

あなたはその後、ダッシュボードにURLを貼り付けることができ、それはあなたのコマンドを表示します。

、あなたはSSEデータを作成することができ、あなたがHAPIサーバーを使用し、それは場合

0

を助けている場合、私に教えてください:

use strict' 
const hystrixSSEStream = require('hystrixjs').hystrixSSEStream; 
module.exports = [ 
    { 
     method: 'GET', 
     path: '/hystrix-sse-stream', 
     handler: (request, reply) => { 
      request.raw.res.writeHead(200, { 'content-type': 'text/event-stream; charset=utf-8', 
       'Pragma': 'no-cache', 
       'cache-control': 'no-cache, no-store, max-age=0, must-revalidate' }) 
      hystrixSSEStream.toObservable().subscribe(
       function onNext(sseData) { 
        request.raw.res.write('data: ' + sseData + '\n\n') 
       }, 
       function onError(error) { 
        reply(error) 
       }, 
       function onComplete() { 
        reply.continue() 
       } 
      ) 
     } 
    } 
] 
関連する問題