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

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

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

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

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

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

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

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

Интервал:

Закладка:

Сделать

Помимо названия темы и ссылки на сервис ZooKeeper, обра-тите внимание на два интересных параметра: --replication-factor и --partitions . Множитель репликации устанавливает, на сколько машин будет реплицироваться тема. Он характе-ризует степень избыточности, доступной в случае отказа. Рекомендуется использовать значение 3 или 5 . Второй па-раметр — количество разделов в теме. Количество разделов соответствует максимальному числу машин, на которые тема будет распространяться с целью балансирования нагрузки. Поскольку в данном случае мы задали десять разделов, для балансирования нагрузки может использоваться не более десяти копий.

204Часть III. Паттерны проектирования систем пакетных вычислений В созданную только что тему теперь можно отправлять со-общения:

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

./bin/kafka-console-producer.sh

--broker-list kafka-service-kafka:9092 \

--topic photos-1

После выполнения данной команды появится приглашение командной строки Kafka, откуда можно отправлять сообщения в тему (-ы). Для получения сообщений выполним команду: kubectl run kafka-consumer --image=solsson/kafka:0.11.0.0 --rm -it --command -- \

./bin/kafka-console-consumer.sh --bootstrap-server kafka-service-kafka:9092\

--topic photos-1 \

--from-beginning

Запуск этих команд позволяет лишь поверхностно ознакомить-ся с механизмами коммуникации на основе Kafka-сообщений. Чтобы построить настоящую событийно-ориентированную систему пакетной обработки, вам, скорее всего, придется ис-

пользовать настоящий язык программирования и инструмен-тарий разработчика Kafka SDK. С другой стороны, не следует недооценивать мощь хорошего bash-сценария! Этот пример показал вам, как установить инструментарий Kafka в Kubernetes-кластер, и то, насколько сильно он упрощает по-строение систем на основе очередей задач. 12 Координированная пакетная обработкаВ предыдущей главе мы рассмотрели паттерны разделения и сцепления очередей, позволяющие реализовать более слож-ную пакетную обработку. Дублирование и порождение не-скольких наборов выходных данных — значительная часть пакетной обработки, но иногда не менее важным оказывается слияние нескольких выходных потоков данных с целью полу-чения некоторого агрегированного результата. Общая схема подобного паттерна приводится на рис. 12.1. Наиболее типичный пример подобной агрегации — паттерн MapReduce. Нетрудно заметить, что шаг Map соответствует шардированию очереди задач, а шаг Reduce — координирован-ной обработке, в результате которой большое количество дан-ных агрегируется в один ответ. Кроме MapReduce, существует еще несколько паттернов пакетной обработки. В этой главе рассмотрены некоторые из них, а также соответствующие при-ложения.

206Часть III. Паттерны проектирования систем пакетных вычислений

Распределенные системы Паттерны проектирования - изображение 121 Распределенные системы Паттерны проектирования - изображение 122 Рис 121 Обобщенная пакетная система распределениязадач и агрегации - фото 123 Рис 121 Обобщенная пакетная система распределениязадач и агрегации - фото 124

Рис. 12.1. Обобщенная пакетная система распределениязадач и агрегации результатов

Паттерн Join (барьерная синхронизация) В предыдущих главах мы рассмотрели паттерны распределения работы между несколькими вычислительными узлами. В част-ности, разобрались, как шардированная очередь задач может па-раллельно распределять нагрузку на несколько шардов очереди задач. Иногда очередной этап обработки потока задач требует наличия полного набора данных, прежде чем можно будет про-должить вычисления.

Одним из вариантов, как показано в предыдущей главе, будет слияние нескольких очередей воедино. Однако слияние попро-Глава 12. Координированная пакетная обработка 207сту объединяет выходы двух очередей в один поток, который подвергнется дальнейшей обработке. Паттерна слияния в неко-торых случаях достаточно, но он не гарантирует готовность все-го набора данных до момента начала обработки. Следовательно, полнота выполняемой обработки не может быть гарантирована. Кроме того, нет возможности подсчитать агрегированную ста-тистику по обработанным элементам данных. Нам нужен другой примитив пакетной обработки данных, более строгий и координирующий. Таким примитивом и выступает паттерн Join. Паттерн Join по смыслу аналогичен слиянию по-токов. Основная идея данного паттерна состоит в том, что, хотя значительная часть обработки осуществляется параллельно, эле-менты очереди задач не могут выйти из блока Join, пока не будут вычислены все элементы параллельно вычисляемого набора дан-ных. Подобный прием в параллельном программировании также известен под названием «барьерная синхронизация» . Паттерн ко-ординированной пакетной обработки Join изображен на рис. 12.2. Координация с помощью Join гарантирует, что до выполне-ния агрегации (например, суммирования элементов) ни один элемент данных не останется невычисленным. Достоинство паттерна Join в том, что он обеспечивает наличие всех данных в агрегируемом наборе. Недостаток паттерна Join в том, что перед началом вычислений он требует, чтобы все данные были обработаны на предыдущем этапе вычислений. Это снижает до-ступный в рамках пакетной обработки уровень параллелизма, а значит, увеличивает задержку выполнения потока задач. Паттерн Reduce

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

Интервал:

Закладка:

Сделать

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

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


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

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

x