Распределенные системы. Паттерны проектирования - [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