我们正在开发一个应用程序,它定期将不同客户端的LDAP服务器与我们的数据库同步。需要通过Web门户访问此应用程序。 Web用户将在此应用程序上创建,修改或删除计划任务。因此,我们已将此应用程序开发为Web服务。
现在,我们必须扩展此应用程序并确保高可用性。
该应用程序是在Tomcat上运行的基于Axis2的Web服务。我们已经考虑过httpd + mod_jk + tomcat组合进行负载均衡。问题是如果有一个修改/删除请求,那么它应该落在最初创建任务的同一个tomcat服务器上。但是,由于请求可能来自不同的Web用户从不同的IP地址访问Web门户,我们不能有相同的会话ID(粘性会话)。
任何解决方案?不同的架构?任何东西。
我们还考虑过使用Quartz调度程序api。该网站表示它支持负载平衡和群集。有没有人有使用Quartz处理这种情况的经验?
答案 0 :(得分:0)
如果您使用Quartz进行日程安排,那么可以由数据库支持(请参阅JDBCJobStore)。然后,您可以访问任何Tomcat服务器,并且计划将集中。我建议在数据库中使用一个返回Axis服务的密钥,以便用户可以在调用之间引用相同的数据。
或者,将数据库用作作业调度程序并不困难,然后让您的任务在Tomcat(任何位置)上运行,并将结果放入数据库。如果作业的结果(例如其状态)很小,这可以正常工作。