Восстановление внутренних сообщений в очереди при остановке приложения потоков
У нас есть потоковое приложение (IBM Infosphere Streams), в котором входные данные для приложения поступают из input_queue(очередь JMS), а выходные данные снова записываются в некоторую output_queue(очередь JMS). В настоящее время мы говорим о сообщениях, превышающих 300 тыс. В час, но иногда приложение забивается (из-за ограниченности доступных ресурсов), и сообщения помещаются в очередь внутри приложения, и output_queue не получает сообщения в то же время темп. Так что исправьте это, у нас нет другого выбора, кроме как запретить прием сообщений из input_queue в потоковое приложение и перезапустить приложение с включенным приемом. В течение этого времени внутреннее сообщение в очереди теряется. Поэтому мы с нетерпением ждем восстановления потерянных сообщений в случае, если требуется остановить потоки. Один из подходов, о котором мы подумали, - это иметь другую очередь, которая принимает сообщения внутри потоков, в то время как они их принимают. и удаляет их, как только они отправляются в очередь вывода, и в случае остановки потоков мы можем сначала воспроизвести эти сообщения во внутренней очереди, а затем начать обработку других сообщений из input_queue.
Теперь вопрос в том, насколько эффективен этот подход, и, если возможно, может ли кто-нибудь предложить обходные пути. Мне сказали, что отправка сообщений в очередь по сети - дорогостоящая операция. Итак, какие у нас есть варианты. Предположения приветствуются. Спасибо.