【发布时间】:2010-12-19 12:06:46
【问题描述】:
我想设计一个简单的应用程序(没有 j2ee 和 jms),可以处理大量的消息(比如在交易系统中)
我创建了一个服务,可以接收消息并将它们放入队列中,以便系统在过载时不会卡住。
然后我创建了一个包装队列的服务(QueueService),并有一个从队列中弹出消息的pop方法,如果没有消息返回null,则将此方法标记为“已同步”以进行下一步。
我创建了一个知道如何处理消息的类 (MessageHandler) 和另一个可以在新线程中“侦听”消息的类 (MessageListener)。该线程有一个“while(true)”,并且一直试图弹出一条消息。
如果返回了一条消息,线程调用 MessageHandler 类,完成后,他会请求另一条消息。
现在,我已将应用程序配置为打开 10 个 MessageListener 以允许多消息处理。
我现在有 10 个线程一直处于循环状态。
这是一个好的设计吗??
任何人都可以参考一些书籍或网站如何处理这种情况吗?
谢谢, 罗尼
【问题讨论】:
-
谢谢大家,这一切都非常有帮助。我真的要研究 JMS 并探索他的选择,但现在我只想为我们正在构建的一个小型应用程序创建一个 POC。再次感谢罗尼
-
下载一个开源 JMS 并使用它。有很多事情需要考虑,你无法在合理的时间内独自完成。您不需要 Container 来运行 JMS。如果你想要事务,你确实需要某种事务管理器(这就是容器派上用场的地方)
标签: java multithreading architecture trading