问题标签 [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 投票
2 回答
2558 浏览

mysql - mysql主/从故障转移

是否有任何产品可以使 mysql 主/从故障转移过程更容易?可以自动发生的事情,而不是手动修复它。

0 投票
2 回答
133 浏览

architecture - 实现模块化架构的 RFC

寻找关于 Web 应用程序模块化的意见。无论语言如何,大多数应用程序都已经有一个后端数据库,并支持与它们各自的 Web 应用程序服务器(Apache、IIS、Lighttp 等)捆绑,但是我处理过的很多开发人员在使用 Memcached 或任何东西时都遇到了问题在 Web 应用程序的直接进程空间之外。

Web 应用程序的模块化是否像我认为的那样是一件好事,或者我是否缺少某些东西,导致从高级开发人员到 CTO 的每个人都不愿将业务逻辑的特定部分移出 Web 前端并进入专门的后端服务?

例如,几年前,我在一个非常高流量的网站的项目设计会议上被击落,当时我建议我们将流程密集型 ACL 逻辑从前端框架中剥离出来,并将其变成一个半集群化的服务应用程序。后端。对我来说,好处是代码的更清晰的分离以及通过使用 REST/JSON 作为 PHP 和 Python 之间的桥梁在多个地方重用 ACL 逻辑的能力。

不同意我的想法的开发人员认为它“太复杂了”,但我就是不明白怎么做?我的论点是,就像表示层可以有标签汤一样,也可以而且经常有代码的逻辑汤,它们如此紧密地结合在一起,以至于如果出现问题,执行“外科手术”修复可能几乎是不可能的。

因此,为了缩短它,将大型应用程序分解为独立但协作的进程(不是线程或子请求)的缺点和优点是什么。MySQL、Memcache、类似的服务流程都很棒……但为什么不呢?走这条路怎么“太复杂”了?

0 投票
6 回答
8045 浏览

java - Java 独立应用程序的可扩展性和高可用性

我们目前正在 Linux 机器上运行 Java 集成应用程序。首先是应用程序的概述。

Java 应用程序是一个独立的应用程序(未部署在任何 Java EE 应用程序服务器上,如 OracleAS、WebLogic、JBOSS 等)。独立我的意思是它不是桌面应用程序。但是,它是从 Main 类的命令行运行的。用户根本不直接与此应用程序交互。使用 API 将消息转储到队列中,然后由我的应用程序读取,该应用程序 24/7 持续运行。我不认为这是一个桌面应用程序,因为用户没有直接与之交互。(不确定这是否是有资格成为一个的正确理由)。

它使用 Spring 并连接到 WebSphere MQ 和 Oracle 数据库 我们使用 Spring 侦听器(Spring Message Driven POJOs)来侦听 WebSphere MQ 上的队列。一旦队列中有消息,应用程序从 MQ 读取消息并将其转储(插入/更新)到数据库中。

现在的问题是:

  1. 我们如何水平扩展这个应用程序?我的意思是只放置更多的盒子并运行同一个应用程序的多个实例,这是一种可行的方法吗?
  2. 我们是否应该考虑从 Spring MDP 迁移到 EJB MDB?从而将其部署在 Application Server 上。这样做有什么额外的好处吗?
  3. 是否有请求使应用程序高可用(HA)?可以采用哪些建议的方法或策略来制作独立的应用程序 HA?
0 投票
1 回答
1624 浏览

hibernate - 使用休眠实现零停机

Hibernate 对数据库(在这种情况下为 MySQL)有哪些变化(数据、模式、...)?

我问这个是因为 Hibernate 的停机时间为零。

更改数据库,将应用服务器拆分为两个集群,在其中一个集群上重新部署应用程序并切换应用程序。

谢谢斯蒂芬

0 投票
7 回答
657 浏览

web-services - 适合新手的实用 SOA

我是 SOA 领域的新手。因此,我正在研究一些“SOA 框架/技术”,并试图了解如何利用它们来构建一个高度可扩展的(Facebook 类)网站。

我想在这里解决几个“痛点”:

  1. 可组合性(+ 管理依赖项,Pub/Sub)
  2. 服务的语言无关
  3. 可扩展性和性能
  4. 高可用性

我研究了一些可以回答上述标准子集的技术:

  1. Thrift - Facebook 的跨平台 RPC 平台
  2. WCF - 支持 SOAP、JSON 和 REST,因此它可以被认为是语言互操作的。生成可用于生成 java 代理的WSDL文件。
  3. Microsoft DSS - 只是将它包含在我的调查中,但它似乎并不相关,因为它是高度状态驱动的和特定于 .NET 的。
  4. 网页服务

现在,我了解了如何从上述内容中获得可组合性和语言独立性的某些方面。但是,我还没有找到很多关于如何使用上述/其他工具来实现可扩展性和高可用性的具体信息(不是嗡嗡声)。所以最后我得到了我的问题:

如何利用 SOA 技术来解决我上面定义的问题?我在哪里可以找到这方面的技术指南?我寻找的不仅仅是系统图,而是实际的库、代码示例、APIS ......

0 投票
1 回答
272 浏览

database - 什么是高可用性授权服务的正确解决方案?

我在一家软件商店工作,该商店有一个内部预测拨号器产品,我们需要实施一个解决方案来遵守 DO-NOT-CALL 列表。

基本上,我有一个包含我需要拨打的客户/潜在客户的数据库,以及另一个包含我无法拨打的电话号码的数据库。由于该系统是一个预测拨号器,根据操作性能、时间平均值等,它会为每个登录的系统用户拨打或多或少的电话。通常这个“神奇”数字是每个登录的代理大约 3 到 4 个呼叫。

预测拨号器的电话号码存储库是一个 PostgreSQL 数据库。预测拨号器从数据库中挑选一堆号码,然后向 pbx 发送一个命令来拨号,然后业务逻辑继续将有效呼叫转移到呼叫中心文员等(这与我的无关问题是在通话之前)。

我需要实现请勿呼叫列表功能。政府机构将每天以 CSV 文件的形式向我们公司提供此拒绝来电清单。每次我收到一个新的 CSV 文件时,我都必须清除旧的请勿呼叫列表,并将新的放在适当的位置。

我实现它的第一个想法是进行批处理,将 DO NOT CALL LIST 与我当前的客户数据库进行交叉引用。但我认为,根据两个数据库的大小,交叉引用会非常耗费性能,有时无法在一夜之间完成。我以前在批处理时遇到过这种问题,这不是一件好事。

当我想到大型机构如何处理高性能和高吞吐量的授权系统(例如信用卡或用户身份验证/授权)时,我的第二个想法出现了。我认为为 DO NOT CALL LIST 号码创建身份验证服务,并更改我的预测拨号器的算法以在拨号之前根据此授权服务检查每个号码会很整洁。

由于我只是在这里胡说八道,我不知道哪个想法是最好的,或者我是否完全错了,应该转向另一个方向。所以,我的问题是:你的建议是什么?将 DO NOT CALL CSV 文件存储在内存中?使用 LDAP?使用 MySQL?PostgreSQL?做批处理的事情吗?还是我绝对搞砸了?

我知道我不是世界上第一个遇到这种问题的人,所以请赐教。

0 投票
6 回答
1446 浏览

java - 高可用性和灾难恢复软件 AntiPatterns

如果您必须在涉及高可用性和灾难恢复时审核 Java 应用程序的最差做法,您可能会寻找硬编码的 IP 地址和绑定句柄的次优缓存。还应该考虑什么?

0 投票
8 回答
10693 浏览

java - 哪些设计模式在创建高可用性应用程序时使用得最多?

同样,是否有应该避免的设计模式?

0 投票
3 回答
1391 浏览

java - 在这种情况下,Terracotta 是如何工作的?

所以假设我有一个N大小的服务器阵列,如下所示:

替代文字 http://www.terracotta.org/web/download/attachments/43909161/ServerArrayMirrorGroup.png

我有一个简单的 JavaBean/POJO:

现在,如果其中一个客户端在 TC 根(数据结构)中的 Person 对象上调用 Person.setObj(OtherObject),则该客户端上的同步块(在 Person.setObj(OtherObject) 中)持有:

1) 直到N大小的服务器阵列中的所有N个服务器都已与该 Person.obj 属性同步/更新?

