2016-03-07 17 views
6

Próbuję skonfigurować hystrixJS w jednej z moich aplikacji nodejs. Chcę podsumować kilka zewnętrznych zależności, które moja aplikacja robi. https://www.npmjs.com/package/hystrixjsJak skonfigurować Hystrixjs w aplikacji węzła?

Przeczytałem plik readme, ale nadal nie mogłem uzyskać informacji o tym, w jaki sposób mogę zawrzeć moje wywołanie zależności za pomocą tej hystrix i jak skonfigurować do tego pulpit nawigacyjny. Jeśli ktoś już próbował tego wcześniej, proszę podać mi kilka wskazówek.

Dzięki.

Odpowiedz

7

Próbkę można znaleźć w repozytorium example app. Ale również prosimy o przesłanie pytania na temat bitbucket, a postaram się dostarczyć więcej przykładów.

Ogólnie rzecz biorąc można zawijać dowolną funkcję, która zwraca obietnicę, nie musi to być żądanie http, chociaż jest to najczęstszy przypadek użycia.

Deska rozdzielcza nie jest częścią samej hystrix. W jaki sposób działa, można uruchomić lokalny pulpit nawigacyjny, zobacz instrukcje here, a następnie dodaj punkt końcowy do aplikacji, aby odsłonić dane. Przykładowa aplikacja pokazuje, jak to zrobić:

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); 

Następnie możesz wkleić adres URL do panelu i wyświetli on Twoje polecenia.

Daj mi znać, jeśli to pomaga

0

W przypadku korzystania z serwera Hapi, można utworzyć dane sse:

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() 
       } 
      ) 
     } 
    } 
] 
Powiązane problemy