Как вернуть занятость сервера 503 на основе использования процессора/памяти или ожидающих запросов?

Я работаю над высокопроизводительным веб-приложением, которое использует причал и трикотаж для REST. Я пытаюсь найти лучший способ вернуть 503, если загрузка ЦП, пропускная способность памяти или ожидающие соединения высоки.

Поискав в Интернете, я не нашел много инструкций о том, как это сделать, и почти ничего на Jetty.

Способ сделать это с помощью прокси, фильтра, кода в сервлете?


person mbdev    schedule 31.08.2011    source источник


Ответы (1)


это в значительной степени зависит от того, какая у вас ОС. если вы работаете в Linux, то довольно легко добавить 503 на основе процессора/памяти - используйте /proc/meminfo и время безотказной работы, чтобы вычислить нагрузки и действовать по своему усмотрению. что касается ожидающих соединений, это более сложно, и решение следует искать на уровне apache (учитывая, что вы apache).

мои 2 цента.

person jancha    schedule 31.08.2011
comment
На каком уровне (скрипт/фильтр/код) лучше всего это сделать? если сервер занят, возможно, он даже не сможет добраться до кода, возвращающего 503. - person mbdev; 01.09.2011
comment
ну, если у вас высокие нагрузки, я бы посоветовал настроить правильный кластер. тогда балансировщик будет следить за узлами. и в случае, если нет узла для обслуживания запроса, он может вернуть его с правильным сообщением. Кроме того, вы можете рассмотреть nginx - у него хороший и простой способ обработки ситуаций с высокой нагрузкой. - person jancha; 01.09.2011