或者

2) 直到“活动”服务器与更新的 Person.obj 属性同步?那么阵列中的其他(N-1)台服务器是否尽可能同步?

或者

3)我正在寻找其他一些方法?

0 投票
2 回答
5777 浏览

c# - ActiveMQ 服务故障转移和数据库故障转移

我在为我的 ActiveMQ 服务实现 HA 时遇到了一些困难。现在,我已经正确实现了 Active MQ 的主/从代理,所以如果主节点死了,从节点透明地接管消息传递。它们都共享一个 Microsoft SQL 数据库来存储消息。

我想添加另一个级别的高可用性,以确保数据库镜像。像这样,如果主数据库服务器死了,代理将切换到镜像服务器。我已经正确设置了镜像。(数据正确镜像到辅助数据库服务器)。

问题是数据库故障转移搞砸了一切。

如您所知,ActiveMq 代理的主/从 HA 的工作方式如下:主服务器获取数据库中的锁,从服务器尝试获取它。一旦主服务器死了,它就会释放锁,从服务器接管,客户端切换到新的。问题来自数据库镜像。当我关闭主体数据库服务器时,主数据库无法更新数据库锁。另一方面,当从服务器无法获取主数据库服务器中的锁时,它会尝试辅助数据库服务器,当然他不能,因为它处于镜像状态。

如果我不将主/从 HA 用于 activeMQ(然后只有一个代理),则数据库镜像可以工作。

以下是master的配置文件和日志:

和主人的输出:

从站的配置文件: