2017-01-16 10 views
0

Недавно я принял решение о разработке собственного webapp после ухода предыдущего разработчика.Отказывать, если webapp не имеет статуса

Одна из вещей в списке дел состоит в том, чтобы реализовать несколько процессов на Сервере, которые, по-видимому, легко могут быть реализованы с использованием PM2.

Однако одним из требований PM2 является то, что приложение должно быть без гражданства, и я изо всех сил пытаюсь полностью понять, что мне нужно, чтобы преследовать.

Основная архитектура - REST с узлом/Hapi на бэкэнд с угловым интерфейсом.

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

Как далеко мы должны идти на переднем конце. Нужно ли нам устранять сохранение клиентской информации в $ scope? Мне все равно, есть ли что-либо в локальном хранилище или хранилище сеансов в инструментах Chrome Dev?

ответ

-1

Вам необходимо разъяснить это с помощью вашего PM. В зависимости от определения ни один веб-сайт не является апатридом (кешем). Затем, как только у вас будет сеанс или авторизация, у вас есть состояние.

Забудьте об этом объекте $ scope/LocalStorage, если вы не хотите удалять наиболее полезные функции. Mooost, вероятно, это требование BS, если не указано дополнительно.

+0

Небольшая команда. Нет, чтобы проконсультироваться. Требование без гражданства поступает от PM2 по причинам, упомянутым Сергеем. Просто пытаясь окутать голову, какие аспекты дизайна мне нужно обеспечить, не имеют гражданства, поэтому я не буду гоняться за гусями –

+0

Ну, это другая история и действительное требование. Я неправильно понял PM2 как Project Manager 2 (например, вы говорите о разных людях). Простите за это. Если вы используете базу данных sql, вы можете начать поиск, если вы должны перенести некоторые операции в транзакции. – Harper04

1

PM2 требуется, чтобы приложение было безграждан, чтобы гарантировать, что любой запрос обрабатывается одинаково (например, имеет тот же ответ и побочные эффекты) независимо от того, на каком обрабатываемом (экземпляре сервера) он обрабатывается.

Таким образом, вы не должны заботиться о приложении для конечного пользователя. Требование безгражданства просто не применяется к нему.

1

Безстоящий в этом контексте означает, что сервер Hapi не должен поддерживать какое-либо состояние между запросами api. В типичной настройке у вас может быть база данных, сервер api и клиент (веб-браузер). Когда клиент делает запрос на ваш api, если все, что он делает, выполняет некоторую логику, выполняет транзакцию в базе данных, затем возвращает результат клиенту, тогда вы можете сказать, что сервер api является «без гражданства».

Если, с другой стороны, сервер Hapi сохраняет результат этой транзакции в памяти (кеширование) в случае, если какой-либо будущий запрос запрашивает ее, у вас есть «с состоянием» сервер, который может предоставлять устаревшую информацию, если другой экземпляр обновляет базу данных тем временем.

Две основные области, на которых следует сосредоточиться, - это данные сеанса и веб-порты. Данные сеанса должны храниться вне процесса, то есть в базе данных или в хранилище в памяти, таком как Redis. Для Websockets необходимо, чтобы для работы с кластерами было задействовано то, что называется «липкий сеанс». Не нужно было это делать сам, но есть модуль узла sticky-session, который выполняет большую часть работы.

+0

Вот что я подумал, и я уверен, что API не имеет гражданства, но знание того, где сосредоточиться, делает задачу управляемой –

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

  • Нет связанных вопросов^_^