问题标签 [reliability]

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 回答
99 浏览

probability - 子系统配置

如果下图所示的并行系统中每个子系统的可用性为 70%,为了将整个系统的可用性提高到 99% 或更多,需要并行配置的子系统的最小数量是多少?

假设只要一个子系统在运行,整个系统就在运行。

图表:

图表 http://postimage.org/image/tdv2xfwk/

答案是4,但我不知道为什么?

0 投票
1 回答
1467 浏览

wcf - 没有传输安全性的 WCF 可靠会话不会按时发生故障事件

我遇到了一个非常有趣的可靠会话行为。我正在使用 netTcp 绑定 + 双工通道 + 可靠会话。

当我尝试监听 channel.faulted 时,如果将安全模式设置为 transport ,当客户端断开连接时,faulted 事件将立即触发。

但是,当我将绑定的安全模式设置为无或消息时,故障事件不再在相同情况下触发。他们最终会在服务器端出现一半的 ReciveTimeout 故障,我理解这是因为可靠会话会在那时发送心跳消息。

问题是:为什么 wcf 绑定没有按时出错?

这种情况的解决方法是我可以手动“ping”连接。

0 投票
2 回答
119 浏览

ruby-on-rails - 在 ubuntu 上部署 ROR3 网站的最可靠方法

我使用 rvm 安装了 ruby​​ 1.9.2 p136 和 rails 3.0.3,因为开发很容易,但部署我只有 0 经验。

乘客3 + apache2?lighttpd代理+杂种?

谁能简要描述一下您在生产服务器中使用的 Web 服务器、监控和工具?

0 投票
2 回答
1356 浏览

c# - 比较日期时间的最可靠方法?

我主要在我的工作场所使用 Delphi,在一些涉及比较日期时间的彻底单元测试中,我发现在比较计算日期等时,使用equals运算符的直接比较不够可靠。因此,作为一项规则,我开始使用CompareDateTimeSameDateTime,它们是Delphi 中用于日期比较的内置函数。

在 C# 中,出于习惯,我使用标准操作符比较日期/时间=<>。我们有类似的函数,如DateTime.CompareDateTime.Equals用于日期时间比较,因此在准确性和可靠性方面,我真的应该使用内置函数吗?

他们会给我一个比使用运算符更准确的比较吗?

0 投票
2 回答
680 浏览

winsock - 确保发送()数据已交付

有什么方法可以检查使用winsock 的send() 或WSASend() 发送的数据是否真的传送到目的地?

我正在编写一个与第三方服务器通信的应用程序,它有时会在工作一段时间后出现故障,并且需要确定发送到该服务器的消息是否已传递。问题有时是调用 send() 完成时没有错误,即使服务器已经关闭,并且只有下一个 send() 完成时出错 - 所以我不知道之前的消息是否已传递。

我想在 TCP 层上有信息是否发送的某些(或所有)数据包被确认,但使用套接字接口不可用(或者我找不到方法)。

最糟糕的是,我无法更改服务器的代码,因此我无法收到任何交付确认消息。

0 投票
2 回答
8370 浏览

android - 设备睡眠时工作的 Android 计时器

我正在编写一个体育应用程序,需要跟踪季度/一半/期间的经过时间。经过的时间需要精确到秒。即使用户通过按下电源按钮明确将设备置于睡眠模式,游戏时钟也需要继续运行。

我的第一次尝试涉及使用Handler.postDelayed()每 200 毫秒触发一次时钟滴答声,并使用WindowManager.LayoutParms.FLAG_KEEP_SCREEN_ON来确保“时钟”不会因屏幕超时而停止。但我很快了解到,可以通过按下电源按钮手动使设备进入睡眠状态来绕过这种方法。此外,postDelayed() 方法正在经历一些时钟漂移,这显然是 run() 方法所花费时间的结果。实际数字仍然是准确的,但不是在用户容易理解的 5 秒边界上对齐 - 所涉及的计时器开始漂移,导致一些可以理解的用户混淆。

经过一番研究,我发现了使用服务、java timersAlarmManagerPartialWakeLock来实现定时器的技术。服务本身并不能解决与设备进入睡眠相关的问题。Java 定时器和服务一样,不能解决设备休眠的问题。AlarmManager 似乎是一个好方法,但我担心这不是对 AlarmManager 的适当使用(即警报之间的间隔非常短)。使用 PartialWakeLock 看起来也很有希望,但它本身并不能解决我遇到的时钟漂移问题。

