在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中有一个临时条目,你不想返回旧的弃用数据。