0

我们有一个流应用程序(IBM Infosphere Streams),其中应用程序的输入来自 input_queue(JMS 队列),输出再次写入某个 output_queue(JMS 队列)。目前我们正在谈论每小时超过 300k 的消息,但有时,应用程序会被阻塞(由于可用资源有限)并且消息在应用程序内部排队,而 output_queue 不会同时获得消息速度。所以解决这个问题,我们别无选择,只能禁止从 input_queue 将消息摄取到流应用程序中,并在启用摄取的情况下重新启动应用程序。在此期间,内部排队的消息会丢失。因此,我们期待在需要停止流的情况下恢复丢失的消息。我们想到的一种方法是,有另一个队列,它在接收流中的消息时接收它们。并在它们发布到输出队列后将其删除,如果必须停止流,我们可以先在内部队列中重放这些消息,然后开始处理来自 input_queue 的其他消息。

现在的问题是这种方法的效率如何,如果可能的话,任何人都可以提出解决方法。有人告诉我,通过网络发布到队列是一项昂贵的操作。所以我们有什么选择。欢迎提出建议。谢谢。

4

0 回答 0