Быстро создавайте шаблоны для среды разработки микросервисов SpringCloud.

GitHub Spring Cloud
Быстро создавайте шаблоны для среды разработки микросервисов SpringCloud.

Автор этой статьи: HelloGitHub-Цинь люди

Эта статья подходит для людей с базовыми знаниями о SpringBoot и SpringCloud.Следуя этой статье, вы можете использовать и быстро собрать проект SpringCloud.

от HelloGitHub«Объяснение проектов с открытым исходным кодом»Серия, сегодня я представляю вам проект разработки микросервисов с открытым исходным кодом на основе SpringCloud2.1——SpringCloud

Адрес исходного кода проекта:GitHub.com/Чжоу Таоох/SP…

Введение в микросервисы

Микросервисы — это сервисные единицы, которые можно развертывать независимо, масштабировать по горизонтали и получать к ним независимый доступ. Наименьшая общая микросервисная единица в Java — это независимый проект, основанный на фреймворке SpringBoot. Микросервис выполняет только одну задачу (единая ответственность), а сочетание нескольких микросервисов можно назвать законченным проектом или продуктом. Затем необходимо управлять несколькими микросервисами, а SpringCloud — большая экономка для координации этих микросервисов. Это набор упорядоченных фреймворков, набор инструментов для разработки распределенных систем, который легко понять, развернуть и обслуживать.

Представленный сегодня проект с открытым исходным кодом — это скаффолдинг на основе Spring Cloud 2.1, позволяющий быстро перейти к развитию бизнеса, не тратя слишком много времени на построение архитектуры.Давайте посмотрим на использование этого проекта.

2. Структура проекта

Вот микросервис шлюза (gateway-admin) для иллюстрации.

Структура каталогов проекта выглядит следующим образом:

Описание каталога:

  1. db: Скрипт базы данных инициализации проекта.
  2. docker: каталог файла конфигурации Docker, который упаковывает микросервисы в виде образов Docker.
  3. config: каталог с информацией о конфигурации проекта, включая конфигурацию базы данных, конфигурацию преобразования сообщений и т. д.
  4. dao: рабочий каталог базы данных, в основном для добавления, удаления, проверки и изменения базовых данных.
  5. entity: каталог классов сущностей проекта.
  6. события: каталог обработки событий.
  7. исключение: Каталог обработки исключений, который обрабатывает глобальные исключения по аспектам.
  8. rest: каталог контроллера микросервиса, который является интерфейсом, предоставляемым внешнему миру.
  9. service: каталог бизнес-уровня микросервиса.
  10. GatewayAdminApplication: класс входа Microservice SpringBoot.
  11. ресурсы: каталог файла конфигурации проекта.
  12. test: каталог модульных тестов проекта.
  13. pom.xml: файл объектной модели проекта maven.

3. Реальная боевая операция

3.1 Предпосылки

  • Убедитесь, что Git, Java8, Maven установлены локально.
  • Имейте некоторые знания о SpringMVC, потому что SpringBoot основан на эволюции SpringMVC.
  • Иметь некоторое представление о движке контейнеров приложений Docker и Docker-compose.

3.2 Описание микросервисной архитектуры

Полный проект микросервисной архитектуры обычно включает следующие сервисы:

  • Реестр (часто используемые фреймворки Nacos, Eureka)
  • Унифицированный шлюз (часто используемый фреймворк Gateway, Zuul)
  • Центр аутентификации (распространенные решения по внедрению технологий Jwt, OAuth)
  • Распределенные транзакции (распространенные фреймворки Txlcn, Seata)
  • файловая служба
  • бизнес Сервис

3.3 Запуск проекта

Вот три способа запуска:

Первый: операция в один клик

Его можно запустить в корневом каталоге проекта в системах Linux и Mac../install.shБыстро создайте среду разработки.

Второй: запустить в локальной среде

Этот метод не рекомендуется, но кратко.

  1. Установка базовой среды: mysql, redis, rabbitmq

  2. Среда работает:

    git clone https://github.com/zhoutaoo/SpringCloud.git #克隆项目
    
  3. Чтобы установить сертифицированный общедоступный пакет в локальный репозиторий maven, выполните следующую команду:

    cd common
    mvn clean install #安装认证公共包到本地 maven 仓库
    
  4. Установить реестр Nacos

    • скачатьNacos
    • Выполните следующую команду:
      unzip nacos-server-0.9.0.zip  OR tar -xvf nacos-server-0.9.0.tar.gz
      cd nacos/bin
      bash startup.sh -m standalone # Linux 启动命令
      cmd startup.cmd # Windows 启动命令
      
  5. Запустите службы шлюза, службы проверки подлинности, бизнес-службы и т. д.

Вот пример службы шлюза: выполнитьGatewayAdminApplication.java

Уведомление: служба аутентификации (auth), служба шлюза (шлюз) и служба управления организацией (sysadmin) должны выполнить сценарий инициализации базы данных.

Доступно через интерфейс swager:http://localhost:8445/swagger-ui.htmlПроверьте, прошла ли установка успешно. Если к ней можно получить доступ нормально, это означает, что служба успешно запущена.

