繁体   English   中英

Java应用程序和高可用性

[英]Java application and high availability

我有一个Java应用程序,我需要它具有高可用性。 我在想FastMPJ ,就像在不同的PC上运行多个实例一样。 该应用程序每分钟都会检查主实例是否正在运行,如果没有运行,则其他实例将代替它运行。

我想问一下这是一个好的解决方案,还是有更好的解决方案。

一个更通用的解决方案是使用负载平衡系统,即:您有N个应用程序实例以相同的特权运行(如果可能,在不同的硬件上),然后前面的冗余负载平衡器根据以下情况选择其中之一:每个请求/任务的实际负载。

这种解决方案的好处很明显,就是实际使用了硬件,并没有将其闲置,而是等待0.01%的情况跳进来。然后,实际上一直对实例进行测试,并在错误发生时报告错误(例如有故障的硬件),则可以防止出现以下情况:“哦,备份甚至无法正常工作”。 最重要的是,您可以自适应地平衡机器之间的负载。

在实现交换的我的一个项目中,我们使用Apache Qpid来实现高可用性,而我的经验非常令人满意。 它的伸缩性也很好。 我一直在运行多达32个节点群集的应用程序。 请在此处找到更多详细信息,如果您需要任何其他信息,请告知我: http : //qpid.apache.org/releases/qpid-0.18/books/AMQP-Messaging-Broker-Java-Book/html/High-Availability html的

希望能帮助到你:)

人们常常忘记,从应用程序到数据库也必须具有高可用性。 我的经验是,数据访问层是大多数应用程序瓶颈所在。 因此,请确保您具有良好的应用程序感知数据库负载均衡器。 Oracle有一个可靠的解决方案,但仅适用于Oracle数据库。 PostGres具有开源版本。 Heimdall Data是一种商业解决方案。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM