2012-02-06 45 views
1

请求我想使用JMS和ActiveMQ的(或任何好的JMS代理),以使在我的系统的松耦合。“近实时”与JMS和松耦合架构

在某些情况下,系统的组件需要在另一个组件访问服务,响应需要“实时”(回答来自例如Web应用程序未来的请求)。

甲方式做请求是使用JMS队列。你可以放几个消费者,一个会选择消息并执行任务。然后将响应发送回请求组件。这很好,它在一定程度上松散耦合并且负载平衡。

我的问题是关于性能。这个架构在性能上是否有一些数字?是否有可能实现“近实时”,这意味着JMS隐含的成本应该低于5ms?

谢谢!

回答

1

这取决于很多因素,这是真的很难说。我在我的机器上尝试过,(如果需要,会告诉你它的细节),做出一个简单的请求,做一些处理并返回。我现在得到少于5ms的时间。但是这个数字一般不会说,因为ActiveMQ在我的机器上,连接速度也非常快,因为它全部在本地主机等等上。

你想要做的就是尽可能地模拟你的未来架构并尝试那里。这里没有人会肯定或不会说“是”,好吧,因为这是不可能的。

如果你想“实时”的,那么为什么你会在第一时间引入异步部分?

干杯,尤金。

+0

我的意思并不是“实时”的,而是SLA可能必须提供Web服务。我不知道是否可以在几毫秒内做出回应。那么我只是想知道在这种情况下它可能是一个可行的解决方案。关于异步方面,它是强制性的,我只是寻找松耦合。即我可以在依赖模块上公开一个REST服务,但在这种情况下,依赖性会变得更高(IMO过高)。 – unludo 2012-02-06 14:23:07

+0

如果我不得不选择,我会倾向于ActiveMQ而不是Web服务。只是我和它一起玩,工作人员和它一起,并将其投入生产。有多种方法可以对其进行扩展,以进行集群,更新等,这对于Web服务来说是不可能的。我希望你选择适合你:) – Eugene 2012-02-06 14:28:58