我有两个必须相互处理的应用程序(经典java程序和批处理)。为了尽可能地将它们分离,我正考虑在应用程序之间使用队列。
问题是第一个应用程序提供了一些java对象,第二个应用程序必须转换为另一个对象类型(DTO模式的种类),并使用新构造的对象执行一些业务逻辑和Web服务调用。在这种情况下使用队列是最好的解决方案吗?
如果是,队列中是否存在性能问题(特别是考虑大小和消耗时间)?实现此队列的最佳方法是什么?
提前谢谢你:)
答案 0 :(得分:2)
如果作业长时间运行且资源密集,则队列可能是最佳解决方案。例如,如果您的批处理应用程序使用经典应用程序提供的每个内容发送大量电子邮件,则“队列”是正确的解决方案。
队列的缺点包括它引入了管理开销,就像你必须担心如果队列变得太大,如何将响应传递回经典应用程序等等。
如果批处理程序可以快速处理来自经典应用程序的每个请求,那么我会将批处理程序公开为Web服务,以便经典应用程序可以立即得到响应。