问题标签 [high-availability]

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 投票
3 回答
1460 浏览

java - Solaris 上 Java/C++ 的高可用性和可扩展平台

我有一个在 Solaris 上混合了 Java 和 C++ 的应用程序。代码的 Java 方面运行 Web UI 并在我们正在与之交谈的设备上建立状态,而 C++ 代码对从设备返回的数据进行实时处理。共享内存用于将设备状态和上下文信息从 Java 代码传递到 C++ 代码。Java 代码使用 PostgreSQL 数据库来保持其状态。

我们遇到了一些非常严重的性能瓶颈,现在我们可以扩展的唯一方法是增加内存和 CPU 数量。由于共享内存设计,我们被困在一个物理盒子上。


这里真正的大热门是 C++ 代码。Web 界面相当轻松地用于配置设备;我们真正苦苦挣扎的地方是处理设备在配置后提供的数据量。

我们从设备返回的每条数据都有一个标识符,它指向设备上下文,我们需要查找它。现在有一系列由 Java/UI 代码维护并由 C++ 代码引用的共享内存对象,这就是瓶颈。由于这种架构,我们无法将 C++ 数据处理转移到另一台机器上。我们需要能够横向扩展,以便不同的机器可以处理各种设备子集,但随后我们就失去了进行上下文查找的能力,这就是我要解决的问题:如何卸载真实的-时间数据处理到其他盒子,同时仍然能够参考设备上下文。

我应该指出,我们无法控制设备本身使用的协议,而且这种情况不可能发生变化。


我们知道我们需要摆脱这种情况,以便能够通过向集群添加更多机器来进行横向扩展,而我正处于研究如何做到这一点的早期阶段。

现在,我将 Terracotta 视为一种扩展 Java 代码的方法,但我还没有弄清楚如何扩展 C++ 以匹配。

除了扩展性能外,我们还需要考虑高可用性。应用程序需要几乎始终可用——不是绝对 100%,这不符合成本效益,但我们需要做一些合理的工作来应对机器中断。

如果你必须承担我被赋予的任务,你会怎么做?

编辑:根据@john channing 提供的数据,我正在研究 GigaSpaces 和 Gemstone。Oracle Coherence 和 IBM ObjectGrid 似乎仅限于 java。

0 投票
13 回答
4650 浏览

release-management - How do you update a live, busy web site in the politest way possible?

When you roll out changes to a live web site, how do you go about checking that the live system is working correctly? Which tools do you use? Who does it? Do you block access to the site for the testing period? What amount of downtime is acceptable?

0 投票
10 回答
3882 浏览

storage - 高可用性存储

我想通过 NFS 和 CIFS 提供 2 TB 左右的空间。我正在寻找 2 个(或更多)服务器解决方案,以实现高可用性以及尽可能跨服务器进行负载平衡的能力。有关集群或高可用性解决方案的任何建议?

这是商业用途,计划在未来几年增长到 5-10 TB。我们的设施几乎每天 24 小时,每周 6 天。我们可能会有 15-30 分钟的停机时间,但我们希望尽量减少数据丢失。我想尽量减少凌晨 3 点的通话。

我们目前在 Solaris 上运行一台带有 ZFS 的服务器,并且我们正在研究用于 HA 部分的 AVS,但是我们在 Solaris 上遇到了一些小问题(CIFS 实施不适用于 Vista 等),这些问题阻碍了我们。

我们已经开始关注

  • DRDB over GFS(用于分布式锁功能的 GFS)
  • Gluster(需要客户端,没有本地 CIFS 支持?)
  • Windows DFS(文档说仅在文件关闭后复制?)

我们正在寻找一个提供数据的“黑匣子”。

我们目前在 ZFS 中对数据进行快照,并通过网络将快照发送到远程数据中心以进行异地备份。

我们最初的计划是每 10 - 15 分钟拥有第二台机器和 rsync。失败的问题是正在进行的生产过程会丢失 15 分钟的数据并留在“中间”。他们几乎从一开始就比在中间弄清楚从哪里开始要容易得多。这就是促使我们关注 HA 解决方案的原因。

