Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

Микросервисы Spring в действии

Покупка
Новинка
Артикул: 833979.01.99
Доступ онлайн
1 699 ₽
В корзину
В книге рассказывается о том, как создавать приложения на основе микросервисов с использованием Java и Spring. Описываются особенности управления конфигурацией микросервисов и передовые практики их разработки. Уделено внимание защите потребителей, когда один или несколько экземпляров микросервисов выходят из строя. Начав с создания простых служб, читатель постепенно перейдет к знакомству с приемами эффективного журналирования и мониторинга, научится реструктурировать приложения на Java с помощью инструментов Spring, освоит управление API с помощью Spring Cloud Gateway. Издание предназначено для разработчиков на Java, имеющим опыт создания распределенных приложений и использования Spring, а также всем, кому интересно узнать, что необходимо для развертывания приложения на основе микросервисов в облаке.
Карнелл, Д. Микросервисы Spring в действии : практическое руководство / Д. Карнелл, И. Уайлупо Санчес ; пер. с англ. А. Н. Киселева. - Москва : ДМК Пресс, 2022. - 490 с. - ISBN 978-5-97060-971-2. - Текст : электронный. - URL: https://znanium.ru/catalog/product/2155906 (дата обращения: 21.11.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов
Джон Карнелл, Иллари Уайлупо Санчес

Микросервисы Spring 
в действии

Spring Microservices  
in Action

JOHN CARNELL and ILLARY HUAYLUPO SÁNCHEZ

Микросервисы Spring  
в действии

Джон Карнелл, Иллари Уайлупо Санчес

Москва, 2022

УДК 004.432
ББК  32.972.1
К21

Джон Карнелл, Иллари Уайлупо Санчес
К21  Микросервисы Spring в действии / пер. с англ. А. Н. Киселева. – М.: 
ДМК Пресс, 2022. – 490 с.: ил.

ISBN 978-5-97060-971-2

В книге рассказывается о том, как создавать приложения на основе 
микросервисов с использованием Java и Spring. Описываются особенности управления конфигурацией микросервисов и передовые практики 
их разработки. Уделено внимание защите потребителей, когда один или 
несколько экземпляров микросервисов выходят из строя.
Начав с создания простых служб, читатель постепенно перейдет к знакомству с приемами эффективного журналирования и мониторинга, научится реструктурировать приложения на Java с помощью инструментов 
Spring, освоит управление API с помощью Spring Cloud Gateway.
Издание предназначено для разработчиков на Java, имеющим опыт 
создания распределенных приложений и использования Spring, а также 
всем, кому интересно узнать, что необходимо для развертывания приложения на основе микросервисов в облаке.

УДК 004.432
ББК 32.972.1

Copyright Original English language edition published by Manning Publications 
USA, USA. Copyright (c) 2021 by Manning Publications. Russian-language edition 
copyright (c) 2021 by DMK Press. All rights reserved.

Все права защищены. Любая часть этой книги не может быть воспроизведена в какой бы то ни было форме и какими бы то ни было средствами без 
письменного разрешения владельцев авторских прав.

© 2021 by Manning Publications Co.
©  Оформление, издание, перевод, 
ДМК Пресс, 2022
ISBN  (анг.) 978-1-617-29695-6
ISBN  (рус.) 978-5-97060-971-2

Я посвящаю эту книгу всем женщинам,  
которые делают карьеру в естественно-научных,  
инженерно-технических и математических дисциплинах.

Нет ничего невозможного, если упорно трудиться.

Краткое оглавление

1 Добро пожаловать в Spring Cloud ........................................ 27

2 Обзор мира микросервисов через призму Spring Cloud .. 63

3 
Создание микросервисов с использованием Spring Boot ... 91

4 Добро пожаловать в Docker ................................................. 129

5 Управление конфигурациями с использованием 
Spring Cloud Configuration Server ....................................... 150

6 Обнаружение служб .............................................................. 191

7 Когда случаются неприятности: шаблоны устойчивости 
с использованием Spring Cloud и Resilience4j .................. 223

8 Маршрутизация служб с использованием Spring Cloud 
Gateway .................................................................................... 259

9 Безопасность микросервисов ............................................. 294

10 Событийно-ориентированная архитектура  
и Spring Cloud Stream ........................................................... 332

11 Распределенная трассировка с использованием  
Spring Cloud Sleuth и Zipkin ................................................ 367

