最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

在nodejs中使用Circuit

IT培训 admin 7浏览 0评论

在nodejs中使用Circuit

基于Netflix Hystrix断路器设计模式,我试图做到以下几点:

const circuitBreaker = require('opossum');
import * as request from 'request-promise';

const circuit = circuitBreaker(request.get);

circuit.fallback(() => Promise.resolve({result:[]}));

我部署了3个节点js服务。他们使用断路器(负责人)在它们之间进行REST呼叫。我有一个回退方法来处理服务中断时的情况。我想知道是否可以在断路器旁边使用请求缓存之类的东西,以便在调用回退时返回缓存响应。如果是的话,我怎样才能做到这一点?

P.S:请求是我的客户端进行REST调用

回答如下:

据我所知,opossum没有为您的问题提供开箱即用的解决方案。您必须实现某种机制来缓存最新的成功调用。在我看来,可能最好的方法是使用像Redis这样的分布式缓存并缓存最新的成功响应,但确保在Redis中有一个临时条目,你不想返回旧的弃用数据。

在nodejs中使用Circuit

基于Netflix Hystrix断路器设计模式,我试图做到以下几点:

const circuitBreaker = require('opossum');
import * as request from 'request-promise';

const circuit = circuitBreaker(request.get);

circuit.fallback(() => Promise.resolve({result:[]}));

我部署了3个节点js服务。他们使用断路器(负责人)在它们之间进行REST呼叫。我有一个回退方法来处理服务中断时的情况。我想知道是否可以在断路器旁边使用请求缓存之类的东西,以便在调用回退时返回缓存响应。如果是的话,我怎样才能做到这一点?

P.S:请求是我的客户端进行REST调用

回答如下:

据我所知,opossum没有为您的问题提供开箱即用的解决方案。您必须实现某种机制来缓存最新的成功调用。在我看来,可能最好的方法是使用像Redis这样的分布式缓存并缓存最新的成功响应,但确保在Redis中有一个临时条目,你不想返回旧的弃用数据。

与本文相关的文章

发布评论

评论列表 (0)

  1. 暂无评论