Распределенные системы. Паттерны проектирования - [3]
Выбор ключа ................................................................... 115
Консистентные хеш-функции .......................................... 117
Практикум. Построение консистентного
шардированного прокси-сервера .................................... 118
Шардирование реплицированных сервисов ............................... 119
Системы с «горячим» шардированием ....................................... 120
Глава 7. Паттерн Scatter/Gather ................................................... 122
Scatter/Gather с распределением нагрузки
корневым узлом ........................................................................ 123
Практикум. Распределенный поиск в документах ............ 125
Scatter/Gather с шардированием терминальных узлов ............... 126
Практикум. Шардированный поиск в документах ............ 128
Выбор подходящего количества терминальных узлов ..... 129 Масштабирование Scatter/Gather-систем с учетом надежности и производительности ............................................ 132
Глава 8. Функции и событийно-ориентированная обработка ....... 134
Как определить, когда полезен подход FaaS .............................. 135
Преимущества FaaS ......................................................... 136
Проблемы разработки FaaS-систем .................................. 136
Потребность в фоновой обработке .................................. 138
Необходимость хранения данных в памяти ..................... 138
Стоимость постоянного использования
запросно-ориентированных вычислений ......................... 139
10 Оглавление
Паттерны FaaS ........................................................................... 140
Паттерн Decorator. Преобразование запроса
или ответа ...................................................................... 140
Практикум. Подстановка значений по умолчанию до обработки запроса ..................................................... 142
Обработка событий ......................................................... 144
Практикум. Реализация двухфакторной
аутентификации .............................................................. 145
Событийные конвейеры .................................................. 147
Практикум. Реализация конвейера для регистрации нового пользователя ....................................................... 148
Глава 9. Выбор владельца ........................................................... 151
Как определить, нужен ли выбор владельца ............................. 152
Основы процесса выбора владельца .......................................... 155
Практикум. Развертывание etcd ...................................... 157
Реализация блокировок .................................................. 159
Практикум. Реализация блокировок в etcd ...................... 163
Реализация владения ...................................................... 164
Практикум. Реализация аренды в etcd ............................. 166
Параллельный доступ к данным ................................................ 167
Часть III . Паттерны проектирования систем пакетных вычислений
Глава 10. Системы на основе очередей задач ............................. 173
Система на основе обобщенной очереди задач ......................... 173
Интерфейс контейнера-источника ................................... 174
Интерфейс контейнера-исполнителя ............................... 177
Общая инфраструктура очередей задач .......................... 179
Практикум. Реализация генератора миниатюр
видеофайлов ............................................................................. 182
Оглавление 11
Динамическое масштабирование исполнителей ......................... 184
Паттерн Multi-Worker ................................................................. 187
Глава 11. Событийно-ориентированная пакетная обработка ....... 189
Паттерны событийно-ориентированной обработки .................... 191
Паттерн 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