Б Бёрнс - Распределенные системы. Паттерны проектирования

Здесь есть возможность читать онлайн «Б Бёрнс - Распределенные системы. Паттерны проектирования» весь текст электронной книги совершенно бесплатно (целиком полную версию без сокращений). В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Год выпуска: 2019, ISBN: 2019, Издательство: Питер, Жанр: Прочая околокомпьтерная литература, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

Распределенные системы. Паттерны проектирования: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «Распределенные системы. Паттерны проектирования»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

Современный мир попросту немыслим без использования распределенных систем. Даже у простейшего мобильного приложения есть API, через который оно подключается к облачному хранилищу. Однако проектирование распределенных систем до сих пор остается искусством, а не точной наукой. Необходимость подвести под нее серьезный базис назрела давно, и, если вы хотите обрести уверенность в создании, поддержке и эксплуатации распределенных систем — начните с этой книги!

Распределенные системы. Паттерны проектирования — читать онлайн бесплатно полную книгу (весь текст) целиком

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «Распределенные системы. Паттерны проектирования», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

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

трудняет проведение экспериментов и внесение изменений в процесс взаимодействия пользователя с приложением. Рассмотрим реализацию входа пользователя в систему как со-бытийный конвейер из нескольких FaaS-сервисов. При таком разделении функция создания пользователя понятия не имеет, Глава 8. Функции и событийно-ориентированная обработка 149что происходит во время входа пользователя в систему. У нее есть два списка:

‰ ‰ список необходимых действий (например, отправка привет-ственного электронного письма);

‰ ‰ список необязательных действий (например, подписка на рассылку).

Каждое из этих действий также реализуется в виде FaaS, а спи-сок действий есть не что иное, как список HTTP-функций об-ратного вызова. Стало быть, функция создания пользователя имеет следующий вид:

def create_user(context):

# Безусловный вызов всех необходимых обработчиков for key, value in required.items():

call_function(value.webhook, context.json) # Необязательные обработчики выполняются

# при соблюдении определенных условий

for key, value in optional.items():

if context.json.get(key, None) is not None: call_function(value.webhook, context.json) Каждый из обработчиков теперь также можно реализовать по принципу FaaS:

def email_user(context):

# Получить имя пользователя

user = context.json['username']

msg = 'Здравствуйте, {}, спасибо, что воспользовались нашим замечательным сервисом!".format(user)

send_email(msg, contex.json['email])

def subscribe_user(context):

# Получить имя пользователя

email = context.json['email']

subscribe_user(email)

150Часть II. Паттерны проектирования обслуживающих систем Декомпозированный таким образом FaaS-сервис становится значительно проще, содержит меньше строк кода и сосредо-точен на реализации одной конкретной функции. Микросер-висный подход упрощает написание кода, но может привести к сложностям при развертывании и управлении тремя разными микросервисами. Здесь подход FaaS проявляет себя во всей красе, поскольку в результате его использования становится очень просто управлять небольшими фрагментами кода. Визуа-лизация процесса создания пользователя в виде событийного конвейера позволяет также в общих чертах понять, что именно происходит во время входа пользователя в систему, просто про-следив изменение контекста от функции к функции в рамках конвейера.

9 Выбор владельцаРанее рассмотренные паттерны касались преимущественно распределения запросов с целью увеличения количества об-рабатываемых в секунду запросов, сокращения времени обра-ботки запроса, необходимости передачи состояния. Последняя глава в разделе о многоузловых паттернах проектирования касается масштабирования закрепления ресурсов. Во многих системах фигурирует такое понятие, как владение , — когда кон-кретный процесс владеет конкретной задачей. Такое мы уже видели при рассмотрении систем с фиксированным и «горя-чим» шардированием. Конкретные экземпляры шардированно-го сервиса владеют соответствующими частями пространства ключей шардирования.

В контексте единственного сервера владения добиться неслож-но, поскольку только одно приложение устанавливает владение и делает это с помощью хорошо известного механизма блоки-ровок, что обеспечивает единоличное владение актора конкрет-ным шардом или контекстом. Ограничение владения одним 152Часть II. Паттерны проектирования обслуживающих систем приложением снижает масштабируемость, так как репликация становится невозможна. Снижается и надежность, поскольку при отказе приложения оно становится на некоторый период времени недоступно. Следовательно, когда в системе требуется механизм владения, необходимо разработать распределенную систему установления владения.

Общая схема распределенного владения приводится на рис. 9.1. На схеме показаны три экземпляра, каждый из которых может быть владельцем, или хозяином. Сначала владельцем будет пер-вый экземпляр. Если в нем случится ошибка, владельцем станет третий экземпляр.

Наконец, первый экземпляр восстанавливает работу и снова входит в группу, но при этом третий экземпляр все так же оста-ется владельцем.

Распределенное владение — одновременно самая сложная и са-мая важная часть проектирования надежной распределенной системы.

Как определить, нужен ли выбор владельца

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Похожие книги на «Распределенные системы. Паттерны проектирования»

Представляем Вашему вниманию похожие книги на «Распределенные системы. Паттерны проектирования» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


Отзывы о книге «Распределенные системы. Паттерны проектирования»

Обсуждение, отзывы о книге «Распределенные системы. Паттерны проектирования» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x