Chr*_*her 10
异步通信:调用者快速返回,并且可以继续工作(无需创建新线程),并且可以稍后处理该消息.可以存储消息,即使服务器发生故障,也可以在服务器再次启动后继续处理它们.消息可以分发到多台机器(可选地基于规则).
呼叫者和被叫者可以解耦(呼叫者不必知道,谁将消费消息,以及有多少消息消费者).
与同步通信相比,它具有巨大的性能优势.这样的消息传递中间件对于每秒必须处理大量消息的服务至关重要(例如,想想Twitter).但它并不局限于人类可读的消息.
选择JMS和MDB的另一个原因是保证交付.如果接收器不可用,则同步的点对点调用将失败,但可以设置队列以保证传递,处理重试或事务失败,对"有毒"的消息使用错误队列等.
JMS内置了两种传输模型:使用队列的点对点和使用主题的发布/订阅.每个都有自己的优势.
JMS和MDB的缺点是响应速度.您可能喜欢解耦,但如果您阻塞并等待响应,它肯定会比直接远程方法调用慢,因为涉及两个网络跳闸而不是一个.