Учебная комната Cabbage Java охватывает основные знания
Spring Cloud Alibaba Actual Combat (1) Подготовка
Spring Cloud Alibaba Actual Combat (2) Nacos
Spring Cloud Alibaba Actual Combat (3) Sentinel
Весеннее облако Alibaba бой (4) Oauth2
Spring Cloud Alibaba Actual Combat (5) Zuul
Реальные бои Spring Cloud Alibaba (6) Статьи RocketMQ
Spring Cloud Alibaba Actual Combat (7) Seata
Spring Cloud Alibaba Actual Combat (8) SkyWalking
Адрес проекта на GitHub:GitHub.com/D2C-CAI/Хайер…
1. Введение в Spring Cloud Alibaba
Spring Cloud Alibaba стремится предоставить универсальное решение для разработки микросервисов. Этот проект содержит необходимые компоненты для разработки микрослужб распределенных приложений, чтобы разработчики могли легко использовать эти компоненты для разработки служб распределенных приложений с помощью модели программирования Spring Cloud.
Используя Spring Cloud Alibaba, вам нужно всего лишь добавить некоторые аннотации и небольшую настройку для подключения приложений Spring Cloud к микросервисным решениям Alibaba и быстрого создания распределенных систем приложений с помощью промежуточного программного обеспечения Alibaba.
1.1 Основные функции
- Снижение уровня обслуживания: По умолчанию он поддерживает доступ к текущим функциям ограничения и понижения версии WebServlet, WebFlux, OpenFeign, RestTemplate, Spring Cloud Gateway, Zuul, Dubbo и RocketMQ. Вы можете изменить текущие правила ограничения и понижения версии в режиме реального времени через консоль во время выполнения. , а также поддержка просмотра текущего ограничения и понижения Мониторинга метрик.
- Регистрация и обнаружение службы: адаптируйтесь к стандартам регистрации и обнаружения сервисов Spring Cloud и интегрируйте поддержку ленты по умолчанию.
- Распределенное управление конфигурацией: поддерживает внешнюю конфигурацию в распределенных системах и автоматически обновляется при изменении конфигурации.
- управляемый сообщениями: Создавайте управляемые сообщениями возможности для микросервисных приложений на основе Spring Cloud Stream.
- Распределенная транзакция: используйте аннотацию @GlobalTransactional для эффективного решения проблем с распределенными транзакциями без вмешательства в бизнес.
- Облачное хранилище объектов Alibaba: массивные, безопасные, недорогие и высоконадежные услуги облачного хранения, предоставляемые Alibaba Cloud. Храните и получайте доступ к любым типам данных в любом приложении, в любое время и в любом месте.
- Распределенное планирование задач: Предоставляет услуги планирования задач второго уровня, точные, высоконадежные и высокодоступные (на основе выражений Cron). Он также предоставляет модели выполнения распределенных задач, такие как задачи сетки. Grid-задачи поддерживают равномерное распределение морских квантовых задач на все рабочие (schedulerx-client) для выполнения.
- Облачный SMS-сервис Alibaba: SMS-сервисы, охватывающие весь мир, дружественные, эффективные и интеллектуальные взаимосвязанные коммуникационные возможности помогают предприятиям быстро создавать каналы доступа к клиентам.
1.2. Основные компоненты
- Sentinel: Используйте трафик в качестве точки входа для защиты стабильности служб от нескольких измерений, таких как управление трафиком, переход на более ранние автоматические выключатели и защита системной нагрузки.
- Nacos: платформа динамического обнаружения служб, управления конфигурацией и управления службами, упрощающая создание облачных приложений.
- RocketMQ: Распределенная система обмена сообщениями с открытым исходным кодом, основанная на технологии распределенных кластеров с высокой доступностью, предоставляет услуги публикации сообщений и подписки с низкой задержкой и высокой надежностью.
- Dubbo: Apache Dubbo™ — это высокопроизводительная платформа Java RPC.
- Seata: продукт Alibaba с открытым исходным кодом, простое в использовании высокопроизводительное решение для распределенных транзакций с микросервисами.
- Alibaba Cloud OSS: Alibaba Cloud Object Storage Service (OSS) — это массивная, безопасная, недорогая и высоконадежная облачная служба хранения, предоставляемая Alibaba Cloud. Вы можете хранить и получать доступ к любым типам данных в любом приложении, в любое время и в любом месте.
- Alibaba Cloud SchedulerX: Распределенный продукт планирования задач, разработанный командой промежуточного программного обеспечения Alibaba, который предоставляет услуги планирования задач второго уровня, точные, высоконадежные и высокодоступные (на основе выражений Cron).
- Alibaba Cloud SMS: SMS-сервисы, охватывающие весь мир, дружественные, эффективные и интеллектуальные взаимосвязанные коммуникационные возможности помогают предприятиям быстро создавать каналы связи с клиентами.
1.3 Спецификации управления версиями
Формат номера версии проекта имеет вид x.x.x, где значение x — это число, начинающееся с 0 и не ограниченное диапазоном 0~9. Когда проект находится в стадии инкубатора, первый номер версии фиксируется на 0, то есть формат номера версии 0.x.x.
Поскольку Spring Boot 1 и Spring Boot 2 имеют большие изменения в интерфейсе и аннотациях модуля Actuator, а spring-cloud-commons также претерпел серьезные изменения с версии 1.xx до версии 2.0.0, мы принимаем версию SpringBoot. версия с тем же номером:
- Версия 1.5.x для Spring Boot 1.5.x
- Версия 2.0.x для Spring Boot 2.0.x
- Версия 2.1.x для Spring Boot 2.1.x
- Версия 2.2.x для Spring Boot 2.2.x
2. Основное содержание
Серия практических руководств Spring Cloud Alibaba в настоящее время разделена на следующие части, в которых рассказывается, как использовать докер для развертывания сервисов и применения распределенных пакетов на практике:
компоненты | Функции |
---|---|
Nacos | Динамическое обнаружение сервисов, управление конфигурацией |
Sentinel | Управление потоком, деградация предохранителей, защита системной нагрузки |
Seata | Высокопроизводительные распределенные транзакции микросервисов |
RocketMQ | Распределенная система обмена сообщениями высокой доступности |
Zuul+Oauth2 | Распределенная система аутентификации шлюза |
SkyWalking | Система отслеживания и мониторинга распределенных ссылок |
3. Подготовка
Эта серия руководств посвящена введению препаратов, чтобы уменьшить все сомнения в реальном боевом процессе. Сосредоточив внимание на реальном бою, дополненном основными принципами, конкретный углубленный анализ принципов будет открыт отдельно, так что следите за обновлениями.
3.1 Быстрая установка среды Docker
- Установить Докер
Файлы ресурсов установки Docker хранятся в Amazon S3, и подключение периодически прерывается. Так что при установке Docker он будет работать медленнее. Вы можете быстро установить Docker, выполнив следующую команду. Применимо к большинству Linux, таких как Ubuntu, Debian, Centos и т. д. Он будет синхронизировать официальные ресурсы Docker каждые 3 часа.
curl -sSL https://get.daocloud.io/docker | sh
- Установите Docker Compose
Docker Compose размещен на Git Hub и не очень стабилен. Вы также можете установить Docker Compose на высокой скорости, выполнив следующую команду. Вы можете настроить нужную версию, изменив версию в URL-адресе.
curl -L https://get.daocloud.io/docker/compose/releases/download/1.28.2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
- Настройка зеркальной станции Docker
Настройте зеркальный сайт Docker*. Этот скрипт может добавить --registry-mirror в ваш файл конфигурации Docker /etc/docker/daemon.json. Применимо к Ubuntu14.04, Debian, CentOS6, CentOS7, Fedora, Arch Linux, openSUSE Leap 42.1, другие версии могут немного отличаться.
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io
3.2. Создание начального проекта
Прежде всего, дайте имя вашему собственному проекту, здесь учебник называется единообразно:сельдь
Причина, по которой herring-xxx оборачивает слой проекта промежуточного программного обеспечения, заключается в том, что многие разработки на уровне предприятия требуют своей собственной вторичной упаковки. Метод построения проекта основан на благожелательном, а мудрый видит мудрость.Читатели не должны слишком запутываться, просто стройте его в соответствии со своими привычками.
основной проект | первый уровень | Второй этаж | инструкция проекта |
---|---|---|---|
herring | herring-alibaba | herring-nacos | Динамическое обнаружение сервисов, управление конфигурацией |
herring-sentinel | Управление потоком, деградация предохранителей, защита системной нагрузки | ||
herring-seata | Высокопроизводительные распределенные транзакции микросервисов | ||
herring-rocketmq | Распределенная система обмена сообщениями высокой доступности | ||
herring-common | herring-feign | Декларативный клиент веб-службы | |
herring-mysql | выбор базы данных mysql | ||
herring-redis | Выбор распределенного кеша redis | ||
herring-tools | Общие наборы инструментов jwt, lombok и т. д. | ||
herring-services | herring-base | Сервисный базовый клиент nacos, дозорный, клиент прыжка в небо | |
herring-base-tx | Служебная транзакция, связанная с клиентским сиденьем, клиент RocketMQ | ||
herring-product | Самостоятельно созданные экспериментальные микросервисы (вы можете создавать их самостоятельно) | ||
herring-member | Самостоятельно созданные экспериментальные микросервисы (вы можете создавать их самостоятельно) | ||
herring-orders | Самостоятельно созданные экспериментальные микросервисы (вы можете создавать их самостоятельно) | ||
herring-security | herring-oauth2 | служба аутентификации безопасности oauth2.0 | |
herring-gateway | служба распределенного шлюза zuul | ||
herring-skywalking | Система отслеживания и мониторинга распределенных ссылок |
- Выберите соглашение о версии для структуры проекта:
основной проект | первый уровень |
---|---|
spring-boot | 2.2.3.RELEASE |
spring-cloud | Hoxton.SR5 |
spring-cloud-alibaba | 2.2.3.RELEASE |
- Соглашение POM для версии родительского проекта:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.jackey</groupId>
<artifactId>herring</artifactId>
<packaging>pom</packaging>
<version>1.0-SNAPSHOT</version>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<java.version>1.8</java.version>
<spring-cloud-alibaba.version>2.2.3.RELEASE</spring-cloud-alibaba.version>
<spring-cloud.version>Hoxton.SR5</spring-cloud.version>
<spring-boot.version>2.2.3.RELEASE</spring-boot.version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>${spring-cloud-alibaba.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${spring-boot.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
3.3. Быстрая установка MySQL 5.7 с помощью Docker
Вытащите образ версии MySQL 5.7
docker pull daocloud.io/library/mysql:5.7.4
Запустите контейнер образа MySQL 5.7,Обратите внимание на установку начального пароля и сопоставление каталога архива данных
docker run --name mysql_5.7 -v /docker/mysql/data:/var/lib/mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=(你的root密码) -d daocloud.io/library/mysql:5.7.4
3.3. Быстрая установка Redis 3.2 с помощью Docker
Извлеките образ версии Redis 3.2.
docker pull daocloud.io/library/redis:3.2.8
Запустите контейнер образа Redis 3.2,Обратите внимание на настройку параметров сохраняемости и сопоставление каталога архива данных.
docker run --name redis_3.2 -v /docker/redis/data:/data -p 6379:6379 -d daocloud.io/library/redis:3.2.8 redis-server --appendonly yes
Spring Cloud Alibaba Actual Combat (1) Подготовка
Spring Cloud Alibaba Actual Combat (2) Nacos
Spring Cloud Alibaba Actual Combat (3) Sentinel
Весеннее облако Alibaba бой (4) Oauth2
Spring Cloud Alibaba Actual Combat (5) Zuul
Реальные бои Spring Cloud Alibaba (6) Статьи RocketMQ
Spring Cloud Alibaba Actual Combat (7) Seata
Spring Cloud Alibaba Actual Combat (8) SkyWalking
Адрес проекта на GitHub:GitHub.com/D2C-CAI/Хайер…