Я делаю проект, который должен включать балансировку нагрузки с использованием платформы OpenStack. Он сводится к тому, что запросы браузера, выполняющие сценарии с большим количеством вычислений, распределяются по нескольким виртуальным машинам, работающим под управлением некоторых дистрибутивов Linux.
Из-за того, что все попытки установки OpenStack были ужасно неправильными, я использовал TryStack.org — бесплатную и работающую среду. Очевидная проблема здесь в том, что она предлагает очень ограниченные ресурсы. Например, у меня может быть только 1 плавающий (внешний) IP-адрес, который может быть назначен только одному отдельному экземпляру (виртуальной машине), и существуют меры, которые делают невозможным его изменение через API.
Из-за этих ограничений мне приходится работать с очень специфической настройкой: у меня есть сеть с узлами A, B и C. A, B и C могут связываться друг с другом, но только у A есть внешний IP, т.е. доступен через браузер.
Поэтому я должен:
направить все запросы браузера к A,
иметь запрос (и ждать) выполнения сценариев с большими вычислениями на B / C,
заставить B / C отослать результаты после их завершения
и, наконец, получите A dress результаты в HTML и отправьте ответ обратно в браузер.
Есть ли механизм в PHP, который может сделать 2. и 3.? Если нет, то какой (совместимый с Linux) язык / технология может это сделать? (Я уже написал почти весь код на PHP, но я полагаю, что могу переключиться.)
В качестве альтернативы: есть ли какой-нибудь другой бесплатный сервис OpenStack, который позволил бы мне назначать каждому экземпляру IP (в этом случае проблему распространения можно было бы решить с помощью простых перенаправлений)?
Как arkascha посоветовал в комментариях, я использовал curl
просто отправить запрос страницы от A до B / C, а затем проанализировал страницу с помощью текстовых манипуляций.
Других решений пока нет …