0 投票
3 回答
15022 浏览

failover - 故障转移和灾难恢复

故障转移和灾难恢复有什么区别?

0 投票
3 回答
398 浏览

asp.net - 开发多层、高可用性 Web 应用程序时要考虑哪些应用程序设计方面?

该应用程序计划使用 ASP.NET、.NET Remoting 和 MS SQL Server 构建。表示层、应用层和数据库都需要高可用性。

与 IIS 6.0 相比,IIS 7.0 在高可用性方面有什么优势吗?

0 投票
4 回答
1771 浏览

database - 管理将破坏性数据库更改迁移到由同一应用程序的旧版本共享的数据库

我的目标之一是能够部署与旧版本并行运行的 Web 应用程序的新版本。问题是所有东西都共享一个数据库。新版本中的数据库倾向于对数据库表进行重大重构。我希望随着时间的推移向用户推出新版本的应用程序,并在需要时将它们切换回旧版本。

Oren 有一个很好的帖子来设置这个问题,但它以:

“对于影响整个系统的更改,即破坏数据库更改,在部署到生产环境方面,我们仍然处于混乱之中。我将在下一部分中讨论这一点,这只是一点点手,我怕。”

后续帖子从未出现;-)。您将如何管理将破坏性数据库更改迁移到由同一应用程序的旧版本共享的数据库。您将如何保持数据同步?

0 投票
2 回答
495 浏览

wcf - 设计高可用性 Web 服务池的最佳方法是什么?

我听到很多人吹捧使用基于 Linux 的代理来处理路由以实现 Web 应用程序的高可用性,但其他人在使用 Web 服务做什么?我有一组 WCF 服务需要迁移到高可用性(故障转移)模型,这意味着如果托管 WCF 服务的特定服务器出现故障,请求将被路由到银行中的另一台服务器。我宁愿远离实施基于 Linux 的解决方案,因为环境中没有 Linux 知识渊博的人。

0 投票
2 回答
1297 浏览

filesystems - 基于网络的轻量级开源共享文件系统

我们有两个具有负载平衡功能的 Web 服务器。我们需要在这些服务器之间共享一些文件。这些将是上传的文件、会话文件、php 应用程序创建的各种文件。

我们不想使用重量级的、不再维护的或商业的解决方案。我们正在寻找一些可以作为共享文件系统工作的轻量级开源软件。它应该很容易设置,必须是 HA 可用,必须非常快。它应该适用于 RedHat Linux。

我们查看了诸如带有同步文件共享的 drbd 之类的解决方案,但我们不能使用它们,因为它不能在像 ext3 这样的底层文件系统上工作。

0 投票
1 回答
267 浏览

postgresql - PostgreSQL 可用性和合并

是否有可以优雅地处理脑裂情况的 PostgreSQL HA 解决方案。详细地说,我正在开发的系统预计将在多个区域运行,用户靠近那里的服务器,并且已知区域之间的连接是有问题的。我希望用户能够在降级状态下继续使用系统(无需从断开连接的区域进行更新),并在他们重新上线后进行合理的合并。

0 投票
7 回答
8393 浏览

distributed - 如何设计和验证分布式系统?

我一直在做一个项目,它是一个应用服务器和一个对象数据库的组合,目前只在一台机器上运行。前段时间,我阅读了一篇描述分布式关系数据库的论文,并获得了一些关于如何将论文中的想法应用到我的项目中的想法,这样我就可以使用共享的集群创建一个运行在集群上的高可用性版本- 无架构

我的问题是,我没有设计分布式系统及其协议的经验——我没有在大学学习关于分布式系统的高级 CS 课程。所以我很担心能不能设计出一个不会造成死锁、饥饿、脑裂等问题的协议。

问题:我在哪里可以找到关于设计分布式系统的好资料?有哪些方法可以验证分布式协议是否正常工作?欢迎推荐书籍、学术文章等。