JMS - 常见用途

时间:2010-03-13 17:14:40

标签: java jms ejb

JMS和消息驱动Bean的常见用途是什么?

2 个答案:

答案 0 :(得分:10)

异步通信:调用者快速返回,并且可以继续其工作(无需创建新线程),并且可以稍后处理该消息。可以存储消息,即使服务器发生故障,也可以在服务器再次启动后继续处理它们。消息可以分发到多台计算机(可选择基于规则)。

呼叫者和被叫者可以解耦(呼叫者不必知道,谁将消费该消息,以及有多少消息消费者)。

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

答案 1 :(得分:5)

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

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

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

相关问题