1

我想知道消息传递系统中消息传递的可靠性,例如 WebsphereMQ 或 ActiveMQ(通过 JMS 使用)。据我所知,如果收件人不可用,则可以缓冲消息,稍后再发送。

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

明确我的问题:如果我需要确保最终收到消息,即使面对暂时的网络故障,消息传递系统是否是正确的选择?是否需要某种设置来实现这种可靠性?

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

4

2 回答 2

2

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

于 2009-07-10T12:49:21.923 回答
0

如果您真的不能丢失消息,我建议如果可以的话,在端点实现可靠的消息传递模式,即如果在特定时间段内没有收到确认,并且接收方有重复检测来应对,发送方会重新发送多次收到相同的消息。

保证交付会带来性能开销,并且通常不能保证您的消息可能需要多长时间才能到达那里。

于 2009-07-15T02:12:22.510 回答