我们目前正在 Linux 机器上运行 Java 集成应用程序。首先是应用程序的概述。
Java 应用程序是一个独立的应用程序(未部署在任何 Java EE 应用程序服务器上,如 OracleAS、WebLogic、JBOSS 等)。独立我的意思是它不是桌面应用程序。但是,它是从 Main 类的命令行运行的。用户根本不直接与此应用程序交互。使用 API 将消息转储到队列中,然后由我的应用程序读取,该应用程序 24/7 持续运行。我不认为这是一个桌面应用程序,因为用户没有直接与之交互。(不确定这是否是有资格成为一个的正确理由)。
它使用 Spring 并连接到 WebSphere MQ 和 Oracle 数据库 我们使用 Spring 侦听器(Spring Message Driven POJOs)来侦听 WebSphere MQ 上的队列。一旦队列中有消息,应用程序从 MQ 读取消息并将其转储(插入/更新)到数据库中。
现在的问题是:
- 我们如何水平扩展这个应用程序?我的意思是只放置更多的盒子并运行同一个应用程序的多个实例,这是一种可行的方法吗?
- 我们是否应该考虑从 Spring MDP 迁移到 EJB MDB?从而将其部署在 Application Server 上。这样做有什么额外的好处吗?
- 是否有请求使应用程序高可用(HA)?可以采用哪些建议的方法或策略来制作独立的应用程序 HA?