1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/hajj-cola-cloud

Клонировать/Скачать
README.md 11 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 30.06.2025 14:47 ab110dd

Статус сборки Статус покрытия Загрузки

Cola Cloud

Cola Cloud — это платформа для разработки корпоративных приложений на основе микросервисной архитектуры, построенная на Spring Boot и Spring Cloud. Платформа включает в себя OAuth2 аутентификацию, аутентификацию по SMS, управление версиями базы данных с помощью FlyWay, агрегацию документации API всех сервисов через шлюз с использованием Swagger. Интеграция с SpringBootAdmin для мониторинга Hystrix и Turbine. Разработаны модули для пользовательского центра, управления правами доступа, организационной структуры, справочников данных, центра сообщений и уведомлений.

Описание сервисов

Проектное имя Номер Название Описание
cola-cloud-auth auth-service Сервис аутентификации Основан на SpringSecurity для обеспечения безопасности, использует систему аутентификации OAuth2.0 для аутентификации клиентов и пользователей, поддерживает вход по логину и паролю, а также по SMS-коду
cola-cloud-config config Сервис конфигурации Основан на Spring Cloud для создания единой службы конфигурации, отвечающей за управление конфигурационными файлами всех сервисов
cola-cloud-devtools - Инструменты разработки Генератор кода Cola
cola-cloud-gateway gateway Шлюз сервисов Основан на Zuul для создания шлюза сервисов, реализует статическую маршрутизацию
cola-cloud-monitor monitor Мониторинг сервисов Основан на Spring Boot Admin с интеграцией Turbine и Hystrix для мониторинга состояния приложений, трассировки вызовов сервисов и мониторинга срабатывания предохранителей
cola-cloud-message message Центр уведомлений Общая служба уведомлений, поддерживающая системные сообщения, SMS, электронную почту и push-уведомления
cola-cloud-registry registry Регистрация сервисов Основан на Eureka для создания центра регистрации сервисов, отвечающего за регистрацию и обнаружение сервисов
cola-cloud-common common-service Базовый сервис Агрегирует все общие службы платформы Cola
cola-cloud-organization organization-service Организационная структура Предоставляет услуги по управлению организационной структурой, сотрудниками и должностями
cola-cloud-tenancy tenancy-service Сервис арендаторов Предоставляет услуги по управлению арендаторами и их членами
cola-cloud-uc uc-service Центр пользователей Предоставляет услуги по управлению пользователями системы и их регистрацией
cola-cloud-upm upm-service Сервис прав доступа Предоставляет услуги по управлению ролями, ресурсами и авторизациями
cola-cloud-notification notification-service Центр уведомлений На основе RabbitMQ отправляет уведомления по SMS, электронной почте и через WebSocket

Быстрый старт

Скачивание кода

 git clone https://gitee.com/leecho/cola-cloud.git

Настройка HOST

Каждый сервис в Spring Cloud развертывается независимо, поэтому при вызовах между сервисами необходимо знать IP-адреса друг друга. Чтобы избежать необходимости изменения кода при изменении IP-адресов, необходимо настроить hosts:

# Центр регистрации и шлюз API
127.0.0.1 registry api-gateway
# Redis, RabbitMQ, MySQL
127.0.0.1 cola-redis cola-rabbitmq cola-mysql

Переменные окружения

Переменные окружения主要用于配置服务的访问用户名和密码:

// Конфигурационный сервер用户名
CONFIG_SERVER_USERNAME
// Конфигурационный сервер密码
CONFIG_SERVER_PASSWORD
// Регистрацион сервер用户名
REGISTRY_SERVER_USERNAME
// Регистрацион сервер密码
REGISTRY_SERVER_PASSWORD
// Мониторинг сервер用户名
MONITOR_SERVER_USERNAME
// Мониторинг сервер密码
MONITOR_SERVER_PASSWORD
// MYSQL用户名
MYSQL_SERVER_USERNAME
// MYSQL密码
MYSQL_SERVER_PASSWORD
// RabbitMQ用户名
RABBITMQ_SERVER_USERNAME
// RabbitMQ密码
RABBITMQ_SERVER_PASSWORD
// Redis用户名
REDIS_SERVER_USERNAME
// Redis密码
REDIS_SERVER_PASSWORD

