问题标签 [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.
wix - 如何确定导致 Windows Installer 重复自我修复的原因?
- 如何仅记录导致 Installshield 2008 生成的 MSI 文件通过“自我修复”重新安装的更改?
- 自我修复背后的原因是什么?
- 如何使用 Installshield 2008 禁用 MSI 的自我修复?
wix - 如果我删除文件,为什么 MSI 安装程序会重新配置?
我在 Visual Studio 2008 中创建了一个 MSI 安装程序包。问题是安装后,如果我删除任何已安装的文件。这不是我的安装程序包的预期行为。我的文件安装属性是:
PackageAs vsdpaDefault Permanent False ReadOnly False Register vsdrfDoNotRegister System False Transitive False Vital False
如果这是微不足道的,请原谅我。我不敢相信我无法让谷歌放弃答案。:)
azure-sql-database - 如何使 Dapper 对 SqlAzure 具有弹性?
我最近发现 Entity Framework 有一种非常简单的方法可以使 SQL Azure 中的连接具有弹性。在 Dapper 中是否有推荐的方法来完成相同的操作?
java - Hystrix 命令的预期粒度?
我刚刚阅读了Hystrix 文档/wiki,但仍然在基本层面上遗漏了一些东西:impl的预期粒度级别是什么?HystrixCommand
例如,假设我有一个 DAO 对象来处理某些 DB 实体的 CRUD 操作,例如Widget
:
现在,如果此 DAO 连接的数据库出现故障,所有 DAO 方法都将开始失败。但我认为数据库也有可能被捆绑在某种事务或维护模式下,比如允许读取,但不允许写入。在那种边缘情况下,读取会成功(getX(...)
方法),但所有其他的都会因SqlException
s 而失败。
所以我问:我应该在这里使用的预期粒度级别是多少?任何一个:
- 每个DAO 方法都有一个
HystrixCommand
impl ,看到在某些情况下命令可以成功运行,而在其他情况下,它们可能会失败;或者 - 一个
HystrixCommand
以某种方式融入 DAO 类,跨越所有DAO 方法(如果一个命令失败,则 DAO 作为一个整体“下降”。)?
我认为前者代表了更灵活的工程设计,但作为图书馆的消费者,我向我介绍了更多代码。想法?想法?
c# - EntityFramework 6 Database.SqlQuery 连接弹性
我知道,从版本 6 开始,EntityFramework 在使用 SQL Azure 数据库时支持连接弹性功能。我很确定它适用于 DbSet 上下文成员。
但是如果我想像这样对数据库执行 SQL 查询怎么办:
像这样执行此操作是否安全?我需要在这里使用任何Retry
框架吗?我想没有,但我想确定一下。
jdbc - Hystrix 应该替换现有的 JDBC/HTTP 连接池,还是委托给它们?
许多应用程序将连接池用于 HTTP 和 JDBC 调用以实现弹性。但是使用和配置这两种类型的池是非常不同的。这复制了实现两者共有的弹性模式的复杂性——例如超时、重试、缓存/警报回退、断路和监控。
在我看来, Hystrix为 HTTP 和 JDBC 调用提供了配置和实现这些相同弹性模式的通用方法。
我的问题是:
- Hystrix 理论上可以完全替代现有的 HTTP 和 JDBC 连接池吗?
- 如果是这样,这样做的利弊是什么?
完全替换它们可以减少围绕这些连接池的复杂性 - 以及它们伴随的超时和验证查询属性等。但是我对 Hystrix 如何“保持活动” JDBC / HTTP 连接 - 从而避免昂贵的连接设置成本 - 没有委派给专门用于这些任务的现有图书馆。
对于上下文,我有一个 DropWizard 应用程序,它使用 Tomcat DBCP 作为其 JDBC 连接池,使用 Apache HttpClient 作为其 HTTP 连接池。
java - 减轻 Hadoop 的跟腱
我刚刚给这个 Hadoop tuorial读了一遍,其中指出 Hadoop 在以下位置有跟腱(单点故障)JobTracker
:
JobTracker 是 Hadoop MapReduce 服务的单点故障,这意味着如果 JobTracker 出现故障,所有正在运行的作业都会停止。
还有这篇文章指出这NameNode
是一个单点故障:
Hadoop 集群中的单点故障是 NameNode。
单点故障很糟糕,可以吗?什么策略/技术/工具/等。可以做些什么来规避这些 SPOF 并使 Hadoop 变得冗余、容错和弹性(流行语警报!)?
c# - 实体框架多结果集、Azure 连接弹性和命令拦截
我正在尝试将连接弹性添加到我的存储库类并对其进行测试,以便将我的 WCF 服务移动到 Azure。Julie Lerman 有一篇很棒的文章:
当我调用使用普通实体框架查询的存储库方法时,Interceptor ReaderExecuting 方法被触发,我能够模拟连接问题。
但是由于某种原因,当我使用从存储过程返回的“多个结果集”的存储库方法之一正在执行时,不会调用 Interceptor ReaderExecuting 方法(请参见下面的代码)。我期望在执行“ObjectContext.Translate”或“ToList”时调用 ReaderExecuting 方法,但它没有:
仅供参考,我正在关注这篇文章来处理“多个结果集”:
https://msdn.microsoft.com/en-us/data/jj691402.aspx
我正在尝试使用实体框架 6+ 执行策略来处理连接弹性。但是如果它不能处理多个结果集,我的下一个选择是使用 Polly 库来处理瞬态异常。
你有没有遇到过这种情况?
你有什么解决办法吗?
c# - 为 WCF 调用瞬态异常实现重试模式
我有一个非常简单的 WCF SOAP 服务,它在每次调用时对 DB 进行一些更改并返回一些响应。我还使用 ServiceChannel 从我的客户端代码中调用它。
我想确保我的客户端代码不会在服务太忙时失败,因此实现了重试模式以在捕获到异常时重试服务调用。但是,如果异常是由我在 WCF 服务器端的代码引起的,我不想重试(如果它与连接无关,或者是否执行了任何 OperationContract 代码(超时并不意味着它不是,对吧?))。
所以我只想重试
- 我已发送请求
- 抓到一个异常
- 我的 OperationContract 方法中的服务器端代码均未执行
Microsoft 文章(上面的链接)几乎没有关于哪些类型的异常确切是瞬态的信息。我应该使用哪些异常类型来准确捕获我需要的内容?或者我应该如何过滤它们?
python - 如何忽略 Python 中的所有潜在异常?
我正在用 Python 编写自定义备份脚本。有时 mkdir 功能或打印功能或任何功能由于各种原因而失败。这样的异常会停止整个脚本并在中间停止备份,这非常令人沮丧。到目前为止,我已经通过添加 try: ... except: ... 语句并正确管理这些异常来解决这些问题。但是,有一天,其他一些语句或函数也可能由于其他尚未触发的原因而引发异常。
有没有办法告诉脚本继续进行?相当于将代码的每条语句都包装在 try: ... except: pass 子句中?日志当然会更好。
我注意到,当使用 Tkinter 等 GUI 工具包进行编程时,即使引发异常,应用程序也会继续运行。是否可以使用控制台完成此类事情?