有一个 ActiveMQ 队列 ( QueueA
)。服务 ( MyService
) 订阅消息、处理它并将消息发送到另一个 ActiveMQ 队列 ( QueueB
)。
QueueA -> MyService -> QueueB
考虑一个有数千条消息的场景QueueA
。同时,QueueB
是下来。如果在向QueueB
. 它应该在特定时间段内测试滚动窗口(例如,100 条连续消息在 60 秒内失败)并停止从QueueA
. 然后,它应该通过再发送一条消息来测试服务是否在 15 分钟左右后启动。如果仍然失败,QueueA
请再次停止消费 15 分钟。
现在,正在发生的事情是所有消息都出错了,我们必须再次重新处理每条消息。有一种恢复机制,但由于当前架构的限制,恢复机制变得超负荷。
这有什么模式吗?它是同一个断路器吗(我在同步上下文中知道它)。如果是这样,不确定 Java / Spring Boot / Apache Camel 中是否有解决方案。是的,这就是我们目前使用的技术堆栈。即使您可能不了解此特定技术平台,该模式的任何指南也会有所帮助。
我还在 StackOverflow 中阅读了以下问题。
感谢并感谢您花时间帮助我。