Apache Pulsar в действии
Покупка
Новинка
Тематика:
Программирование и алгоритмизация
Издательство:
ДМК Пресс
Автор:
Хьеррумгор Дэвид
Перевод:
Снастин А. В.
Год издания: 2023
Кол-во страниц: 491
Дополнительно
Вид издания:
Практическое пособие
Уровень образования:
Дополнительное образование
ISBN: 978-5-93700-251-8
Артикул: 856451.01.99
Книга научит вас создавать масштабируемые системы потокового обмена сообщениями с использованием Pulsar. Вы начнете с быстрого ознакомления с корпоративными системами обмена сообщениями и откроете для себя уникальные преимущества Pulsar. Следуя четким описаниям и выполняя практические примеры, вы будете использовать фреймворк Pulsar Functions для разработки приложения на основе микросервисов.
Издание предназначено для опытных разработчиков на языке Java. Предварительные знания о платформе Apache Pulsar не требуются.
- Полная коллекция по информатике и вычислительной технике
- ДМК Пресс. Информационные системы и технологии
- ДМК Пресс. ИТ-технологии для профессионалов
- Интермедиатор. Информационные системы и технологии (сводная)
- Интермедиатор. ИТ-технологии для профессионалов (сводная)
- Программирование и алгоритмизация
Тематика:
ББК:
УДК:
ОКСО:
- ВО - Бакалавриат
- 09.03.01: Информатика и вычислительная техника
- 09.03.02: Информационные системы и технологии
- 09.03.04: Программная инженерия
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
Дэвид Хьеррумгор Apache Pulsar в действии
Apache Pulsar in Action DAVID KJERRUMGAARD Foreword By Matteo Merli
Apache Pulsar в действии ДЭВИД ХЬЕРРУМГОР С предисловием Маттео Мерли Москва, 2023
УДК 004.43 ББК 32.973.2 Х98 Дэвид Хьеррумгор Х98 Apache Pulsar в действии / пер. с англ. А. В. Снастина. – М.: ДМК Пресс, 2023. – 490 с.: ил. ISBN 978-5-93700-251-8 Книга научит вас создавать масштабируемые системы потокового обмена сообщениями с использованием Pulsar. Вы начнете с быстрого ознакомления с корпоративными системами обмена сообщениями и откроете для себя уникальные преимущества Pulsar. Следуя четким описаниям и выполняя практические примеры, вы будете использовать фреймворк Pulsar Functions для разработки приложения на основе микросервисов. Издание предназначено для опытных разработчиков на языке Java. Предварительные знания о платформе Apache Pulsar не требуются. УДК 004.43 ББК 32.973.2 Все права защищены. Любая часть этой книги не может быть воспроизведена в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. © 2021 by Manning Publications Co. © Оформление, издание, перевод, ДМК Пресс, 2023 ISBN (анг.) 978-1-61729-688-8 ISBN (рус.) 978-5-93700-251-8
Моему отцу, который обещал прочитать эту книгу, даже если не сможет понять в ней ни слова. Возможно, твое сердце переполняется гордостью каждый раз, когда ты говоришь своим друзьям, что твой сын известный автор книг Моей матери, которая верила в меня, когда никто не верил, и упорно трудилась для того, чтобы я получил любую возможность добиться успеха в жизни. Твой тяжелый труд, вера и стойкость всегда были источником вдохновения для меня. Спасибо, что передала мне эти черты характера, поскольку они были основой всех моих достижений, включая эту книгу
Краткое оглавление ЧАСТЬ I. Знакомство с Apache Pulsar................................29 1 Введение в Apache Pulsar.........................................32 2 Концепции и архитектура Pulsar...........................77 3 Взаимодействие с Pulsar.......................................115 ЧАСТЬ II. Основы разработки с использованием Apache Pulsar................................................... 151 4 Функции Pulsar.....................................................153 5 Коннекторы ввода-вывода Pulsar...........................194 6 Обеспечение безопасности Pulsar...........................232 7 Реестр схем..........................................................270 ЧАСТЬ III. Практическая разработка приложений с использованием Apache Pulsar.......................................303 8 Паттерны применения Pulsar Functions................305 9 Паттерны устойчивости......................................329 10 Доступ к данным..................................................368 11 Машинное обучение в Pulsar..................................392 12 Периферийная аналитика....................................415
Оглавление Предисловие от издательства........................................................... 13 Предисловие ....................................................................................... 14 Предисловие автора........................................................................... 16 Благодарности..................................................................................... 19 Об этой книге...................................................................................... 21 Об авторе.............................................................................................. 27 Об иллюстрации на обложке............................................................ 28 ЧАСТЬ I. Знакомство с Apache Pulsar................................29 1 Введение в Apache Pulsar............................................32 1.1. Корпоративные системы обмена сообщениями.................... 33 1.1.1. Основные функциональные возможности.................... 36 1.2. Паттерны потребления сообщений......................................... 37 1.2.1. Обмен сообщениями по схеме публикация–подписка....37 1.2.2. Очередь сообщений.......................................................... 38 1.3. История развития систем обмена сообщениями................... 39 1.3.1. Системы обмена сообщениями общего назначения.... 39 1.3.2. Программное обеспечение среднего звена, ориентированное на сообщения............................................... 40 1.3.3. Сервисная шина предприятия......................................... 42 1.3.4. Распределенные системы обмена сообщениями.......... 45 1.4. Сравнение с Apache Kafka.......................................................... 52 1.4.1. Многоуровневая архитектура.......................................... 52 1.4.2. Потребление сообщений.................................................. 55 1.4.3. Постоянство хранения данных....................................... 58 1.4.4. Подтверждение приема сообщений............................... 61 1.4.5. Длительность хранения сообщений............................... 64 1.5. Почему необходим именно Pulsar............................................. 65 1.5.1. Гарантированная доставка сообщений........................... 66 1.5.2. Неограниченная масштабируемость.............................. 66 1.5.3. Устойчивость к критическим ошибкам.......................... 67 1.5.4. Поддержка миллионов тем............................................... 69 1.5.5. Георепликация и активная отказоустойчивость........... 70 1.6. Варианты использования из реальной практики................... 72 1.6.1. Универсальные системы обмена сообщениями............ 72 1.6.2. Платформы микросервисов............................................. 73 1.6.3. Автомобили с сетевыми функциями............................... 74 1.6.4. Выявление случаев мошенничества................................ 74
1.7. Дополнительные информационные ресурсы......................... 75 1.8. Резюме........................................................................................... 76 2 Концепции и архитектура Pulsar..............................77 2.1. Физическая архитектура Pulsar................................................. 78 2.1.1. Многоуровневая архитектура Pulsar............................... 79 2.1.2. Уровень обслуживания без сохранения состояния...... 81 2.1.3. Уровень хранения потоковых данных............................ 84 2.1.4. Хранилище метаданных.................................................... 89 2.2. Логическая архитектура Pulsar.................................................. 92 2.2.1. Абоненты, пространства имен и темы........................... 92 2.2.2. Адресация тем в Pulsar...................................................... 97 2.2.3. Производители, потребители и подписки.................... 98 2.2.4. Типы подписки................................................................... 99 2.3. Долговременное хранение сообщений и сроки их хранения....................................................................................... 104 2.3.1. Долговременное хранение данных............................... 104 2.3.2. Квоты для журналов регистрации................................ 106 2.3.3. Окончание срока хранения сообщений....................... 108 2.3.4. Сравнение журнала регистрации сообщений и определения срока хранения сообщений........................... 109 2.4. Многоуровневое хранилище.................................................... 110 2.5. Резюме......................................................................................... 114 3 Взаимодействие с Pulsar..........................................115 3.1. Начинаем работать с Pulsar...................................................... 116 3.2. Администрирование Pulsar...................................................... 117 3.2.1. Создание абонента, пространства имен и темы......... 118 3.2.2. API администрирования на языке Java......................... 119 3.3. Клиенты Pulsar........................................................................... 120 3.3.1. Клиент Pulsar на языке Java............................................ 123 3.3.2. Клиент Pulsar на языке Python....................................... 134 3.3.3. Клиент Pulsar на языке Go.............................................. 138 3.4. Дополнительное администрирование................................... 144 3.4.1. Метрики постоянно хранимой темы............................ 144 3.4.2. Инспекция сообщений.................................................... 147 3.5. Резюме......................................................................................... 148 ЧАСТЬ II. Основы разработки с использованием Apache Pulsar................................................... 151 4 Функции Pulsar........................................................153 4.1. Потоковая обработка................................................................ 153 4.1.1. Обычная пакетная обработка........................................ 154 Оглавление 8
4.1.2. Микропакетная обработка данных............................... 155 4.1.3. Потоковая нативная обработка..................................... 155 4.2. Что такое Pulsar Functions........................................................ 156 4.2.1. Модель программирования............................................ 158 4.3. Разработка функций Pulsar....................................................... 159 4.3.1. Ориентированные на язык функции............................ 159 4.3.2. Pulsar SDK.......................................................................... 160 4.3.3. Функции с сохранением состояния.............................. 166 4.4. Тестирование функций Pulsar.................................................. 170 4.4.1. Модульное тестирование................................................ 171 4.4.2. Комплексное тестирование........................................... 173 4.5. Развертывание функций Pulsar............................................... 178 4.5.1. Генерация артефакта развертывания........................... 179 4.5.2. Конфигурация функции.................................................. 182 4.5.3. Развертывание функции................................................. 186 4.5.4. Жизненный цикл развертывания функции................ 189 4.5.5. Режимы развертывания.................................................. 190 4.5.6. Поток данных в функции Pulsar.................................... 192 4.6. Резюме......................................................................................... 193 5 Коннекторы ввода-вывода Pulsar.............................194 5.1. Что такое коннекторы ввода-вывода Pulsar.......................... 195 5.1.1. Коннекторы-приемники................................................. 196 5.1.2. Коннекторы-источники.................................................. 199 5.1.3. Коннекторы типа PushSource........................................ 201 5.2. Разработка коннекторов ввода-вывода Pulsar....................... 203 5.2.1. Разработка коннектора-приемника.............................. 203 5.2.2. Разработка коннектора PushSource.............................. 205 5.3. Тестирование коннекторов ввода-вывода Pulsar.................. 209 5.3.1. Модульное тестирование................................................ 209 5.3.2. Комплексное тестирование........................................... 211 5.3.3. Упаковка коннекторов ввода-вывода Pulsar................. 214 5.4. Развертывание коннекторов ввода-вывода Pulsar................ 215 5.4.1. Создание и удаление коннекторов................................ 215 5.4.2. Отладка развернутых коннекторов............................... 218 5.5. Встроенные коннекторы Pulsar............................................... 221 5.5.1. Запуск кластера MongoDB.............................................. 221 5.5.2. Связывание контейнеров Pulsar и MongoDB.............. 223 5.5.3. Конфигурирование и создание приемника для MongoDB.............................................................................. 224 5.6. Администрирование коннекторов ввода-вывода Pulsar...... 226 5.6.1. Вывод списка коннекторов............................................ 226 5.6.2. Мониторинг коннекторов.............................................. 228 5.7. Резюме......................................................................................... 231 Оглавление 9
Обеспечение безопасности Pulsar.............................. 232 6.1. Шифрование на транспортном уровне.................................. 233 6.2. Аутентификация........................................................................ 242 6.2.1. Аутентификация TLS....................................................... 243 6.2.2. Аутентификация JSON Web Token (JWT)..................... 249 6.3. Авторизация............................................................................... 255 6.3.1. Роли.................................................................................... 256 6.3.2. Пример сценария............................................................. 258 6.4. Шифрование сообщений......................................................... 264 6.5. Резюме......................................................................................... 269 7 Реестр схем............................................................. 270 7.1. Обмен информацией между микросервисами...................... 271 7.1.1. API микросервисов.......................................................... 272 7.1.2. Обоснование необходимости реестра схем................ 274 7.2. Реестр схем Pulsar...................................................................... 275 7.2.1. Архитектура...................................................................... 275 7.2.2. Управление версиями схем............................................ 279 7.2.3. Совместимость схемы..................................................... 279 7.2.4. Стратегии проверки совместимости схем................... 282 7.3. Использование реестра схем................................................... 287 7.3.1. Моделирование события заказа продуктов в Avro...... 289 7.3.2. События производства заказов продуктов.................. 292 7.3.3. События потребления заказов продуктов................... 295 7.3.4. Полный пример................................................................ 296 7.4. Развитие схемы.......................................................................... 299 7.5. Резюме......................................................................................... 302 ЧАСТЬ III. Практическая разработка приложений с использованием Apache Pulsar.......................................303 8 Паттерны применения Pulsar Functions...................305 8.1. Конвейеры данных.................................................................... 306 8.1.1. Процедурное программирование................................. 306 8.1.2. Программирование с использованием потока данных.... 307 8.2. Паттерны маршрутизации сообщений.................................. 310 8.2.1. Паттерн «разделитель»................................................... 310 8.2.2. Паттерн «динамический маршрутизатор».................. 315 8.2.3. Паттерн «маршрутизатор на основе содержимого»..... 319 8.3. Паттерны преобразования сообщений.................................. 322 8.3.1. Паттерн «транслятор сообщений»............................... 322 8.3.2. Паттерн «улучшение содержимого»............................. 325 8.3.3. Паттерн «фильтр содержимого»................................... 327 8.4. Резюме......................................................................................... 328 Оглавление 10