2009-07-10 155 views
1

我很想知道邮件系统(如WebsphereMQ或ActiveMQ(通过JMS使用))中消息传递的可靠性。据我所知,如果收件人不可用,消息可以被缓冲,并且稍后会被发送。消息队列:网络故障时消息是否丢失?

现在我想知道,如果发件人暂时无法到达的网络发生了什么。是否有某种本地缓冲将在稍后发送消息?我认为这取决于消息代理正在运行的位置。所有机器上都有本地经纪人,还是只有中央经纪人?

查明我的问题:是消息传递系统是正确的选择,如果我需要确保,该消息最终得到,即使在网络暂时不通的脸吗?为了达到这种可靠性,是否需要一定的设置?

相关文档任何指针将不胜感激。

回答

2

常见的解决办法被称为“存储转发”。在这样的系统中,一旦你将消息传递给本地消息代理,它就成了他们的责任。这位经纪人可能不是一个完整的经纪人。如果消息传递系统具有基本的传递保证,则本地代理仍然需要对消息进行持续缓冲,直到它们被移交给真正的代理。

0

如果你真的无法承受失去我建议落实在端点处,如果你能可靠消息传递模式的消息,即发送方重新发送,如果没有确认在一定的时间内收到和接收器重复检测以处理多次接收相同的消息。

保证交付配备了性能开销,通常不作出任何保证为您的信息可能要持续到那里。