我将尝试结合使用 AlarmManager 和 PartialWakeLock。这个想法是 AlarmManager 将帮助对抗时钟漂移和 PartialWakeLock 以帮助保持代码简单(手指交叉)。我希望这种方法能够在节能、代码复杂性和用户期望之间取得合理的平衡。任何意见是极大的赞赏。

谢谢,

富有的

0 投票
1 回答
1145 浏览

udp - 局域网中可靠的多播通信

我有一个在 Linux 上运行的网络应用程序。我想做的是让我的应用程序能够宣布它在 LAN 中的存在,然后通知其他应用程序一些更改。因为我不知道我的应用程序有多少实例已经在 LAN 中的其他主机上运行,​​所以我无法使用 SCTP,多播通信是唯一的方法(或者您可能知道其他解决方案?)。

我想通过多播地址发送的结构具有固定大小(320 字节)并包含二进制数据,实际上是数字和位标志的结构。

我想知道是否有任何众所周知的编程技术可以使 UDP 通信更加可靠。我只弄清楚了两件事:

  1. 我丢弃了 recvmsg() 收到的所有小于 320 字节的数据包。
  2. 我用众所周知的页眉和页脚包围每个数据包,然后每次收到新消息时检查它们,但是数据包仍然可能在中间的某个地方损坏,对吗?

编辑: 我找到了一个 PGN 协议,但已知唯一的Linux 实现适用于 x86。这对我来说是部分解决方案,因为我也想在 ARM 架构上运行我的程序

0 投票
1 回答
1901 浏览

http - 实现 HTTP 可靠性

我的应用程序是一个桌面客户端和一个 Web API 应用程序。我正在编写这两个程序。

互联网会丢弃旧请求吗?如果它只是一个旧请求或重复请求,会有什么不同吗?

重试 HTTP 请求是确保 HTTP 上几乎完整的端到端可靠性的唯一方法,还是有某种方法可以通过仅设置参数或标头而不使用 SOAP 来实现 SOAP 级别的可靠性?我的应用程序没有使用 SOAP,只是 Python 标准库同步请求(多线程)。

0 投票
1 回答
162 浏览

mobile - 如何创建可靠的移动服务

我开发了一个广泛使用网络服务的移动应用程序。它连接到我的共享托管服务器以获取实时信息。因此,确保服务器已启动非常重要。否则我会失去客户。

一些背景。我更改了不少于 3 个托管服务提供商,因为它们在正常运行时间方面不是很可靠。我当前的主机比前三个要好得多,我现在使用它已经一年多了,他们有 99.9% 的正常运行时间保证等等,但今天我有大约 3 个小时的停机时间。这就是我创建这篇文章的原因。

并非我们所有的小型开发人员都能负担得起昂贵的专用主机,或者在家里拥有自己的服务器(这并不能保证它永远不会停机)。就我而言,以非常合理的 10-15 美元/月的价格共享主机是可以的。除了那几个小时,它可能会下降。

我必须处理的一个想法如下:与另一个提供商有第二个(不同的)共享主机,并让应用程序在我的主要主机关闭时默认使用第二个主机。两者同时下降的可能性很小。我每月只需为此多付几美元,而不是像专门托管那样每月多付 10 倍。

我确信我不是这种情况下的第一个人。有没有人找到处理这个问题的好方法,不需要大笔资金?毕竟,我们只是在谈论主服务器上的短时间停机。

提前感谢您的建议。

0 投票
3 回答
2245 浏览

sockets - UDP 上的可靠层所需的机制是什么?

我一直在为自己的游戏开发项目编写自己的网络引擎。这需要具有不可靠、可靠和有序可靠消息的选项。然而,我还不能确定可靠和有序可靠协议所必需的所有机制。

UDP 上的可靠层所需的机制是什么?额外的细节表示赞赏。

到目前为止,我认为这些是要求:

  • 使用序列号确认收到的消息。
  • 在重传时间到期后重新发送未确认的消息。
  • 跟踪每个目的地的往返时间,以便计算适当的重传时间。
  • 识别并删除重复的数据包。
  • 处理循环溢出的序列号。

这影响了我的架构,使其具有带有序列和时间戳的可靠消息标头、回显接收到的序列和时间戳的确认消息、用于根据地址跟踪适当重传时间的系统以及 a) 接收消息并将它们排队以供用户接收的线程, b) 确认可靠消息,以及 c) 用过期的重传定时器重传未确认的消息。

注意: 可靠的 UDP 与 TCP 不同。甚至有序可靠的 UDP 也不等同于 TCP。我并不是暗地里不知道我真的想要 TCP。此外,在有人玩语义游戏之前,是的……可靠的 UDP 是“矛盾的”。这是一个基于 UDP 的层,可实现可靠的交付。