2014-02-07 3 views
1

Ahoi,SpringBoot интегрированного кот: настроить, чтобы ограничить запросы

Я строй немного RESTful WebService с пружинной загрузкой с интегрированным котом. Затем я попытался проверить, насколько я уверен, что отправка многих HTTP-запросов (с помощью теста apache) резко увеличивает использование памяти до тех пор, пока служба не завершится с ошибкой из-за исключения OutOfMemoryException - также, похоже, она не сможет восстановиться в разумные сроки.

Не удалось найти документацию о том, как настроить интегрированный tomcat, например. ограничить количество запросов по IP (или что еще имеет смысл?). Также мне интересно, есть ли какие-либо известные утечки памяти, так как несколько 1000 запросов не должны действительно приводить кошку вниз (я запускаю .jar с -Xms512m -Xmx1024m)

Я ценю вашу помощь!

+0

как я сделал аналогичную вещь только на прошлой неделе, я бы сказал, у вас есть утечка памяти в вашем коде ... (потому что это было хорошо на моих тестах) – wrm

+0

На самом деле я уверен, что утечки памяти нет. Когда вы получаете больше памяти, он не падает и визуализация использования памяти с помощью visualVM показывает, что он всегда возвращается к разумной базовой линии сразу после запросов на объемную скамейку. Может быть, мой вопрос скорее должен быть: как настроить tomcat не на crash = ( – Alex

+0

Может быть, если вы можете поделиться простым проектом, который демонстрирует проблему? –

ответ

1

Я не думаю, что у Tomcat есть такой фильтр, но для этой цели должно быть довольно тривиально добавить javax.servlet.Filter. RateLimiter class from Guava - отличный ресурс для ограничения чего-то вроде количества запросов, разрешенных для каждого IP-адреса в окне времени.

Смежные вопросы