“近实时”使用 JMS 和松耦合架构的请求

发布于 2025-01-02 15:11:54 字数 307 浏览 0 评论 0原文

我想使用 JMS 和 ActiveMQ(或任何好的 JMS 代理)在我的系统中启用松耦合。

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

执行请求的一种方法是使用 JMS 队列。您可以放置​​多个消费者,其中一个将选择消息并执行任务。然后响应被发送回请求组件。这很好,它在某种程度上是松耦合的并且负载平衡的。

我的问题是关于性能的。是否有关于此架构所达到的性能水平的一些数据?是否有可能实现“近实时”,即 JMS 隐含的成本应低于 5 毫秒?

谢谢你!

I would like to use JMS and ActiveMQ (or any good JMS Broker) to enable loose coupling in my system.

In some cases a component of the system needs to access a service on another component, and the response need to be "Real Time" (for answering a request coming from a web application for example).

A way to do the request is to use a JMS queue. You may put several consumers and one will pick the message and execute the task. Then the response is sent back to the requesting component. It's good, it's loose coupled at some level and load balanced.

My question is about performance. Are there some figures on the performance level achieved by this architecture? Is it possible to achieve "Near Real Time", meaning that the cost implied by JMS should be under 5ms?

Thank you!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

你与清晨阳光 2025-01-09 15:11:54

这取决于很多因素,很难说。我已经在我的机器上尝试过(如果您需要,会告诉您详细信息),提出一个简单的请求,进行一些处理并返回。我现在得到的时间不到 5 毫秒。但这个数字通常没有说明什么,因为 ActiveMQ 在我的机器上,连接也非常快,因为它都在本地主机上,等等。

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

如果您想要“实时”,那么为什么首先要引入异步组件呢?

干杯,尤金。

It depends on so many factors that is really hard to say. I have tried on my machine, (will tell you the details of it if you need), to make a simple request, do some processing and return. I get less then 5ms right now. But that figure generally says nothing, because ActiveMQ is on my machine, the connection is really fast also, because it's all on localhost, etc etc.

What you want to do is simulate as much as possible your future architecture and try there. No one here is going to tell YES for sure or NO, well, because, it is impossible.

If you want "REAL TIME", then why would you introduce an asynchronous component in the first place?

Cheers,Eugene.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文