У меня есть требование, когда мне нужно дросселировать путем формирования (очереди) входящего трафика, когда клиентское приложение отправляет более 1000 запросов в течение 5 секунд.Как отложить потребление сообщений в Apache Camel от ActiveMQ
Решение, за которым я последовал, является: У меня есть верблюд: настройка дроссельной заслонки макс. Запросов до 1000 и от 1 до 5 секунд. Когда порог превышен, я перехватываю исключение дросселя и внутри блока onException, я отправляю дросселированные сообщения в очередь запросов ActiveMQ для дальнейшей обработки позже, когда Camel перегружен на основе конфигурации 1000 req/5 sec.
Успешное выполнение вышеизложенного, однако я бы хотел, чтобы потребитель Camel продолжал обрабатывать позже не все сообщения из очереди запросов ActiveMQ на одном снимке, а обрабатывал каждое сообщение с задержкой в 10 секунд, например.
Я не могу установить параметр в ActiveMQ, чтобы сказать, что задержка сообщения для потребителя или задержка потребителя Camel, вытащившего сообщение из очереди запросов.
Как удовлетворить мое требование выше
Пожалуйста, помогите
Благодаря Рамеш.
Привет Fritz ... спасибо за ответ ... Я хотел бы установить интервал задержки, а не выборка х количество сообщений сразу Можете ли вы помочь для такого использования дело? –
Просто установите prefetchSize на 1. Важная особенность предварительной выборки, которую вы используете, заключается в том, что потребитель ждет с дальнейшим потреблением до тех пор, пока не будет подтверждено последнее извлеченное сообщение. –