#openshift
#openshift
Вопрос:
Я только изучаю OSE 3. Я бы хотел развернуть два Node.js Веб-приложения, которые я создал. Итак, я создал проект с двумя Node.js развертывания, которые теперь выполняются в их собственном модуле. Мой вопрос в том, как они должны взаимодействовать? скажем, например, одно приложение должно перенаправить на другое или включить компоненты из другого приложения. Должен ли я жестко кодировать маршрут каждого приложения в файле конфигурации или около того ? Спасибо!
Ответ №1:
Для внутренней связи между двумя службами вы можете использовать имя службы в качестве имени хоста при установлении соединений. Это возможно, потому что имена служб добавляются на внутренний DNS-сервер, так что поиск имени хоста по имени даст правильный IP-адрес для службы в это время. Когда служба имеет несколько модулей, внутренний балансировщик нагрузки IP автоматически перенаправит запрос на один из модулей.
Что касается вопроса о перенаправлениях, то, похоже, это наводит на мысль, что у вас обе службы общедоступны и вы хотите, чтобы одна служба возвращала HTTP-ответ, который перенаправляет HTTP-клиента на URL, который попадает в другую службу. Каким должен быть URL перенаправления, будет зависеть от того, как вы предоставляете услуги. То есть независимо от того, предоставляется ли каждая служба как другое имя хоста, или вы использовали маршрутизацию OpenShift на основе пути, чтобы наложить одну на дополнительный URL другой под тем же хостом.
В любом случае, вы, вероятно, захотите использовать переменную среды, переданную через конфигурацию развертывания, чтобы указать службе, запускающей перенаправление, какой префикс URL-адреса требуется перенаправить. Это можно настроить вручную. Это, по крайней мере, означает, что вы не встроили это в свой код.
Если вы подразумеваете что-то другое под перенаправлением, вам нужно будет лучше объяснить, что вы имеете в виду.
Комментарии:
1. Большое вам спасибо за ваш подробный ответ. Есть ли пример кода / руководства, в котором показан первый случай, о котором вы упомянули? (используя службу в качестве имени хоста).
2. Как называется служба в OpenShift? Вы просто берете это имя и используете его как имя хоста в своем коде, как имя хоста в адресе для подключения к сокету или как часть URL-адреса, если используете HTTP. Не уверен, что еще можно объяснить, так как не знаю, как написан ваш код.