独立Java多线程应用程序的高可用性

时间:2015-01-27 14:55:49

标签: java windows-services activemq

我们使用的是没有WEBSERVER的Core Java APP,它是MULTI-Threaded。我们有一个要求,我们的应用程序将在客户环境中高度可用。 我们的应用程序中的所有事务主要是ActiveMQ(Java消息传递服务TCP连接),即我们使用消息队列与其他应用程序通信。我们也有HTTP连接 为了实现ActiveMQ的高可用性,我们在主/从配置(主动/被动)中实现了它 对于我们的应用程序(主动/主动)的高可用性,我们考虑部署应用程序的两个实例,这两个实例将并行使用消息, 但是这个实现将排除我们保留信息的内部特征。只有在它们被执行时,我们才会确认来自ActiveMQ队列的消息。 因此,运行两个实例可能会导致相应消息的进程重复。

请告诉我们如何使我们的应用程序高度可用。 负载均衡器是否解决了我们的问题?也, 我们是否应该将Core Java App转换为服务?

提前致谢

1 个答案:

答案 0 :(得分:0)

每当您想要应用程序的高可用性时,如果您的应用程序的高可用性直接取决于ActiveMQ的高可用性,那么您真正应该做的是,拥有一个App实例和多个activeMQ实例,

这样做,即使一个ActiveMQ实例出现故障,其他可能接管(典型的主从配置),App也会按预期运行。

此拓扑也不会导致重复的消息处理,因为在任何时候只有一个ActiveMQ实例与您的应用相关联。

对于负载平衡,您可以在这里查看(如果它符合您的要求)。

希望这有帮助!

祝你好运!