我有一个 WEB 应用程序(带有纯 Java servlet),它有一些繁重的计算工作,有数据库访问,可以在异步模式下完成。
我计划使用专用服务器来执行此类批处理作业,我想知道使用哪些工具/技术/协议(protocol)在 WEB 服务器中的 servlet 和新专用服务器中的批处理作业之间进行通信。
我在看 JMS。这是正确的选择吗?
是否有行业标准和/或广泛采用的技术?
我还需要对多个并发作业进行队列和优先级处理。
最佳答案
JMS 是一个非常标准的解决方案。高端平台(例如 Sun 的 JCAPS)大量使用 JMS 来划分和管理 Web 服务的工作负载。
从 Sun(或 IBM 或 Microsoft)购买高端 JMS 实现有很多优势。首先,您会得到诸如支持文件系统的可靠消息队列之类的东西。任何消息都不会丢失。其次,您可以获得一些监控和管理工具。
一件很酷的事情是让一个 JMS 队列(可能)有多个订阅者来进行工作负载平衡。
另一个很酷的事情是让 JMS 主题有一个日志记录过程以及订阅的实际工作过程。日志记录过程挑选消息并简单地记录正在启动和停止的作业的基本阶段。
关于java:与批处理服务器通信的最佳技术是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/229131/