基于 Netflix Hystrix 断路器设计模式,我尝试执行以下操作:
const circuitBreaker = require('opossum');
import * as request from 'request-promise';
const circuit = circuitBreaker(request.get);
circuit.fallback(() => Promise.resolve({result:[]}));
我部署了 3 个 Node js 服务。他们使用断路器(负鼠)在它们之间进行 REST 调用。我有一个后备方法来处理服务出现故障时的情况。我想知道是否可以将请求缓存之类的东西与断路器一起使用,以便在调用回退时返回缓存的响应。如果是,我该如何实现?
P.S : 请求是我的客户端进行 REST 调用
最佳答案
据我所知,opossum
没有为您的问题提供开箱即用的解决方案。您必须实现某种机制来缓存最新的成功调用。在我看来,最好的方法可能是拥有像 Redis 这样的分布式缓存并缓存最新的成功响应,但确保在 Redis 中有一个临时条目,你不想返回旧的弃用数据。
关于javascript - 在nodejs中使用断路器(负鼠)请求缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49531349/