12 Развертывание микросервисов .......................................... 404

Содержание

Предисловие от издательства ............................................................... 16
Предисловие .................................................................................................. 17
Благодарности ............................................................................................. 19
Об этой книге ............................................................................................... 21
1  
Добро пожаловать в Spring Cloud ............................................. 27
1.1. Эволюция архитектуры микросервисов ................................. 28
1.1.1. N-уровневая архитектура .................................................... 28
1.1.2. Что такое монолитная архитектура? ............................... 29
1.1.3. Что такое микросервис? ...................................................... 30
1.1.4. Зачем менять способ создания приложений? ....................... 32
1.2. Микросервисы со Spring ............................................................ 34
1.3. Что мы будем создавать? ............................................................ 36
1.4. О чем эта книга? .......................................................................... 37
1.4.1. Что вы узнаете в этой книге ............................................... 37
1.4.2. Почему эта книга актуальна для вас? ................................ 38
1.5. Облачные приложения и приложения на основе  
микросервисов ................................................................................... 39
1.5.1. Создание микросервиса с помощью Spring Boot .................... 39
1.5.2. Что такое облачные вычисления? ....................................... 44
1.5.3. В чем преимущества облачных вычислений  
и микросервисов? ............................................................................ 46
1.6. Микросервисы – это больше чем код ...................................... 49
1.7. Базовый шаблон разработки микросервисов ........................ 50
1.8. Шаблоны маршрутизации ......................................................... 52
1.9. Устойчивость клиентов .............................................................. 54

1.10. Шаблоны безопасности ........................................................... 55
1.11. Шаблоны журналирования и трассировки .......................... 56
1.12. Шаблон сбора метрик приложения ....................................... 58
1.13. Шаблоны сборки/развертывания микросервисов ............ 59
Итоги ................................................................................................... 61

2  
Обзор мира микросервисов через призму Spring Cloud ........ 63
2.1. Что такое Spring Cloud? ............................................................. 64
2.1.1. Spring Cloud Config ............................................................... 65
2.1.2. Spring Cloud Service Discovery ................................................ 66
2.1.3. Spring Cloud LoadBalancer и Resilience4j .............................. 66
2.1.4. Spring Cloud API Gateway ..................................................... 67
2.1.5. Spring Cloud Stream ............................................................... 67
2.1.6. Spring Cloud Sleuth ................................................................ 67
2.1.7. Spring Cloud Security ............................................................. 68
2.2. Пример использования Spring Cloud ...................................... 68
2.3. Приемы создания облачных микросервисов ......................... 71
2.3.1. База кода .............................................................................. 74
2.3.2. Зависимости ........................................................................ 75
2.3.3. Конфигурация ...................................................................... 76
2.3.4. Вспомогательные службы ..................................................... 76
2.3.5. Сборка, выпуск, выполнение ................................................. 77
2.3.6. Процессы .............................................................................. 78
2.3.7. Привязка портов ................................................................. 78
2.3.8. Масштабируемость ............................................................. 79
2.3.9. Одноразовость ...................................................................... 79
2.3.10. Сходство окружений разработки/эксплуатации ............. 80
2.3.11. Журналирование ................................................................ 80
2.3.12. Задачи администрирования ............................................. 81
2.4. Актуальность наших примеров ................................................. 81
2.5. Создание микросервиса с использованием  
Spring Boot и Java ..................................................................................82
2.5.1. Подготовка окружения ........................................................ 83
2.5.2. Начало создания проекта .................................................... 83
2.5.3. Запуск приложения Spring Boot: класс инициализации ...... 88
Итоги ................................................................................................... 90

3  
Создание микросервисов с использованием Spring Boot ....... 91
3.1. Точка зрения архитектора: проектирование  
микросервисной архитектуры ......................................................... 92
3.1.1. Декомпозиция бизнес-задачи ............................................ 92

Содержание
8

