【发布时间】:2018-09-06 22:51:28
【问题描述】:
基于 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 调用
【问题讨论】:
-
可能你必须自己做,就像拥有一个 Redis 实例来存储该特定 url 的最新成功调用。确保在 redis 中设置了一个临时条目。
-
@MarcoTalento 这似乎是个好主意。
-
@MarcoTalento 如果你回答这个问题,我可以投票并选择它。
-
正如下面 Helio 的帖子中所述,您可以提供
{ cache: true }作为选项。
标签: javascript node.js microservices hystrix circuit-breaker