【发布时间】:2011-01-27 04:59:24
【问题描述】:
JMS 和消息驱动 Bean 有哪些常见和有用的用途?
【问题讨论】:
-
我阅读了一份 SCBCD 学习指南并了解我从不使用它。
-
荒谬的评论。消息传递是许多大型企业(例如金融)的基础。
-
谢谢)我还没有在金融行业工作过。但以后谁知道...(=
JMS 和消息驱动 Bean 有哪些常见和有用的用途?
【问题讨论】:
选择 JMS 和 MDB 的另一个原因是保证交付。如果接收器不可用,同步的点对点调用会失败,但可以设置队列来保证传递、处理重试或事务失败、对“有毒”消息使用错误队列等。
JMS 中内置了两种传输模型:使用队列的点对点和使用主题的发布/订阅。各有各的优势。
JMS 和 MDB 的缺点是响应速度快。您可能喜欢解耦,但如果您阻塞并等待响应,它肯定会比直接远程方法调用慢,因为涉及两次网络旅行,而不仅仅是一次。
【讨论】:
异步通信:调用者快速返回,可以继续工作(不创建新线程),消息可以稍后处理。可以存储消息,即使服务器出现故障,一旦服务器再次启动,它们也可以继续处理。消息可以分发到多台机器(可选地基于规则)。
调用者和被调用者可以解耦(调用者不必知道,谁会消费消息,有多少消息消费者)。
与同步通信相比,它可以具有巨大的性能优势。这样的消息中间件对于必须每秒处理大量消息的服务(例如 Twitter)至关重要。但它不仅限于人类可读的消息。
【讨论】: