gpt4 book ai didi

java - 订阅者队列的多实例 | ActiveMQ

转载 作者:行者123 更新时间:2023-11-30 06:51:42 27 4
gpt4 key购买 nike

使用activeMQ作为模块之间进行数据通信的媒介。让生产者 P、订阅者 S1 S2 从 P 读取数据。使用队列作为数据集以循环方式分发数据。 S1、S2 正在按预期接收数据。拥有S1、S2是为了实现故障安全和负载平衡。数据处理完后发送ACK,以确保我们不会错过来自P的任何数据。

观察到 S1 因读取一些数据而未完全处理而关闭的情况(因此,尚未发送 ACK)。我期望 ActiveMQ 重新发送(未确认的)数据到 S2。当然,重启时数据会发送到 S1。但时间框架也很重要。

帮助我理解实现机制。感谢您的帮助。

最佳答案

... where S1 is down... I was expecting ActiveMQ to re-sent(un-ACK'ed) data to S2

这并没有发生?当您说 S1 已关闭时,您的意思是它实际上已关闭,还是意味着它只是因为挂起而无法处理任何消息?

在后一种情况下,您看到的行为是设计使然 - 只要 S1 仍处于连接状态,代理就不会释放 S1 预取缓冲区中的消息(至少在达到消息到期超时之前)。

在前一种情况下,S1 的队列连接保持 Activity 超时将达到(在可配置的时间之后),并且 S1 预取中的所有消息都应回滚到代理并可供 S2 处理。

关于java - 订阅者队列的多实例 | ActiveMQ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42644480/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com