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

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

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

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

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

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

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

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

Интервал:

Закладка:

Сделать
Рис 54 Работа кэширующего сервера Для наших целей воспользуемся кэширующим - фото 34

Рис. 5.4. Работа кэширующего сервера

Для наших целей воспользуемся кэширующим веб-сервером Varnish с открытым исходным кодом ( https://varnish-cache.org/ ). Развертывание кэширующего сервера Простейший способ развертывания веб-кэша — рядом с каж-дым экземпляром сервиса при использовании паттерна Sidecar (рис. 5.5).

Такой подход при всей простоте имеет недостатки. В частности, вам придется масштабировать кэш одновременно с приложени-ем. Это не всегда желательно. Для кэша следует использовать наименьшее количество экземпляров с наибольшим количеством памяти (например, не десять копий с 1 Гбайт памяти у каждой, а две копии с 5 Гбайт памяти у каждой). Для того чтобы понять, почему так лучше, представьте, что каждая страница кэширует-ся в каждом экземпляре. При десяти экземплярах кэша каждая Глава 5. Реплицированные сервисы с распределением нагрузки 91

Рис 55 Добавление кэширующего вебсервера в виде контейнераприцепа - фото 35

Рис. 5.5. Добавление кэширующего веб-сервера

в виде контейнера-прицепа

страница будет записана десять раз, что уменьшит общее коли-чество разных страниц, одновременно находящихся в кэше. Это снижает коэффициент попадания — долю запросов, обслужива-емых из кэша, что, в свою очередь, уменьшает полезность кэша. И хотя желательно иметь как можно меньше крупных экземпля-ров кэш-серверов, небольших экземпляров веб-серверов должно быть как можно больше. Многие языки, например NodeJS, могут задействовать только одно процессорное ядро, и поэтому имеет смысл создавать много экземпляров сервиса, чтобы в полной мере использовать преимущества многоядерных систем, даже в рамках одной машины. Следовательно, имеет смысл настроить кэширу-ющую прослойку как другой реплицированный stateless-сервис, находящийся над веб-сервисом (рис. 5.6).

конечного пользователя сервиса Если вы следуя приведенному ранее совету - фото 36конечного пользователя сервиса. Если вы, следуя при-веденному ранее совету, развернули небольшое количе-ство кэш-серверов, привязка IP-адресов могла произойти таким образом, что некоторые экземпляры веб-сервиса не получают трафика. Вместо привязки сессии к IP следует

92Часть II. Паттерны проектирования обслуживающих систем

Рис 56 Добавление кэширующей прослойки к реплицированному сервисуПрактикум - фото 37

Рис. 5.6. Добавление кэширующей прослойки к реплицированному сервисуПрактикум. Развертывание кэширующей прослойки

Сервис dictionary-server, который мы развернули ранее, распре-деляет трафик по экземплярам сервера-словаря и может быть найден по DNS-имени dictionary-server-service . Данный паттерн изображен на рис. 5.7.

Начнем создание кэширующей прослойки с настройки кэши-рующего сервера Varnish:

vcl 4.0;

backend default {

.host = "dictionary-server-service";

.port = "8080";

Глава 5. Реплицированные сервисы с распределением нагрузки 93

Рис 57 Добавление кэширующей прослойки к серверусловарю Создадим объект - фото 38

Рис. 5.7. Добавление кэширующей прослойки

к серверу-словарю

Создадим объект ConfigMap , содержащий указанную конфигу-рацию:

kubectl create configmap varnish-config

--from-file=default.vcl

Теперь можно разворачивать реплицированный Varnish-кэш на основе следующего конфигурационного файла: apiVersion: extensions/v1beta1

kind: Deployment

metadata:

94Часть II. Паттерны проектирования обслуживающих систем name: varnish-cache

spec:

replicas: 2

template:

metadata:

labels:

app: varnish-cache

spec:

containers:

- name: cache

resources:

requests:

# Зарезервируем 2 Гбайт памяти

# для каждого экземпляра Varnish-кэша

memory: 2Gi

image: brendanburns/varnish

command:

- varnishd

- -F

- -f

- /etc/varnish-config/default.vcl

- -a

- 0.0.0.0:8080

- -s

# Количество выделяемой здесь памяти должно

# соответствовать количеству зарезервированной

# памяти, указанному ранее

- malloc,2G

ports:

- containerPort: 8080

volumeMounts:

- name: varnish

mountPath: /etc/varnish-config

volumes:

- name: varnish

configMap:

name: varnish-config

Развернуть реплицированные Varnish-серверы можно следу-ющей командой:

kubectl create -f varnish-deploy.yaml

Глава 5. Реплицированные сервисы с распределением нагрузки 95Наконец, развернем балансировщик нагрузки для Varnish-кэша: kind: Service

apiVersion: v1

metadata:

name: varnish-service

spec:

selector:

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

Интервал:

Закладка:

Сделать

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

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


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

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

x