【问题标题】:JMS - common usesJMS - 常见用途
【发布时间】:2011-01-27 04:59:24
【问题描述】:

JMS 和消息驱动 Bean 有哪些常见和有用的用途?

【问题讨论】:

  • 我阅读了一份 SCBCD 学习指南并了解我从不使用它。
  • 荒谬的评论。消息传递是许多大型企业(例如金融)的基础。
  • 谢谢)我还没有在金融行业工作过。但以后谁知道...(=

标签: java jms ejb


【解决方案1】:

选择 JMS 和 MDB 的另一个原因是保证交付。如果接收器不可用,同步的点对点调用会失败,但可以设置队列来保证传递、处理重试或事务失败、对“有毒”消息使用错误队列等。

JMS 中内置了两种传输模型:使用队列的点对点和使用主题的发布/订阅。各有各的优势。

JMS 和 MDB 的缺点是响应速度快。您可能喜欢解耦,但如果您阻塞并等待响应,它肯定会比直接远程方法调用慢,因为涉及两次网络旅行,而不仅仅是一次。

【讨论】:

    【解决方案2】:

    异步通信:调用者快速返回,可以继续工作(不创建新线程),消息可以稍后处理。可以存储消息,即使服务器出现故障,一旦服务器再次启动,它们也可以继续处理。消息可以分发到多台机器(可选地基于规则)。

    调用者和被调用者可以解耦(调用者不必知道,谁会消费消息,有多少消息消费者)。

    与同步通信相比,它可以具有巨大的性能优势。这样的消息中间件对于必须每秒处理大量消息的服务(例如 Twitter)至关重要。但它不仅限于人类可读的消息。

    【讨论】:

    • 您认为 JMS 和 MDB 的使用量大吗?或者这只是我的意见。
    • 这真的取决于你想要/需要做什么。无论如何,与功能差异相比,使用量可能只是一个小因素。 JMS(有或没有 MDB)当然不应该是所有事情的默认选择。这完全取决于您是否需要该功能。顺便说一句,例如HornetQ 提供了另一种 API,它的“体积”稍小。
    • 非常有趣。我不知道还有其他方法可以在没有 JMS 的情况下使用 MBD。
    猜你喜欢
    • 1970-01-01
    • 2010-11-16
    • 1970-01-01
    • 2019-12-12
    • 2010-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多