предыдущие слова
В начале этого года я запланировал техническую книгу, которая является названием этой статьи «Расширенная архитектура микросервисного облака». Предварительная продажа официально началась сегодня, и с начала года было десять месяцев, что действительно не легко. Напишите эту статью, чтобы поговорить о некоторых мероприятиях о написании книг за пределами технологий.
причина
Написание этой книги было своего рода совпадением: в прошлом году редакторы нескольких издательств связались со мной по электронной почте в моем блоге. Может быть, из-за того, что микросервисы очень популярны в последние годы, редакция предложила мне написать книгу о микросервисах. В то время я это слышал, и меня это не волновало (редакторы тоже забрасывали сеть, так что они не могут думать, что достигли своего уровня), но главным образом потому, что они чувствовали, что их письмо было очень хорошим, а их навыки были только этим, и они не интересовались вообще. Но вести блог — это действительно хорошая привычка, тем более оригинальный контент ценится больше. Популярность авторского блога очень низкая, но через паблик-аккаунт я также могу получить некоторую обратную связь, которая постепенно укрепляет мою уверенность (может быть, уже вспухла). До конца прошлого года я чувствовал, что могу углубиться в технологии, поэтому в качестве содержания этой книги выбрал Spring Cloud, популярную компоновочную среду для микросервисной архитектуры, и планировал попробовать написать эту книгу.
О содержании
Со Spring Cloud знакомиться рано, это ранний последователь, и с тех пор он практикуется и применяется в проекте. По сравнению с тем, что было до того, как он только что вышел, Spring Cloud значительно улучшился.Благодаря интеграции существующей среды с открытым исходным кодом и некоторых компонентов, разработанных сообществом Spring, функции Spring Cloud становятся все более и более мощными. Для Spring Cloud относительно просто использовать и интегрировать один компонент, но на практике микросервисов это требует от нас более глубокого понимания этих основных компонентов. В обычном приложении я разберусь и изучу принцип реализации каждого компонента.Хоть особо и не детализирую, но с основными частями знаком.
На самом деле об этом уже есть книги DIDI (Zhai Yongchao).Spring Cloud微服务实战
и Чжоу ЛиSpring Cloud与Docker微服务架构实战
И другие книги, написанные в более ранние времена, качество содержания также дорого. Я действительно не могу выйти за пределы разговоров, но развитие технологий и итеративных быстро, весенняя облачная версия ДиегоFinchley
, версия Spring Boot на основе уже 2.x (2.x уже основана на Spring 5), условно говоря, реализация и использование многих компонентов сильно изменились. Эта «Расширенная архитектура микросервисов Spring Cloud» основана на последнихFinchley
, подробно знакомит с основными компонентами Spring Cloud, участвующими в архитектуре микросервиса, и знакомит с принципом реализации на примере базовых приложений. Эта книга подходит для всех Java-разработчиков и особенно предназначена для читателей, занимающихся разработкой и архитектурой микросервисов.
сотрудничать
Эта книга написана в соавторстве с тремя авторами, двое других:@Randy
и@CANGWU
Все они очень хорошие боссы, и конкретное знакомство можно приобрести через книгу (жесткий, широкий, хх).
Написание книги - дело трудоемкое и энергозатратное.Когда я решил этим заняться, я знал, что закончить и написать хорошо одному человеку будет сложно, да и факторов было довольно много (умение, время, и т.д.). Сила командной работы велика, поэтому мы договорились о встрече с двумя другими замечательными одноклассниками.Мы начали делить работу и сотрудничать, чтобы завершить рукопись, изучая сильные и слабые стороны друг друга. Написание технической книги в целом несложно, и каждый функциональный компонент приводит к объяснению принципа реализации в соответствии с базовым случаем применения. В этом процессе некоторые детали заслуживают глубокого понимания, что углубило мое понимание и многому научило.
Фактически первый черновик рукописи был готов в конце мая. Позже авторы рецензировали друг друга и пригласили нескольких лидеров отрасли для помощи в рецензировании. Редактор также выдвинул много предложений по доработке. На доработку ушло больше месяца пересматривать туда-сюда. тоже ждуFinchley
Релизная версия выпущена, и она все еще была вехой (Milestone не является стабильной) версией, когда она была впервые написана.Более болезненная часть заключается в том, что будет много изменений от Milestone к выпускной версии, таких как фильтры и утверждения маршрутизации. в Spring Cloud Gateway проводятся наращивание и частичный рефакторинг. Поэтому после выхода официальной версии трое авторов потратили много времени на сравнение предыдущих различий реализации и вовремя исправили некоторые проблемы. Он не был официально завершен до конца июля, и редактор Ву Йи также активизировал последующую работу, такую как редактирование и набор текста после завершения черновика.Большое спасибо.
содержание
Книга состоит из тринадцати глав и 428 страниц в печатном виде. Расскажите о содержании этой книги:
- Глава 1. Введение в микросервисную архитектуру
- 1.1 Появление микросервисов
- 1.1.1 Монолитное приложение
- 1.1.2 Архитектура SOA 1.1.3 Микросервисная архитектура
- 1.2 Жанр микросервисной архитектуры
- 1.2.1 ZeroC IceGrid
- 1.2.2 На основе очереди сообщений
- 1.2.3 Docker Swarm
- 1.2.4 Spring Cloud
- 1.3 Cloud Native и микросервисы
- 1.3.1 Облако Native
- 1.3.2 The Twelve Factors
- 1.3.3 Контейнеризация
- 1.3.4 DevOps
- 1.3.5 Ориентированность на микросервисы
- 1.4 Краткое содержание этой главы
- 1.1 Появление микросервисов
- Глава 2. Введение в Spring Cloud
- 2.1 Обзор Spring Cloud
- 2.1.1 Примечания к выпуску
- 2.1.2 Состав Spring Cloud
- 2.2 Возможности Spring Cloud
- 2.2.1 Весенний облачный контекст
- 2.2.2 Spring Cloud Commons: общедоступная абстракция
- 2.3 Краткое изложение этой главы
- 2.1 Обзор Spring Cloud
- Глава 3 Основы Spring Cloud: Spring Boot
- 3.1 Введение в Spring Boot
- 3.1.1 Spring Boot 2.0
- 3.1.2 Spring Boot и Spring Cloud
- 3.2 Основные возможности Spring Boot
- 3.3 Создание микросервиса
- 3.3.1 Генерация ИДЕИ
- 3.3.2 начальное поколение
- 3.4 Конфигурационный файл Spring Boot
- 3.4.1 Конфигурационный файл по умолчанию
- 3.4.2 Внешняя конфигурация
- 3.4.3 YAML
- 3.4.4 Автоматически загрузить внешние свойства в bean
- 3.4.5 Несколько профилей
- 3.4.6 Starters
- 3.4.7 Создание стартера
- 3.4.8 Actuator
- 3.5 Краткое содержание главы
- 3.1 Введение в Spring Boot
- Глава 4 Регистрация и обнаружение сервисов: Эврика
- 4.1 Базовое приложение
- 4.1.1 Введение в Эврику
- 4.1.2 Строительство регистрационного центра Eureka Service
- 4.1.3 Создание поставщика услуг Eureka
- 4.1.4 Создание вызывающего абонента службы Eureka
- 4.1.5 Регистрация и обнаружение службы Eureka
- 4.1.6 Простое применение Consul
- 4.2 Принцип обнаружения службы
- 4.2.1 Диаграмма базовой архитектуры
- 4.3 Анализ исходного кода Eureka Client
- 4.3.1 Чтение информации о конфигурации самого приложения
- 4.3.2 Клиент обнаружения службы
- 4.3.3 Получение информации из реестра
- 4.3.4 Регистрация службы
- 4.3.5 Инициализация временной задачи
- 4.3.6 Служба в автономном режиме
- 4.4 Анализ исходного кода сервера EUREKA
- 4.4.1 Реестр экземпляров службы
- 4.4.2 Регистрация службы
- 4.4.3 Получение пульса обслуживания
- 4.4.4 Исключение услуги
- 4.4.5 Служба в автономном режиме
- 4.4.6 Синхронизация кластера
- 4.4.7 Извлечение реестра
- 4.5.8 Самозащита
- 4.5 Расширенное приложение
- 4.5.1 Метаданные экземпляра и клиента Eureka
- 4.5.2 Настройки порта страницы состояния и страницы проверки работоспособности
- 4.5.3 Регион и зона
- 4.5.4 Реестр службы высокой доступности
- 4.6 Краткое содержание главы
- 4.1 Базовое приложение
- Глава 5 Декларативные веб-клиенты Restful: Spring Cloud OpenFeign
- 5.1 Основное приложение
- 5.1.1 Взаимодействие между микросервисами
- 5.1.2 Введение в OpenFeign
- 5.1.3 Примеры кода
- 5.2 анализ исходного кода
- 5.2.1 Основные компоненты и концепции
- 5.2.2 Динамическая регистрация BeanDefinition
- 5.2.3 Инициализация экземпляра
- 5.2.4 Вызовы функций и сетевые запросы
- 5.3 Расширенное приложение
- 5.3.1 Настройка декодера и кодировщика
- 5.3.2 Сжатие запроса/ответа
- 5.4 Краткое содержание главы
- 5.1 Основное приложение
- Глава 6 Автоматические выключатели: Hystrix
- 6.1 Базовое приложение
- 6.1.1 RestTemplate и Hystrix
- 6.1.2 Притворство и Хайстрикс
- 6.2 Принцип Hystrix
- 6.2.1 Сервисная лавина
- 6.2.2 Автоматические выключатели
- 6.2.3 Операция понижения уровня обслуживания
- 6.2.4 Изоляция ресурсов
- 6.2.5 Идеи реализации Hystrix
- 6.3 Анализ исходного кода
- 6.3.1 Инкапсуляция HystrixCommand
- 6.3.2 Структура класса HystrixCommand
- 6.3.3 Команда выполнения асинхронного обратного вызова
- 6.3.4 Асинхронное выполнение команды и синхронное выполнение команды
- 6.3.5 Логика автоматического выключателя
- 6.3.6 Изоляция ресурсов
- 6.3.7 Контроль времени ожидания запроса
- 6.3.8 Логика неудачного отката
- 6.4 Расширенное приложение
- 6.4.1 Объяснение базовой конфигурации
- 6.4.2 Команда выполнения асинхронного и асинхронного обратного вызова
- 6.4.3 Наследование HystrixCommand
- 6.4.4 Запрос на слияние
- 6.4.5 Панель управления Hystrix
- 6.5 Краткое содержание главы
- 6.1 Базовое приложение
- Глава 7 Балансировщики нагрузки на стороне клиента: лента Spring Cloud Netflix
- 7.1 Балансировка нагрузки
- 7.2 Базовое приложение
- 7.3 Анализ исходного кода
- 7.3.1 Конфигурация и инициализация экземпляра
- 7.3.2 Интеграция с OpenFeign
- 7.3.3 Балансировщик нагрузки LoadBalancerClient
- 7.3.4 ILoadBalancer
- 7.3.5 Реализация стратегии балансировки нагрузки
- 7.4 Расширенное приложение
- 7.4.1 Ribbon API
- 7.4.2 Отправка сетевых запросов с помощью Netty
- 7.4.3 Реализация балансировки нагрузки для баз данных только для чтения
- 7.5 Глава Сводка
- Глава 8 Шлюз API: весенние облако шлюз
- 8.1 Введение в Spring Cloud Gateway
- 8.2 Базовое приложение
- 8.2.1 Пользовательские услуги
- 8.2.2 Служба шлюза
- 8.2.3 Клиентский доступ
- 8.3 Исходное анализ кода
- 8.3.1 Начальная конфигурация
- 8.3.2 Процессор шлюза
- 8.3.3 Локатор определения маршрута
- 8.3.4 Локатор маршрута
- 8.3.5 Утверждения маршрутизации
- 8.3.6 Фильтр шлюза
- 8.3.7 Глобальный фильтр
- 8.3.8 Конечные точки API
- 8.4 Расширенное приложение
- 8.4.1 Механизм ограничения тока
- 8.4.2 Переход на более раннюю версию
- 8.4.3 Фильтр повторных попыток шлюза
- 8.5 Краткое содержание главы
- Глава 9 Центр конфигурации: Spring Cloud Config
- 9.1 Базовое приложение
- 9.1.1 Настройка клиента
- 9.1.2 Настройка репозитория
- 9.1.3 Сервер
- 9.1.4 Проверка конфигурации
- 9.1.5 Настройка динамических обновлений
- 9.2 Анализ исходного кода
- 9.2.1 Настройка сервера
- 9.2.2 Настройка клиента
- 9.3 Расширенное приложение
- 9.3.1 Настройка нескольких репозиториев для сервера конфигурации
- 9.3.2 Свойства удаленной конфигурации переопределения клиента
- 9.3.3 Переопределение атрибута
- 9.3.4 Защита безопасности
- 9.3.5 Шифрование и дешифрование
- 9.3.6 Быстрый ответ на ошибку и механизм повторной попытки
- 9.4 Краткое содержание главы
- 9.1 Базовое приложение
- Глава 10 Управляемый сообщениями: Spring Cloud Stream
- 10.1 Очередь сообщений
- 10.1.1 Общие компоненты очереди сообщений
- 10.2 Базовое применение
- 10.2.1 Декларация и каналы привязки
- 10.2.2 Клиентский канал
- 10.2.3 Получение сообщений
- 10.2.4 Конфигурация
- 10.3 Анализ исходного кода
- 10.3.1 Динамическая регистрация BeanDefinition
- 10.3.2 Служба связывания
- 10.3.3 Получить подшивку
- 10.3.4 Привязка производителя
- 10.3.5 Поток отправки сообщений
- 10.3.6 Обработка аннотаций StreamListener
- 10.3.7 Привязка потребителя
- 10.3.8 Прием сообщений
- 10.4 Расширенные приложения
- 10.4.1 Binder For RocketMQ
- 10.4.2 Несколько экземпляров
- 10.4.3 Разделение
- 10.5 Краткое содержание главы
- 10.1 Очередь сообщений
- Глава 11. Шина сообщений: Spring Cloud Bus
- 11.1 Базовое приложение
- 11.1.1 Конфигурационный сервер
- 11.1.2 Конфигурационный клиент
- 11.1.3 Проверка результатов
- 11.2 Анализ исходного кода
- 11.2.1 Определение события и прослушиватели событий
- 11.2.2 Подписка и публикация сообщений
- 11.2.3 Конечные точки управления
- 11.3 Application Advanced
- 11.3.1 Регистрационные события в пользовательских пакетах
- 11.3.2 Пользовательские слушатели
- 11.3.3 Инициатор события
- 11.4 Краткое содержание главы
- 11.1 Базовое приложение
- Глава 12 Аутентификация и авторизация: Spring Cloud Security
- 12.1 Базовое приложение
- 12.1.1 Введение в OAUTH2 12.1.2 JWT
- 12.1.3 Создание сервера авторизации
- 12.1.4 Настройка сервера ресурсов
- 12.1.5 Доступ к ограниченным ресурсам
- 12.2 Общая архитектура
- 12.2.1 Обзор архитектуры безопасности Spring
- 12.2.2 Обзор архитектуры Spring Security OAuth2
- 12.2.3 Безопасность и OAuth2 в Spring Cloud Security
- 12.3 Анализ исходного кода
- 12.3.1 Контекст безопасности SecurityContext
- 12.3.2 Аутентификация
- 12.3.3 Авторизация
- 12.3.4 Фильтры и перехватчики в Spring Security
- 12.3.5 Сервер авторизации
- 12.3.6 Сервер ресурсов
- 12.3.7 Механизм ретрансляции маркеров
- 12.4 Расширенные приложения
- 12.4.1 Настройка безопасности Spring
- 12.4.2 Настройка OAuth2
- 12.4.3 Единый вход SSO
- 12.5 Краткое содержание главы
- 12.1 Базовое приложение
- Глава 13. Трассировка служебных ссылок: Spring Cloud Sleuth
- 13.1 Знакомство с компонентами мониторинга канала
- 13.1.1 Обычно используемые компоненты мониторинга
- 13.1.2 Основные понятия
- 13.2 Базовое приложение
- 13.2.1 Особенности
- 13.2.2 Подготовка проекта
- 13.2.3 Весеннее облако Служение добиться независимости
- 13.2.4 Интеграция Zipkin
- 13.3 Краткое содержание главы
- 13.1 Знакомство с компонентами мониторинга канала
Наконец
Последнее, что я хочу сказать, это то, что написать книгу непросто, пожалуйста, поддержите подлинную версию. Уровень автора ограничен, если есть вопросы или сомнения, поправьте меня.
Адрес исходного кода этой книги:GitHub.com/advanced-SP...
Адрес предварительной продажи Spring Cloud Microservice Architecture Advanced:item.JD.com/12453340.Контракт…