Este documento detalla el proceso de configuración y despliegue de una plataforma de educación en línea basada en una arquitectura de microservicios distribuidos. El sistema integra gestión de videos, autenticación, pasarelas de pago y portales web interactivos.
Requisitos del Entorno
Para garantizar el funcionamiento correcto de todos los componentes, se requieren las siguientes versiones de software:
- Java Development Kit (JDK): 1.8 o superior.
- Base de datos MySQL: 5.7 o superior.
- Gestión de proyectos: Apache Maven 3.0+.
- Almacén de datos en memoria: Redis (última versión estable).
- Registro y configuración de servicios: Nacos 1.x (Recomendado).
- Control de flujo: Sentinel 2.0+ (Opcional).
- Entorno de ejecución JavaScript: Node.js 6.x o superior.
Nota técnica: Si la implemetnación no requiere procesamiento de transacciones financieras, se recomienda utilizar la rama del repositorio que excluye el módulo de pagos.
Estructura de los Módulos del Sistema
El proyecto está dividido en múltiples microservicios independientes y módulos compartidos:
platform-education-system
├── edu-portal-web // Aplicación web pública (SSR) [Puerto 80]
├── edu-admin-dashboard // Panel de administración (SPA) [Puerto 81]
├── edu-api-gateway // Enrutamiento y filtro de peticiones [Puerto 9728]
├── edu-api-interfaces // Definiciones de contratos Feign
│ ├── api-billing // Interfaces para transacciones financieras
│ ├── api-profile // Interfaces de gestión de usuarios
│ ├── api-content // Interfaces de recursos educativos
│ ├── api-streaming // Interfaces de reproducción de video
│ └── api-messaging // Interfaces para WebSockets
├── edu-shared-libs // Bibliotecas transversales
│ ├── common-utils // Funciones auxiliares y validaciones
│ ├── core-config // Configuraciones base de microservicios
│ └── auth-security // Manejo de JWT y control de acceso
├── edu-microservices // Lógica de negocio principal
│ ├── svc-iam // Gestión de identidad y accesos (Backend)
│ ├── svc-user-profile // Gestión de identidad y accesos (Frontend)
│ ├── svc-cms // Administración de contenido del portal
│ ├── svc-billing // Procesamiento de pagos y órdenes
│ ├── svc-content // Gestión de cursos y materiales
│ ├── svc-notifications // Envío de correos y mensajes SMS
│ ├── svc-storage // Administración de archivos estáticos
│ ├── svc-streaming // Integración con servicios VOD
│ └── svc-messaging // Servidor de notificaciones en tiempo real
└── pom.xml // Declaración central de dependencias
Preparación y Configuración del Backend
1. Inicialización del Entorno
Clone el repositorio desde su origen e impórtelo en su IDE preferido (como IntelliJ IDEA). El gestor de dependencias descargará automáticamente las librerías requeridas. Posteriormente, cree la base de datos principal y ejecute los scripts SQL de inicialización proporcionados en el directorio de recursos.
2. Persistencia del Centro de Conifguración
Para garantizar la alta disponibilidad del registro de servicios, configure Nacos para que utilice MySQL como almacenamiento persistente. Modifique el archivo application.properties en el directorio de configuración de Nacos con los siguientes parámetros:
# Configuración de persistencia para el clúster Nacos
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos_registry?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=GMT%2B8
db.user=nacos_admin
db.password=nacos_secure_pwd_2023
3. Integración de Servicios en la Nube
- Servicio de Video (VOD) y Almacenamiento (OSS): Proporcione sus credenciales de acceso (
ACCESS_KEYySECRET_KEY) en el centro de configuración. Asegúrese de que la región del centro de datos (por ejemplo, Este de China) coincida con los parámetros definidos en la clase de utilidad del SDK de video. - Servicio de Notificaciones SMS: Configure las credenciales del proveedor de mensajería (como Tencent Cloud) en los archivos correspondientes de Nacos para habilitar el envío de códigos de verificación y captchas deslizantes.
- Pasarela de Pagos: Integre las claves públicas y privadas del entorno de pruebas (Sandbox) de Alipay en el módulo
svc-billing.
4. Instalación de SDKs Propietarios
Ciertas bibliotecas de carga de video no están disponibles en repositorios públicos de Maven. Debe instalar el archivo JAR proporcionado en su repositorio local utilizando el siguiente comando modificado:
mvn install:install-file \
-DgroupId=com.cloud.vod \
-DartifactId=video-upload-sdk \
-Dversion=1.4.15 \
-Dpackaging=jar \
-Dfile=lib/video-upload-1.4.15.jar
5. Arranque de los Microservicios
Actualice el archivo bootstrap.yml de cada microservicio para apuntar a la dirección IP y puerto de su clúster de Nacos mediante la propiedad spring.cloud.nacos.config.server-addr. Inicie primero el módulo de autenticación (svc-iam) y verifique su registro en el panel de control de Nacos. Una vez validado, proceda a iniciar el resto de los servicios según los requisitos de su despliegue.
Despliegue de las Interfaces de Usuario
El sistema cuenta con dos aplicaciones frontend separadas: el portal público basado en Nuxt.js y el panel de administración basado en Vue.js.
Antes de iniciar las aplicaciones, actualice las URLs base de la API en los archivos de configuración:
- Para el panel de administración, modifique el proxy en
vue.config.js. - Para el portal público, actualice la configuración de Axios en
utils/request.js.
Para compilar y ejecutar los proyectos en modo dsearrollo, navegue a los directorios edu-admin-dashboard y edu-portal-web respectivamente, y ejecute los siguientes comandos:
npm install
npm run dev
Las credenciales por defecto para acceder al panel de administración son el usuario admin y la contraseña 111111.