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

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

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

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

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

Распределенные системы. Паттерны проектирования - читать книгу онлайн бесплатно, автор Б Бёрнс
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

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

мать новых пользователей даже в условиях частичного отказа подсистемы регистрации. Каждый шард отправляет конечным пользователям проверочные письма. Первый этап потока за-вершен. Схема первого этапа приводится на рис. 11.8.

Распределенные системы Паттерны проектирования - изображение 110 Распределенные системы Паттерны проектирования - изображение 111 Распределенные системы Паттерны проектирования - изображение 112 Распределенные системы Паттерны проектирования - изображение 113 Распределенные системы Паттерны проектирования - изображение 114 Распределенные системы Паттерны проектирования - изображение 115

Рис. 11.8. Первый этап потока задач по регистрации нового пользователяПоток возобновляется при получении подтверждения от поль-зователя. Оно становится событием в отдельном (но связанном) потоке задач, который отправляет подтверждения и настраивает уведомления. Первый его этап служит примером реализации 200Часть III. Паттерны проектирования систем пакетных вычислений паттерна Copier, распределяющего пользователей в две очере-ди. Первая очередь задач отвечает за отправку приветственных электронных писем, а вторая — за настройку уведомлений. Как только задачи были распределены в две очереди, очередь на от-правку письма отправляет сообщение, и на этом данная ветвь пото-ка завершается. Но за счет использования паттерна Copier активна еще одна ветвь потока задач. Она связана с обработкой настроек уведомлений. Данная очередь задач относится к контейнеру-филь-тру, который делит ее на очереди подписки на почтовые и СМС-уведомления. Соответствующие очереди задач подписывают поль-зователей на уведомления по электронной почте и/или СМС. Оставшаяся часть потока задач приводится на рис. 11.9.

Распределенные системы Паттерны проектирования - изображение 116 Распределенные системы Паттерны проектирования - изображение 117 Распределенные системы Паттерны проектирования - изображение 118 Распределенные системы Паттерны проектирования - изображение 119

Рис. 11.9. Очередь задач по уведомлению пользователей и рассылкеприветственных электронных писем

Глава 11. Событийно-ориентированная пакетная обработка 201Инфраструктура publish/subscribe Мы рассмотрели много разных паттернов, связывающих реа-лизации паттернов событийно-ориентированной пакетной обработки. При фактической реализации подобной системы приходится решать, каким образом управлять потоком данных, идущим параллельно потоку задач. Проще всего будет записы-вать каждый элемент очереди задач в определенном каталоге локальной файловой системы, за появлением новых задач в ко-тором выполняется наблюдение на конкретном этапе обработки. Использование локальной файловой системы ограничивает рабочую область одним узлом. Можно воспользоваться сетевой файловой системой, распределяющей файлы между множе-ством узлов, но это усложняет и код приложения, и процесс его развертывания.

При реализации подобных потоков задач принято использовать API или сервис типа pub/sub (publish/subscribe, публикация/ подписка). API pub/sub позволяет определить набор очередей, иногда называемых темами . Один издатель или более публи-куют в этих очередях сообщения. По аналогии один подписчик или более «прослушивают» их в ожидании новых сообщений. После опубликования сообщение надежно хранится в очереди и таким же надежным образом доставляется подписчикам. На сегодняшний день большинство публичных облачных провайдеров предоставляют pub/sub-API, к примеру Azure EventGrid или Amazon Simple Queue. Кроме того, на собствен-ном оборудовании или в облачных виртуальных машинах можно использовать довольно популярную реализацию pub/ sub-API под названием Apache Kafka ( https://kafka.apa che.org/ ). В оставшейся части обзора pub/sub-API в примерах мы будем использовать Kafka, но их будет несложно перенести на дру-гие реализации pub/sub.

202Часть III. Паттерны проектирования систем пакетных вычислений Практикум. Развертывание Kafka Очевидно, существует множество способов развертывания Kafka. Один из простейших подходов — использование кон-тейнера под управлением оркестратора Kubernetes и мене-джера пакетов helm.

Helm — менеджер пакетов для Kubernetes, упрощающий развер-тывание и управление готовыми приложениями наподобие Kafka. Если у вас еще не установлен инструмент командной строки helm, загрузить его можно с сайта http://helm.sh .

Инструмент helm после установки необходимо инициализиро-вать. В процессе инициализации helm разворачивает в вашем кластере компонент под названием tiller и устанавливает ряд паттернов на локальной системе.

helm init

После инициализации helm установите Kafka, выполнив сле-дующие команды:

helm repo add incubator

http://storage.googleapis.com/kubernetes-charts-incubator helm install --name kafka-service incubator/kafka

поддержки Инкубаторные incubator паттерны носят более экспериментальный - фото 120

поддержки

Инкубаторные (incubator) паттерны носят более экс-периментальный характер и в меньшей степени опро-бованы в «боевых» условиях. Инкубаторные паттерны полезны для быстрой PoC-реализации (proof-of-concept) сервисов, а также в качестве начальной точки для развертывания рабочей среды сервисов, работающих

Глава 11. Событийно-ориентированная пакетная обработка 203После установки и запуска Kafka можно создавать темы, а в них — делать публикации. В рамках пакетной обработки тема соответствует выходным данным одного из модулей пото-

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

К примеру, в рамках ранее рассмотренного паттерна Sharder каждому из выходных шардов будет соответствовать своя тема. Если выходной шард называется Photos и всего у вас их три, то и темы также будет три — Photos-1, Photos-2 и Photos-3. После вычисления значения шардирующей функции модуль шардирования публикует сообщение в соответствующей теме. Рассмотрим, как создать тему. Чтобы получить доступ к Kafka, сначала создадим контейнер в кластере:

for x in 0 1 2; do

kubectl run kafka --image=solsson/kafka:0.11.0.0 --rm --attach --command -- \

./bin/kafka-topics.sh --create --zookeeper kafka-service-zookeeper:2181 \

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

Интервал:

Закладка:

Сделать


Б Бёрнс читать все книги автора по порядку

Б Бёрнс - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




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


Отзывы читателей о книге Распределенные системы. Паттерны проектирования, автор: Б Бёрнс. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x