Б Бёрнс - Распределенные системы. Паттерны проектирования
- Название:Распределенные системы. Паттерны проектирования
- Автор:
- Жанр:
- Издательство:Питер
- Год:2019
- ISBN:978-5-4461-0950-0
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Б Бёрнс - Распределенные системы. Паттерны проектирования краткое содержание
Распределенные системы. Паттерны проектирования - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
Паттерн Copier ................................................................ 191
Паттерн Filter .................................................................. 192
Паттерн Splitter ............................................................... 193
Паттерн Sharder .............................................................. 194
Паттерн Merger ............................................................... 196
Практикум. Создание событийно-ориентированного потока задач для регистрации нового пользователя ................ 198
Инфраструктура publish/subscribe .............................................. 201
Практикум. Развертывание Kafka ............................................... 202
Глава 12.Координированная пакетная обработка ....................... 205
Паттерн Join (барьерная синхронизация) ................................... 206
Паттерн Reduce ......................................................................... 207
Практикум. Подсчет ........................................................ 209
Суммирование ................................................................. 210
Гистограмма .................................................................... 211
Практикум. Конвейерная разметка
и обработка изображений ..................................................... 212
Глава 13.Заключение — новое начало? ..................................... 217
Об авторе ....................................................................................... 220
Об иллюстрации на обложке .......................................................... 221
Предисловие
Кому стоит прочесть эту книгу На сегодняшний день почти каждый разработчик является соз-дателем и/или потребителем распределенных систем. Даже относительно простые мобильные приложения опираются на облачные API, чтобы обеспечить доступность данных на любом устройстве, которым пожелает воспользоваться клиент. Будете ли вы новичком в разработке распределенных систем или зака-ленным в боях ветераном, паттерны и компоненты, описанные в этой книге, помогут превратить разработку таких систем из искусства в науку. Повторно используемые компоненты и пат-терны проектирования распределенных систем позволят вам сосредоточиться на важных деталях вашего приложения. Это издание поможет любому разработчику более качественно, эф-фективно и быстро создавать распределенные системы. Зачем я написал эту книгу
За свою карьеру разработчика программных систем — от веб-поисковиков до облачных систем — я создал множество мас-штабируемых, надежных распределенных систем. Каждая из Предисловие 13
них была, по большому счету, разработана с нуля. В целом это характерно для всех распределенных приложений. Несмотря на то что зачастую многие их принципы и логика работы со-впадают, шаблонные решения или повторно используемые компоненты не так-то просто применять. Это заставляло меня впустую тратить время на реализацию систем, качество которых могло быть лучше, чем оказывалось в конечном итоге. Появившиеся недавно технологии контейнеров и их орке-страторов фундаментально изменили ландшафт разработки распределенных систем. В наше распоряжение попал объект и интерфейс, которые позволяют выражать базовые паттерны проектирования распределенных систем и компоновать кон-тейнеризованные компоненты. Я написал эту книгу, чтобы сблизить нас, практикующих специалистов в области распре-деленных систем; чтобы у нас появились общий язык и общая стандартная библиотека; чтобы мы могли быстрее создавать более качественные системы.
Современный мир распределенных систем
Когда-то, много лет тому назад, люди писали программы, рабо-тавшие на той же машине, на которой к ним получали доступ пользователи. С тех пор ситуация изменилась. Теперь почти каждое приложение является распределенной системой , кото-
рая работает на многих машинах и к которой получает доступ множество пользователей по всему миру. Несмотря на их повсе-местное распространение, проектирование и реализация таких систем — «черная магия», которой владеют лишь избранные. Но, как и все другие технологии, мир распределенных систем разви-вается, упорядочивается и абстрагируется. В этой книге я опи-сываю набор обобщенных повторяемых паттернов (шаблонов), 14Предисловие
которые делают разработку надежных распределенных систем более доступной и эффективной. Внедрение паттернов проек-тирования и повторно используемых компонентов освобождает разработчиков от необходимости повторно реализовывать одни и те же системы. В сэкономленное время можно сосредоточить-ся на разработке ключевых частей приложения. Как ориентироваться в книге Книга разделена на четыре части следующим образом. Глава 1. Введение. Вводит понятие распределенной системы
и объясняет, каким образом паттерны проектирования и по-вторно используемые компоненты способствуют быстрой разработке надежных распределенных систем.
Часть I. Одноузловые паттерны проектирования. В гла-вах 2–4 обсуждаются повторно используемые паттерны и компоненты, имеющие место в рамках одного узла распре-деленной системы. В частности, рассматриваются паттерны Sidecar, Adapter и Ambassador.
Часть II. Паттерны проектирования обслуживающих си-стем.В главах 8–9 рассматриваются многоузловые паттер-ны, применяемые в постоянно работающих обслуживающих системах, таких как веб-приложения. Обсуждаются паттерны репликации, масштабирования и выбора главного узла.
Часть III. Паттерны проектирования систем пакетных вы-числений.В главах 10–12 рассматриваются паттерны распре-деленных систем для широкомасштабной обработки данных, в том числе очереди задач, событийно-ориентированная обработка и согласованные рабочие процессы.
Если вы опытный разработчик распределенных систем, мо-жете пропустить первые несколько глав. Тем не менее вам Предисловие 15
стоит хотя бы пролистать их, чтобы понять, как применять паттерны проектирования и почему считается, что сама идея паттернов проектирования распределенных систем настоль-ко важна.
Многие, вероятно, найдут полезными одноузловые паттерны, так как они являются наиболее универсальными и их проще всего использовать повторно.
В зависимости от ваших целей и от того, какие системы вы со-бираетесь разрабатывать, имеет смысл сосредоточиться либо на паттернах обработки больших объемов данных, либо на пат-тернах проектирования постоянно работающих серверов (либо и на тех и на других). Части II и III практически не зависят друг от друга, и их можно читать в любом порядке. Если вы имеете обширный опыт разработки распределенных систем, то, возможно, посчитаете некоторые паттерны из первых глав избыточными (например, описанные в части II именование, обнаружение, распределение нагрузки). Тогда можете их просто пролистать, чтобы получить общее представление, но по пути не забудьте рассмотреть все иллюстрации! Условные обозначения
В данной книге приняты следующие условные обозначения. Курсив
Курсивом выделяются новые термины, слова, на которых сделан акцент.
Читать дальшеИнтервал:
Закладка: