Вы можете использовать настройку topology.max.spout.pending
для регулирования расхода в зависимости от того, сколько кортежей находится в полете в топологии.Параметр задается для каждого экземпляра, так что если у вас есть, например, 10 исполнителей, и вы установите максимум 100 кортежей, вы получите максимум 1000 кортежей в топологии.
Вы можете использовать метод resetTimeout
вOutputCollector
для предотвращения сбоя кортежей, которые вы хотите отложить из-за тайм-аута.
При этом вам, вероятно, нужно собирать сообщения в большие пакеты.Если вы можете обрабатывать только 20 сообщений в секунду, и у вас есть вход 200 в секунду, вы начнете отставать и никогда не догоняете.