Spring Cloud Alibaba Actual Combat (1) Подготовка

Java Spring Cloud
Spring Cloud Alibaba Actual Combat (1) Подготовка

Учебная комната 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/Хайер…