Storm Emit Execute Задержка
-
21-12-2019 - |
Вопрос
У меня есть штормовая топология, работающая в распределенной среде через 4 узла Unix.
У меня есть JMSSPOUT, который получает сообщение, а затем пересылает его на параметр Parsebolt, который будет разбирать необработанное сообщение и создать объект.
Чтобы помочь измерить задержку, мой JMSspout испускает текущее время в качестве значения, а затем, когда Parsebolt получает это, он снова получит текущее время и снижает разницу в качестве задержки.
Используя этот подход, я вижу 200+ мс, что вообще не звучит прямо.У кого-нибудь есть идея в отношении того, почему это может быть?
Решение
Это, вероятно, проблема в потоке.Storm использует одну и ту же нить для всех вызовов Nefout NextTuple (), и Emplicied Teblesed не обрабатываются до завершения вызова NextTuple ().Также есть очень плотная петля, которая несколько раз вызывает метод NextTuple (), и он может потреблять много циклов, если вы не ставите хотя бы короткий сон в реализации NextTuple ().
Попробуйте добавить сон (10) и излучаю только один кортеж за NementTuple ().