3.1.2. Детализация служб ............................................................. 95
3.1.3. Определение интерфейсов служб .......................................... 98
3.2. Когда не следует использовать микросервисы ...................... 99
3.2.1. Сложность распределенных систем ..................................... 99
3.2.2. Беспорядочный рост виртуальных серверов  
или контейнеров ............................................................................. 99
3.2.3. Тип приложения................................................................. 100
3.2.4. Транзакции и согласованность данных .............................. 100
3.3. Точка зрения разработчика: создание микросервиса  
с использованием Spring Boot и Java ............................................. 100
3.3.1. Встраивание дверного проема в микросервис:  
контроллер Spring Boot ................................................................. 101
3.3.2. Добавление интернационализации в службу лицензий ..... 112
3.3.3. Реализация Spring HATEOAS для отображения  
связанных ссылок .......................................................................... 115
3.4. Точка зрения инженера DevOps: сборка выполняемых  
артефактов ........................................................................................ 118
3.4.1. Сборка службы: упаковка и развертывание микросервисов .....120
3.4.2. Инициализация службы: управление  
конфигурацией микросервисов ...................................................... 122
3.4.3. Регистрация и обнаружение службы:  
взаимодействие клиентов с микросервисами ............................... 123
3.4.4. Мониторинг состояния микросервиса ............................... 124
3.5. Объединение точек зрения ..................................................... 127
Итоги ................................................................................................. 128

4  
Добро пожаловать в Docker ...................................................... 129
4.1. Контейнеры или виртуальные машины? .............................. 130
4.2. Что такое Docker? ..................................................................... 132
4.3. Файлы Dockerfile ....................................................................... 135
4.4. Docker Compose......................................................................... 136
4.5. Интеграция Docker с микросервисами ................................. 138
4.5.1. Создание образа Docker  ...................................................... 138
4.5.2. Создание образов Docker со Spring Boot ............................... 144
4.5.3. Запуск служб с помощью Docker Compose ............................ 147
Итоги ................................................................................................. 148

5  
 Управление конфигурациями с использованием  
Spring Cloud Configuration Server .............................................. 150
5.1. Об управлении конфигурациями (и сложностью) .............. 151
5.1.1. Архитектура управления конфигурацией ......................... 152

Содержание
9

5.1.2. Варианты реализации....................................................... 154
5.2. Настройка Spring Cloud Configuration Server ...................... 156
5.2.1. Настройка класса инициализации Spring Cloud Config ... 161
5.2.2. Использование Spring Cloud Config Server  
с файловой системой .................................................................... 161
5.2.3. Создание конфигурационных файлов для службы ............. 163
5.3. Интеграция Spring Cloud Config с клиентом Spring Boot ..... 168
5.3.1. Настройка зависимостей Spring Cloud Config Service  
в службе лицензий ......................................................................... 170
5.3.2. Настройка службы лицензий для взаимодействий  
с Spring Cloud Config ..................................................................... 170
5.3.3. Подключение к источнику данных с использованием  
Spring Cloud Config Server ............................................................. 175
5.3.4. Чтение настроек с использованием  
@ConfigurationProperties ............................................................... 179
5.3.5. Обновление настроек с использованием  
Spring Cloud Config Server ............................................................. 180
5.3.6. Использование Spring Cloud Configuration Server с Git ....... 182
5.3.7. Интеграция Vault со службой Spring Cloud Config ............. 183
5.3.8. Пользовательский интерфейс Vault ................................... 184
5.4. Защита конфиденциальных настроек в конфигурации ..... 187
5.4.1. Настройка симметричного шифрования .......................... 187
5.4.2. Шифрование и дешифрование настроек ............................ 188
5.5. Заключительные мысли ........................................................... 190
Итоги ................................................................................................. 190

6  
Обнаружение служб ..................................................................... 191
6.1. Где моя служба? .......................................................................... 193
6.2. Обнаружение служб в облаке .................................................. 195
6.2.1. Архитектура механизма обнаружения служб ................... 196
6.2.2. Обнаружение служб с использованием Spring  
и Netflix Eureka ....................................................................................200
6.3. Создание службы Spring Eureka .............................................. 202
6.4. Регистрация служб в Spring Eureka ........................................ 207
6.4.1. REST API Eureka ................................................................ 211
6.4.2. Панель управления Eureka ................................................. 212
6.5. Использование механизма обнаружения служб .................. 214
6.5.1. Поиск экземпляров служб с Spring Discovery Client ............. 216
6.5.2. Вызов служб с использованием шаблона Spring REST 
с поддержкой Load Balancer ......................................................... 218
6.5.3. Вызов служб с использованием Netflix Feign ........................ 220
Итоги ................................................................................................. 222

Содержание
10

Доступ онлайн
1 699 ₽
В корзину