9 подписчиков
Сегодня речь пойдет об архитектуре клиент-сервер. С ней сталкивался каждый человек, использующий интернет.
Очевидно, что когда при нажатии на кнопку на условном сайте, ему приходит нужный ответ, то приходит он не сам, а кто-то его отправляет. Этот кто-то - сервер, а тот, кто кликнул по кнопке - клиент.
Теперь о том, что делает клиент. Все просто, отправляет запросы серверу, ждёт ответа, а как только ответ приходит, отображает его. Клиенты есть разные и функции у них различные, но об этом в следующем посте.
Кто такой сервер? Тот, кто обрабатывает запрос клиента. Хотя может работать не один, а в связке с базой данных(о том, что это и с чем её едят было рассказано в предыдущих постах). Сервер получает запрос клиента, отправляет запрос в базу данных, получает ответ оттуда, преобразовывает его, отправляет клиенту.
В нашей модели может быть несколько серверов или несколько баз данных. А на какой сервер отправлять запрос клиента мы узнаем от балансировщика, задача которого распределять нагрузку в зависимости от схемы. Есть две схемы: "холодный резерв" и "горячий".
Начнём с горячего. Допустим, у нас есть несколько клиентов, 2 сервера и балансировщик. Клиент отправляет запрос, балансировщик его получает, спрашивает у каждого сервера, у кого сколько задач и отдает запрос наименее загруженному.
С холодным ситуация та же, но в балансировщик всегда отдает запрос 1 серверу, а второй подключается, когда первый не работает или на обновлении.
Из всех этих частей и строится вся архитектура.
На сегодня всё, в следующий постах рассмотрим, какие виды клиентов существуют и чем они отличаются.