Понятие и классификация web-приложений


Download 24.16 Kb.
bet2/3
Sana21.06.2023
Hajmi24.16 Kb.
#1638644
1   2   3
Bog'liq
web

Балансировщик нагрузки (2). Здесь следует описать термины «горизонтальное» и «вертикальное» масштабирования. «Горизонтальное» масштабирование выражается добавлением новых серверов для приложения, тогда как «вертикальное» подразумевает, что наращивается мощность (например, улучшается CPU или увеличивается количество RAM) существующего сервера.
Одной из причин горизонтального масштабирования является возможность поломки оборудования. Серверы не выдерживают нагрузки. В центрах обработки данных иногда отключается свет. Несколько серверов позволит переживать незапланированные отключения без нарушения работы приложения. Наращивание количества серверов увеличивает отказоустойчивость приложения. Горизонтальное масштабирование позволяет минимально связывать разные части проекта (веб-сервер, базу данных и т. д.), потому что каждая из них запускается на разных серверах. Вертикальное масштабирование имеет свой предел, так как в мире может не существовать более мощного аппаратного обеспечения.
Благодаря балансировщикам нагрузки возможно горизонтальное масштабирование. Они направляют входящие запросы на один из серверов приложения, которые обычно являются зеркальными копиями друг друга, и отправляют ответ обратно пользователю. Сервер обрабатывает запросы одинаково, так что балансировщик занимается распределением заданий, чтобы никакой из них не был перегружен.
Серверы веб-приложений (3) выполняют основную логику приложения, которая обрабатывает запрос пользователя и отправляет HTML обратно браузеру. Зачастую, для выполнения задачи используются различные сервисы. Например, базы данных, серверы кэширования, очереди заданий, службы поиска и так далее. Обычно, такие сервисы располагают на выделенных серверах.
Сервер баз данных (4). Базы данных используются для хранения данных web-приложения. Выделяют следующие типы баз-данных:
реляционные – используют табличное представление данных и язык SQL (Structured Query Language) в качестве инструмента для построения запросов к данным. Таблицы между собой могут связываться ключами, они, в свою очередь, часто представляются целыми числами. Реляционные базы данных зачастую плохо масштабируются горизонтально, а вертикально могут масштабироваться до определенного момента;
NoSQL - расшифровывается как «не-SQL» и представляет собой более новый набор технологий баз данных. Он был разработан для обработки очень больших объёмов информации, которые могут генерироваться крупномасштабными веб-приложениями
Кэширование (5) – это сохранение результата ранее выполненного алгоритма для дальнейшего использования. Данные хранятся в формате ключзначение, которое позволяет хранить и искать информацию за время, близкое к линейному (O(1)). Предназначено для ускорения быстродействия приложения, так как пользователь не станет долго ждать, пока его запрос будет обработан сервером. Кешировать можно любой тип данных, который приводится к строке, будь то HTML текст или сериализованные данные. Вот некоторые примеры из реального мира:
Google кэширует результаты поиска для популярных поисковых запросов, таких как «собака» или «машина», а не ищет их каждый раз заново;
Вконтакте кэширует большую часть данных, которые вы видите при входе в систему, например, списки друзей или постов.
Двумя наиболее распространёнными технологиями кэширования являются Redis и Memcache.
Можно выделить четыре уровня кэширования в сети: клиентский, сетевой, серверный и уровень приложения.
Одной из больших проблем программирования – это инвалидация кэша. Непонятно, когда сохраненный результат перестает быть актуальным. Для этого реализуется сброс данных при некоторых событиях. Например, во Вконтакте, когда добавляется новый друг, кэш сбрасывается, чтобы пользователю вывелся актуальный список.
Очереди задач (6). Когда необходимо выполнять долго выполняющиеся задачи, следует их работу выносить в фоновый режим, а не заставлять пользователя ждать окончания этой работы. Например, после оформления заказа необходимо отправить почтовое сообщение пользователю и администратору сайта. Пользователь не должен ждать, пока все сообщения отправятся и такую работу можно вынести в очередь задач.
Один сервер хранит базу данных задач в очереди, еще несколько – занимаются выполнением этих задач, такие сервера называют «работниками». Работники периодически обращаются в очередь, чтобы взять следующую задачу для выполнения.

Download 24.16 Kb.

Do'stlaringiz bilan baham:
1   2   3




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling