Terracotta是否使JMS成为不需要的层?

Tod*_*d R 8 java concurrency terracotta jms

我们目前正在编写一个IT已经为其购买硬件的应用程序.他们的方法是购买我们将部署的大型硬件.为了增加更多处理,他们计划添加具有相同软件的其他服务器.为了适应这种设计,我们使用Terracotta来提供运行多个JVM的能力,就像它是一个大型JVM一样.无论这是否是一种明智的方式(我仍然不相信),这就是我正在处理的情况.

无论如何,我们有一部分应用程序使用标准的生产者/消费者类型队列.使用Terracotta,我们可以创建一个可与多个JVM一起使用的单个队列.这很漂亮,效果很好.

但现在,我们正在寻找额外的机会来运行异步流程.为了使我们的所有排队逻辑更加一致,我们正在考虑使用JMS来抽象出通用逻辑.由于我们不打算将JMS用作远程队列(至少在可预见的未来),我想知道JMS是否只是增加了不必要的复杂性.

有什么建议或想法?我们应该继续将队列构建为并发结构,还是将它们视为单独的可能远程对象?

kro*_*old 6

消息队列本质上只是具有一些奇特选项的队列数据结构.如果您的项目与大多数其他项目一样,那么您不会使用任何使JMS与任何旧Queue实现不同的JMS功能,尤其是因为Terracotta正在处理持久性和分发.

所以JMS可能只是增加了应用程序的复杂性,这是JMS非常擅长的.像所有不需要的复杂驱动程序一样,摆脱它.如果您出于一个或多个原因决定使用JMS,那么请执行此操作.