Tag: 可靠性

Erlang / OTP消息是否可靠? 消息是否可以重复?

长版本: 我是erlang的新手,并考虑将其用于可扩展的体系结构。 我发现这个平台的许多支持者都鼓吹其可靠性和容错性。 然而,我很难理解在这个系统中如何实现容错,在这个系统中消息在瞬态存储器中排队。 我明白,可以安排一个主pipe层级来重生死亡的进程,但是我一直没有find关于重新进行的进程的影响的讨论。 飞行中的消息和部分完成的工作在垂死的节点上丢失了什么? 当消费者stream程死亡时,所有的生产者是否都会自动转发消息? 如果不是的话,这怎么可以被认为是容错? 如果是这样,什么阻止了一个被处理的消息 – 但不是很确认 – 被转发,因此被不适当地重新处理? (我认识到这些问题并不是erlang所特有的,在任何分布式处理系统中都会出现类似的问题,但是erlang的爱好者似乎声称这个平台使得这一切都变得“容易” 假设消息被重新传输,我可以很容易的想象一个情况,即一个复杂的消息传递链的下游影响可能在故障后变得非常混乱。 如果没有某种沉重的分布式事务系统,我不明白如何在不重复每一个过程的情况下保持一致性和正确性。 我的应用程序代码是否必须始终强制执行约束以防止事务被多次执行? 简洁版本: 分布式erlang进程是否受到重复消息的影响? 如果是这样,重复保护(即幂等)应用责任,或者erlang / OTP以某种方式帮助我们呢?

Erlang的99.9999999%(九个九)可靠性

据报道Erlang已被用于生产系统超过20年,正常运行时间百分比为99.9999999%。 我做了如下的math: 20*365.25*24*60*60*(1 – 0.999999999) == 0.631 s 这意味着系统在20年内只有不到1秒钟的停机时间。 我不想质疑这个问题的有效性,我只是好奇我们如何才能closures一个系统(有意或无意),只有0.631秒。 任何熟悉大型软件系统的人都可以向我们解释这一点吗? 谢谢。 有没有人知道如何计算一个处理单元(或机器)集群服务的停机时间?

卸载事件是否可以用来可靠地启动ajax请求?

我需要一种方法来监视用户编辑会话,我正在审查的解决scheme之一将使我使用unload事件来发送一个Ajax请求通知服务器的编辑会话结束。 (请参阅: 监视用户会话以防止编辑冲突 ) 我的(相当有限的)读取unload事件表明,这个处理程序附加的代码必须快速运行,因此通常用于清除对象以防止内存泄漏。 我的问题是,这可以为此目的可靠地工作吗? PS。 我知道关于async: false选项。