首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >java:与批处理服务器通信的最佳技术是什么?

java:与批处理服务器通信的最佳技术是什么?
EN

Stack Overflow用户
提问于 2008-10-23 09:41:38
回答 5查看 837关注 0票数 3

我有一个WEB应用程序(使用纯Java servlet),它有一些繁重的计算工作和数据库访问,可以在异步模式下完成。我计划使用一个专用服务器来执行这样的批处理作业,我想知道在WEB服务器中的servlet和新的专用服务器中的批处理作业之间应该使用哪些工具/技术/协议进行通信。我在看JMS。这是正确的选择吗?是否有行业标准和/或被广泛采用的技术?我还需要队列和多个同时作业的优先处理。

EN

回答 5

Stack Overflow用户

发布于 2008-10-23 10:47:47

JMS是一个非常标准的解决方案。高端平台(例如Sun的JCAPS )大量使用JMS来分区和管理web服务的工作负载。

从Sun (或IBM或Microsoft)购买高端JMS实现有很多好处。首先,您会得到可靠的消息队列,这些消息队列会备份到文件系统中。任何消息都不会丢失。其次,您可以获得一些监控和管理工具。

一件很酷的事情是有一个(可能的)多个订阅者的JMS队列来执行工作负载平衡。

另一个很酷的事情是有JMS主题,它有一个日志记录进程以及实际的工作进程。日志记录进程提取消息,并简单地记录正在启动和停止的作业的基本阶段。

票数 3
EN

Stack Overflow用户

发布于 2008-10-23 10:08:56

消息传递是最佳选择之一。

使消息传递框架非常通用,以便它可以处理任何类型的批处理作业。

一种方法是使用事件/任务管理器,在该管理器中,您将事件放在队列中,队列使用者处理该事件并将其转换为一组任务。然后,这些任务可以由单独的任务处理程序执行。任务还可以生成一些更多的事件,这些事件可以再次放到队列中,以提供反馈循环。通过这种方式,您可以向框架添加类似于工作流的功能,并允许批处理作业相互依赖。

票数 2
EN

Stack Overflow用户

发布于 2008-10-23 13:57:29

JMS将是从servlet发送批处理作业的合适解决方案。不过,批处理服务器与servlet通信可能不是最好的解决方案,因为它不能成为消息的侦听器。

因为我不知道从批处理服务器到servlet的通信应该是什么,所以我只能说可能有几个选项可以使用(是的,JMS就是其中之一)。但它们基本上都依赖于对servlet的轮询调用,然后servlet会以某种方式检查是否有来自批处理服务器的东西在等待。这可以是批处理服务器上的servlet,也可以是对JMS响应队列进行接收调用。还有其他解决方案,但关键是它不是异步的,除非您能够通过AJAX之类的东西从批处理服务器一直推送到您的客户端(我猜是浏览器)。

不管怎么说,只需要记住一件事。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/229131

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档