我们使用的是没有WEBSERVER的Core Java APP,它是MULTI-Threaded。我们有一个要求,我们的应用程序将在客户环境中高度可用。 我们的应用程序中的所有事务主要是ActiveMQ(Java消息传递服务TCP连接),即我们使用消息队列与其他应用程序通信。我们也有HTTP连接 为了实现ActiveMQ的高可用性,我们在主/从配置(主动/被动)中实现了它 对于我们的应用程序(主动/主动)的高可用性,我们考虑部署应用程序的两个实例,这两个实例将并行使用消息, 但是这个实现将排除我们保留信息的内部特征。只有在它们被执行时,我们才会确认来自ActiveMQ队列的消息。 因此,运行两个实例可能会导致相应消息的进程重复。
请告诉我们如何使我们的应用程序高度可用。 负载均衡器是否解决了我们的问题?也, 我们是否应该将Core Java App转换为服务?
提前致谢
答案 0 :(得分:0)
每当您想要应用程序的高可用性时,如果您的应用程序的高可用性直接取决于ActiveMQ的高可用性,那么您真正应该做的是,拥有一个App实例和多个activeMQ实例,
这样做,即使一个ActiveMQ实例出现故障,其他可能接管(典型的主从配置),App也会按预期运行。
此拓扑也不会导致重复的消息处理,因为在任何时候只有一个ActiveMQ实例与您的应用相关联。
对于负载平衡,您可以在这里查看(如果它符合您的要求)。
希望这有帮助!
祝你好运!