问题标签 [resiliency]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
6725 浏览

microservices - AddTransientHttpErrorPolicy 和 AddPolicyHandler 有什么区别?

我想使用Polly应用弹性策略。我正在使用来自 ASP.NET Core 2.1 的 HttpClientFactory。我在Polly GitHub wiki上找到了一些指南。这种策略配置有两种方式——使用AddTransientHttpErrorPolicy和AddPolicyHandler,但不多解释。它们之间有什么区别?

0 投票
3 回答
378 浏览

.net - 使用不同的代理服务器重试来自 .NET 的 HTTP 请求

我可以通过 .NET 应用程序中的代理发出 HTTP 请求。我可以使用许多代理服务器,有时一个或多个会出现故障。如何让我的应用使用不同的代理重试 HTTP 请求?我愿意接受任何建议,并且听说过 Polly 增加弹性的好消息。

0 投票
1 回答
22 浏览

database - 更新超过 1 个文档时如何处理 Sharded Mongo 集群中的弹性

当我们更新多个文档时,Mongo 目前不会在分片集群中进行事务。在这种情况下,我们应该如何处理部分故障。对于此类问题,有任何推荐的模式。

0 投票
1 回答
518 浏览

cloud - 请求折叠的 Hystrix 替代方案

随着 Netflix 正式将 Hystrix 置于维护模式(https://github.com/Netflix/Hystrix#hystrix-status),我开始寻找替代方案。当涉及到像断路器、隔板、重试和这些东西这样的模式时,有像弹性 4j 这样的不错的库,但是我找不到 Hystrix 可以做的请求崩溃的替代方案。

有人知道可以提供此类功能的库吗?

谢谢,本杰明

0 投票
1 回答
480 浏览

java - 具有多个微服务实例的存储和转发设计模式

我正在设计一个将接收请求的服务,该请求只能执行一次(由于唯一的 ID 存在,可以多次接收)。

流程是:

外部世界 -> HTTP -> [Myservice 的一组实例] -> HTTP -> Vendor services

所以,我通过 HTTP 接收到一堆请求,我希望进行一些转换、检查、将请求存储在数据库中并通过 HTTP 发送到供应商服务。

我的问题是:

在我的服务中实现存储转发模式的有效方法是什么需要的时间?


问题:

  • 如果 myservice 的其中一个实例在向供应商服务发送请求时出现故障怎么办?
  • 如果有一堆请求没有被转发,我将如何监控?
  • 如何避免另一个编排服务?
  • 如何避免另一个单实例服务有效地监视数据库并转发任何尚未转发的请求。
  • 如何最小化外部依赖——例如,我知道这里的某种队列可能有助于解决这个问题,但我想看看我是否可以避免这种情况。
0 投票
2 回答
30 浏览

azure - Azure 中的可用性区域及其缺失

可用性区域尚未在 Azure 的所有区域中可用。

那么,在没有此功能的情况下,客户采用了哪些 HA 替代方案?

0 投票
0 回答
238 浏览

node.js - nodejs服务器从崩溃中恢复

我正在尝试构建弹性和容错服务,作为测试,我故意导致它在 try-catch 块之外使用未定义的变量崩溃。

我通过nodejs http客户端在本地调用此服务,首先我故意导致错误,然后我继续调用该服务。

第一次错误是 ECONNRESET

第二次调用相同的服务返回ECONNREFUSED

微服务 - 故意错误的代码

调用微服务端点的代码

问题是,我如何处理 nodejs 服务器从错误中恢复以及对该端点或其他端点的后续调用?

0 投票
0 回答
28 浏览

java - Are there some common techniques for Java Web Servers to detect when approaching overload?

In a period where microservices become more and more predominant, I was wondering if there are some common techniques by which Java Web Services detect overload before start deteriorating.

Unfortunately, it doesn't look like there is One golden rule (e.g. CPU never has to go above 50%), and it seems a topic where the best heuristic wins.

Online there are several resources pointing out to a X number of CPU, GC pauses, Network IO etc, but I was wondering if there were more scientific studies/documented use cases to catch these signaling.

0 投票
1 回答
1010 浏览

c# - 覆盖使用 Polly 定义的 HttpClientFactory 策略

从 .net Core 2+ 开始,MS 为我们提供了一种向 HttpClient 添加策略的方法,只要客户端通过 IOC 容器注入就可以工作。但这让我产生了一个疑问,我在无休止的谷歌搜索时似乎无法弄清楚。如果我们想在仍然使用 HttpClientFactory 和 DI 将客户端注入提供程序的同时覆盖 HttpClient 策略怎么办?我们可以“关闭”特定请求的策略,还是可以在覆盖 Startup 上定义的全局策略的同时添加额外的策略?

0 投票
0 回答
66 浏览

rest - 如何处理微服务架构中的指数调用层次结构?

我的架构中有以下调用层次结构:

BFF → 微服务 A → 微服务 B → 反腐败层 → 遗留系统

在上面的每个服务中,当一个服务请求另一个服务中的资源时,我使用重试模式来处理 HTTP 弹性。

问题变成了,如果我为每个请求设置了 3 次重试的默认策略,这将变成指数级。例如,如果我的 AntiCorruptionLayer 已关闭并返回 504(网关超时)并且我的 BFF 收到一个请求,它将重试 3 次,而服务 A 将重试 9 次,而 B 将重试 27 次,只为一个请求!

如何处理这个问题?有小费吗?