javascript - 在nodejs中使用断路器(负鼠)请求缓存

标签 javascript node.js microservices hystrix circuit-breaker

基于 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/

相关文章:

javascript - 在react中添加动态onClick事件

node.js - mongoose 无法连接到 ec2 mongodb 实例

node.js - 使用 pkg 将带有 native-node-printer 的 Node.js 项目打包成可执行文件

java - DTO - 多项服务和冗余 DTO

python - 如何使用python从微服务1调用微服务2?

javascript - 在 angularjs 中仅重新加载页面一次

javascript - jQuery toggleClass 有效,在点击时添加 .text() 替换会破坏它

javascript - struts2单选按钮id属性值动态变化

node.js - 如何在 Node.js 中同步处理回调?

javascript - 将远程 AngularJS 应用程序嵌入网页的正确方法是什么?