инструкция:

  • Файл application.yml в основном настраивает информацию о подключении rabbitmq, redis и mysql.

    spring:
      rabbitmq:
        host: ${RABBIT_MQ_HOST:localhost}
        port: ${RABBIT_MQ_PORT:5672}
        username: ${RABBIT_MQ_USERNAME:guest}
        password: ${RABBIT_MQ_PASSWORD:guest}
      redis:
        host: ${REDIS_HOST:localhost}
        port: ${REDIS_PORT:6379}
        #password: ${REDIS_PASSWORD:}
        lettuce:
          pool:
            max-active: 300
    
      datasource:
        driver-class-name: com.mysql.jdbc.Driver
        url: jdbc:${DATASOURCE_DBTYPE:mysql}://${DATASOURCE_HOST:localhost}:${DATASOURCE_PORT:3306}/sc_gateway?characterEncoding=UTF-8&useUnicode=true&useSSL=false
        username: ${DATASOURCE_USERNAME:root}
        password: ${DATASOURCE_PASSWORD:root123}
    
  • Файл bootstrap.yml в основном настраивает базовую информацию о службе (порт, имя службы), адрес реестра и т. д.

    server:
      port: ${SERVER_PORT:8445}
    spring:
      application:
        name: gateway-admin
      cloud:
        nacos:
          discovery:
            server-addr: ${REGISTER_HOST:localhost}:${REGISTER_PORT:8848}
          config:
            server-addr: ${REGISTER_HOST:localhost}:${REGISTER_PORT:8848}
            file-extension: yml
        sentinel:
          transport:
            dashboard: ${SENTINEL_DASHBOARD_HOST:localhost}:${SENTINEL_DASHBOARD_PORT:8021}
    

Третий тип: работающая среда Docker

  1. Установка базовой среды

    • Установить через команду docker

      # 安装redis
      docker run -p 6379:6379 --name redis -d docker.io/redis:latest --requirepass "123456" 
      # 安装mysql
      docker run --name mysql5.7 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root123 -d docker.io/mysql:5.7
      # 安装rabbitmq 
      docker run -d -p 15672:15672 -p 5672:5672 -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin --name rabbitmq docker.io/rabbitmq:latest
      
    • Его также можно установить с помощью команды docker-compose.

      cd docker-compose
      docker-compose up -d  #docker-compose 安装mysql,redis,rabbitmq 服务
      
  2. Скачать проект на локальный

    git clone https://github.com/zhoutaoo/SpringCloud.git #克隆项目
    
  3. Установите сертифицированный общедоступный пакет в локальный репозиторий maven и выполните следующую команду:

    cd common && mvn install #安装认证公共包到本地maven仓库
    
  4. docker-compose для запуска Nacos

    cd docker-compose
    docker-compose -f docker-compose.yml -f docker-compose.nacos.yml up -d nacos #启动注册中心
    
  5. Создайте образ центра сообщений

    cd ./center/bus
    mvn package && mvn docker:build
    cd docker-compose
    #启动消息中心
    docker-compose -f docker-compose.yml -f docker-compose.center.yml up -d bus-server
    

Другими службами, которым необходимо создавать зеркала, являются: (Примечание: операция аналогична созданию зеркала центра сообщений)

  • Службы управления шлюзом (шлюз-админ, шлюз-веб)

  • Служба организации (сисадмин/организация)

  • Служба аутентификации (auth/authentication-server)

  • Служба авторизации (сервер авторизации авторизации)

  • Служба Management Desk (монитор/администратор)

3.4 Эффект операции

Сервисный центр Накос

Все службы запускаются нормально, что можно посмотреть в центре управления nacos.Количество экземпляров указывает на количество запущенных данной службы.Значение 1 означает, что служба запускается нормально.

Просмотр фоновых служб

Выполнение командной строки:docker ps -aПросмотреть всю информацию о процессе докера

Проверьте, доступна ли служба, обратившись к интерфейсу (swagger), предоставляемому микрослужбой.

адрес интерфейса swager:http://IP:port/swagger-ui.html

Тест выглядит следующим образом:

Четвертый, последний

Микросервисы (SpringBoot, SpringCloud, Docker) сейчас очень шумные, это не новая технология, а производная от старой технологии с добавлением некоторых новых функций.

На этом этапе руководства вы сможете быстро создавать микросервисы с помощью проекта SpringCloud. Затем вы можете начать свое путешествие по изучению микросервисов, пришло время обновить ваше дерево навыков, давайте изучать микросервисы вместе!

5. Ссылки

«Объяснение серии проектов с открытым исходным кодом»——Пусть больше не боятся люди, интересующиеся проектами с открытым исходным кодом, и пусть инициаторы проектов с открытым исходным кодом больше не остаются в одиночестве. Следите за нашими статьями, и вы откроете для себя радости программирования, насколько легко им пользоваться, и узнаете, как легко участвовать в проектах с открытым исходным кодом. Добро пожаловать, чтобы оставить сообщение, чтобы связаться с нами, присоединиться к нам, позволить большему количеству людей влюбиться в открытый исходный код и внести свой вклад в открытый исходный код ~