Запуск сервисов

Порядок запуска следующий: registry config auth-service uc-serivce upm-service organization-service gateway monitor

registry должен быть запущен первым, так как он предоставляет интерфейсы для регистрации других сервисов.

config запускается после registry, так как он отвечает за предоставление конфигурационной информации другим сервисам. Если config не запущен, другие сервисы не смогут стартовать.

Другие сервисы запускаются после config. При первом запуске проекта после запуска config следует запустить uc-service для инициализации данных.

gateway запускается последним. Если gateway запущен раньше других сервисов, он может не суметь проксировать запросы к другим сервисам, но перезапустится через некоторое время.

monitor можно запускать после config.

Доступ


http://localhost:80/ — шлюз сервисов, здесь агрегированы все документации API сервисов Swagger
http://localhost:8761/ — центр регистрации, здесь можно просмотреть состояние регистрации сервисов
http://localhost:8080/ — центр мониторинга, здесь можно просмотреть состояние работы сервисов

Получение ACCESS_TOKEN

curl -X POST \
  http://api-gateway/uaa/oauth/token \
  -H 'Cache-Control: no-cache' \
  -H 'Postman-Token: 40aa591e-8518-4c1f-9e2d-f0c0e6151a40' \
  -H 'content-type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW' \
  -F username=admin \
  -F password=111111 \
  -F grant_type=password \
  -F scope=ui

Базовые службы

Конфигурационная служба

Spring Cloud Config отвечает за конфигурацию всех сервисов и может использовать локальные файлы, GIT и другие способы для хранения и распространения конфигурационных файлов.

Конфигурация клиента

Необходимо добавить зависимость spring-cloud-starter-config в POM, согласно соглашению о настройках.

В проекте необходимо указать информацию о конфигурационной службе, например, адрес сервера конфигурации, имя пользователя и пароль для доступа. Это делается в файле bootstrap.yml в директории resources:

spring:
  application:
    name: message-service
  cloud:
    config:
      uri: http://config:8888
      fail-fast: true

Служба аутентификации

Конфигурация клиента Spring Security OAuth2:

security:
  oauth2:
    client:
      clientId: server
      clientSecret: server
      accessTokenUri: http://auth-service:5000/uaa/oauth/token
      grant-type: client_credentials
      scope: server
@PreAuthorize("#oauth2.hasScope('server')")
@RequestMapping(value = "accounts/{name}", method = RequestMethod.GET)
public List<DataPoint> getStatisticsByAccountName(@PathVariable String name) {
	return statisticsService.findByAccountName(name);
}

Шлюз сервисов

zuul:
  routes:
    message-service:
        path: /notifications/**
        serviceId: message-service
        stripPrefix: false

Центр регистрации

spring:
  application:
    name: message-service

Конфигурация

Конфигурация SMS

cola:
  sms:  # Конфигурация SMS
    type: aliyun
    aliyun:
      access-key-id: 
      access-key-secret: 

Конфигурация хранилища

cola:
  storage:
    type: aliyun
    oss:
      access-key-id: 
      access-key-secret: 
      bucket-name: 
      endpoint: 

Скриншоты системы

Получение токена

Центр регистрации

Документация API

Центр мониторинга

Подробная информация о мониторинге

Трассировка запросов

Генератор кода

QQ交流群:736697444

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/hajj-cola-cloud.git
git@api.gitlife.ru:oschina-mirror/hajj-cola-cloud.git
oschina-mirror
hajj-cola-cloud
hajj-cola-cloud
master