Есть ли способ активно отслеживать HTTP-запросы на Rails, чтобы перенаправить запрос другому монгрелу, если он истечет? - PullRequest
0 голосов
/ 18 августа 2010

Я работаю с клиентом, администратор которого отказывается устанавливать monit или god на свой веб-сервер для перезапуска заблокированных или медленных шавок / потоков, так как они считают, что приложение должно работать без сбоев, а потоки никогда не должны блокироваться / работать медленно.

К сожалению, их приложение делает много обращений к сторонним веб-сервисам, многие из которых работают медленно, а их база данных сильно неоптимизирована (я не могу получить доступ или нажать, чтобы изменить это), поэтому существует много медленных запросов AR, вызывающихtimeouts.

Можно ли активно отслеживать HTTP-запросы, и если кто-то передается медленному / заблокированному монгрелу, то перенаправить его на активный?

Я знаю, что это может привести к медленномуответ, но лучше медленнее, чем ошибка времени ожидания соединения.

Спасибо!

1 Ответ

0 голосов
/ 19 августа 2010

Вы можете установить HAProxy или использовать nginx в качестве балансировщика нагрузки с циклическим перебором, но на самом деле я советую вам пропустить их и установить Passenger gem , доступный для Apache или nginx, де-факто стека Rails на некоторое время. , Вы также можете запустить Passenger в разработке (Google для статей). Я предлагаю вам настаивать на SysAdmin, что Passenger является частью стека приложений.

...