Архитектурная диаграмма потоковой обработки
данных
Предисловие
Благодарности
Об этой книге
Как работать с книгой?
Кому стоит прочитать эту книгу?
Структура книги
О коде
Об авторе
Автор в сети
Об иллюстрации на обложке
Часть 1. Новый целостный подход
Глава 1. Введение в потоковую обработку данных
1.1. Что такое система реального времени?
1.2. Различия между системами реального времени
и потоковыми системами
1.3. Архитектурная диаграмма
1.4. Безопасность в контексте потоковых систем
1.5. Как производится масштабирование?
1.6. Резюме
Глава 2. Получение данных от клиентов: внесение
данных
2.1. Типичные паттерны взаимодействия
2.1.1. Запрос-ответ
2.1.2. Паттерн запрос-подтверждение
2.1.3. Паттерн Издатель-Подписчик
2.1.4. Паттерн одностороннего взаимодействия
2.1.5. Паттерн Поток
2.2. Масштабирование паттернов взаимодействия
2.2.1. Паттерны запрос-ответ
2.2.2. Масштабирование паттерна Поток
2.3. Отказоустойчивость
2.3.1. Протоколирование сообщений на стороне
получателя
2.3.2. Протоколирование сообщений на стороне
отправителя
2.3.3. Гибридное протоколирование сообщений
2.4. Опустимся на грешную землю
2.5. Резюме
Глава 3. Транспортировка данных из звена сбора
данных: расчленение конвейера данных
3.1. Зачем нужно звено очереди сообщений
3.2. Основные концепции
3.2.1. Производитель, брокер и потребитель
3.2.2. Изоляция производителей от потребителей
3.2.3. Долговечные сообщения
3.2.4. Семантика доставки сообщений
3.3. Безопасность
3.4. Отказоустойчивость
3.5. Применение базовых концепций в конкретных
задачах
3.6. Резюме
Глава 4. Анализ потоковых данных
4.1. Анализ данных в движении
4.2. Архитектуры распределенной обработки
потоков
4.3. Ключевые функции систем потоковой
обработки
4.3.1. Семантика доставки сообщений
4.4. Резюме
Глава 5. Алгоритмы анализа данных
5.1. Ограничения и их ослабление
5.2. К вопросу о времени
5.2.1. Скользящее окно
5.2.2. Прыгающие окна
5.3. Методы обобщения
5.3.1. Случайная выборка
5.3.2. Подсчет уникальных элементов
5.3.3. Частота
5.3.4. Вопрос о вхождении
5.4. Резюме
Глава 6. Сохранение результатов сбора или
анализа данных
6.1. Когда нужно долговременное хранилище
6.2. Хранение данных в памяти
6.2.1. Встраиваемые хранилища в памяти с
оптимизацией для флэш-памяти
6.2.2. Система кэширования
6.2.3. Базы данных и решетки данных в памяти
6.3. Примеры и упражнения
6.3.1. Сеансовая персонализация
6.3.2. Энергетическая компания следующего
поколения
6.4. Резюме
Глава 7. Получение доступа к данным
7.1. Паттерны взаимодействия
7.1.1. Паттерн Data Sync
7.1.2. Удаленный вызов метода и удаленный вызов
процедуры
7.1.3. Простой обмен сообщениями
7.1.4. Издатель-Подписчик
7.2. Протоколы отправки данных клиентам
7.2.1. Веб-уведомления
7.2.2. Длинный HTTP-опрос
7.2.3. События, посылаемые сервером
7.2.4. Веб-сокеты
7.3. Фильтрация потока
7.3.1. Где производится фильтрация
7.3.2. Статическая и динамическая фильтрация
7.4. Пример: построение потокового API для сайта
Meetup
7.5. Резюме
Глава 8. Возможности конечных устройств и
ограничения доступа к данным
8.1. Основные концепции
8.1.1. Достаточная скорость чтения
8.1.2. Запоминание состояния
8.1.3. Смягчение последствий потери данных
8.1.4. Обработка ровно один раз
8.2. Все по-настоящему: компания
SuperMediaMarkets
8.3. Введение в веб-клиент
8.3.1. Интеграция со службой потокового API
8.4. На пути к языку запросов
8.5. Резюме
Часть 2. Потоки в реальном мире
Глава 9. Анализ приглашений Meetup.com в режиме
реального времени
9.1. Звено сбора данных
9.1.1. Диаграмма последовательности службы
сбора данных
9.2. Звено очереди сообщений
9.2.1. Установка и настройка Kafka
9.2.2. Интеграция службы сбора данных с Kafka
9.3. Звено анализа
9.3.1. Установка Storm и подготовка Kafka
9.3.2. Построение топологии Storm для нахождения
n самых популярных тем
9.3.3. Интеграция звена анализа в конвейер
9.4. Хранилище данных в памяти
9.5. Звено доступа к данным
9.5.1. На пути к производственному режиму
9.6. Резюме
Предметный указатель