Snowy-Cloud的快速启动与部署
Snowy-Cloud的快速启动与部署
Snowy-Cloud 是一个基于微服务架构的全栈快速开发平台,涵盖前端、后端、注册中心、流量控制、任务调度等模块。本文将从环境配置、核心组件、任务调度到多模块启动顺序,全面介绍如何快速部署和运行 Snowy-Cloud。
前端与后端的依赖环境配置
Snowy-Cloud 是一个基于微服务架构的全栈快速开发平台,其前端和后端的依赖环境配置是项目启动和运行的基础。以下将详细介绍前端和后端所需的依赖环境及其配置方法。
前端依赖环境配置
前端项目基于 Vue 3 和 Ant Design Vue 构建,使用 Vite 作为构建工具。以下是前端依赖环境的配置步骤:
1. 安装 Node.js
前端开发需要 Node.js 作为运行环境,建议安装 Node.js 18 或更高版本。可以通过以下命令验证 Node.js 是否安装成功:
node -v
npm -v
2. 安装项目依赖
进入前端项目目录 snowy-admin-web,运行以下命令安装依赖:
npm install
3. 启动开发服务器
安装完成后,运行以下命令启动开发服务器:
npm run dev
启动成功后,浏览器访问 http://localhost:9000 即可查看前端界面。
4. 前端依赖清单
以下是前端项目的主要依赖: | 依赖名称 | 版本 | 用途 | |-------------------|--------|--------------------------| | vue | 3.x | 前端框架 | | ant-design-vue | 4.x | UI 组件库 | | vite | 5.x | 构建工具 | | pinia | 2.x | 状态管理 | | axios | 1.x | HTTP 客户端 | | sm-crypto | 2.x | 国密算法库 |
后端依赖环境配置
后端基于 Spring Cloud 和 Spring Boot 构建,使用 Maven 作为依赖管理工具。以下是后端依赖环境的配置步骤:
1. 安装 JDK
后端需要 JDK 17 或更高版本。可以通过以下命令验证 JDK 是否安装成功:
java -version
2. 安装 Maven
Maven 用于管理后端项目的依赖和构建。建议安装最新版本:
mvn -v
3. 安装 Redis
Redis 用于缓存和数据存储,建议安装最新版本:
redis-cli --version
4. 安装 MySQL
数据库使用 MySQL 8.0 或 5.7 版本。确保 MySQL 服务已启动:
mysql --version
5. 启动后端服务
后端包含多个微服务模块,启动顺序如下:
- Nacos 注册中心:
snowy-nacos-app,端口8848。 - Actuator 监控服务:
snowy-actuator-app,端口9001。 - Sentinel 流量保护服务:
snowy-sentinel-app,端口9002。 - Gateway 网关服务:
snowy-gateway-app,端口9003。 - XxlJob 任务调度服务:
snowy-xxl-job-app,端口9004。 - Web 主应用服务:
snowy-web-app,端口9101。 - Biz 业务应用服务:
snowy-biz-app,端口9102。
6. 后端依赖清单
以下是后端项目的主要依赖: | 依赖名称 | 版本 | 用途 | |------------------------|--------|--------------------------| | spring-boot-starter | 3.x | Spring Boot 核心 | | spring-cloud-starter | 2022.x | Spring Cloud 核心 | | mybatis-plus | 3.x | ORM 框架 | | lombok | 1.x | 代码简化工具 | | redis-spring-boot | 3.x | Redis 集成 | | mysql-connector-java | 8.x | MySQL 驱动 |
依赖环境验证
为确保依赖环境配置正确,可以通过以下命令验证:
- 前端:
npm run build检查构建是否成功。 - 后端:
mvn clean install检查依赖是否完整。
通过以上步骤,可以顺利完成 Snowy-Cloud 的前端与后端依赖环境配置,为后续的开发与部署奠定基础。
Nacos注册中心与Sentinel限流服务
Snowy-Cloud 是一个基于微服务架构的快速开发平台,其中 Nacos 和 Sentinel 是其核心组件之一,分别用于服务注册与发现以及流量控制和熔断降级。以下将详细介绍这两个组件的配置与使用。
Nacos 注册中心
Nacos 是一个动态服务发现、配置和服务管理平台,支持服务注册、配置管理和服务健康监测等功能。在 Snowy-Cloud 中,Nacos 作为服务注册中心,负责管理所有微服务的注册与发现。
1. Nacos 启动与配置
启动步骤:
- 安装依赖:确保已安装 JDK 17 和 Maven。
- 初始化数据库:创建名为
snowy-nacos-app的数据库,并导入以下 SQL 文件:src/main/resources/META-INF/nacos-db.sqlsrc/main/resources/META-INF/nacos-db-snowy-config-init.sql
- 启动应用:运行
com.alibaba.nacos.SnowyNacosApp类,默认端口为8848。
配置文件: Nacos 的配置数据位于 src/main/resources/META-INF/config-data 目录下,包含以下关键配置:
application.properties:Nacos 基础配置,如数据库连接、端口等。bootstrap.properties:Spring Boot 启动配置。
2. Nacos 核心功能
服务注册与发现: 微服务通过以下配置注册到 Nacos:
spring:
cloud:
nacos:
discovery:
server-addr: localhost:8848
配置管理: Nacos 支持动态配置更新,配置项通过以下方式加载:
spring:
cloud:
nacos:
config:
server-addr: localhost:8848
file-extension: yaml
3. Nacos 集群部署
集群配置: Nacos 支持集群部署以提高可用性。配置文件 cluster.conf 需包含所有节点的 IP 和端口:
192.168.1.1:8848
192.168.1.2:8848
192.168.1.3:8848
启动命令:
sh startup.sh -m cluster
Sentinel 限流服务
Sentinel 是阿里巴巴开源的流量控制组件,用于实现微服务的流量控制、熔断降级和系统负载保护。
1. Sentinel 启动与配置
启动步骤:
- 安装依赖:确保已安装 JDK 17 和 Maven。
- 启动应用:运行
com.alibaba.csp.sentinel.SnowySentinelApp类,默认端口为9002。
配置文件: Sentinel 的配置数据位于 src/main/resources 目录下,包含以下关键配置:
application.properties:Sentinel 基础配置,如端口、数据库连接等。flow-rules.json:流量控制规则定义。
2. Sentinel 核心功能
流量控制: Sentinel 支持多种流量控制策略,如 QPS 限流、线程数限流等。以下是一个流量控制规则的示例:
[
{
"resource": "/api/test",
"limitApp": "default",
"grade": 1,
"count": 100,
"strategy": 0,
"controlBehavior": 0
}
]
熔断降级: Sentinel 支持基于响应时间或异常比例的熔断降级规则:
[
{
"resource": "/api/test",
"grade": 0,
"count": 5000,
"timeWindow": 10
}
]
3. Sentinel 控制台
Sentinel 提供了一个控制台用于实时监控和管理流量规则。启动控制台后,访问 http://localhost:8080 即可查看以下内容:
- 实时监控:展示各资源的 QPS、响应时间等指标。
- 规则管理:动态添加、修改或删除流量控制规则。
总结
Nacos 和 Sentinel 是 Snowy-Cloud 微服务架构中不可或缺的组件,分别负责服务注册与发现以及流量控制。通过合理配置和使用这两个组件,可以显著提升系统的稳定性和可用性。
分布式任务调度与监控模块
Snowy-Cloud的分布式任务调度与监控模块基于XXL-Job实现,提供了强大的任务调度能力和完善的监控功能。以下将详细介绍该模块的核心功能、架构设计以及使用方法。
核心功能
-
任务调度:
- 支持CRON表达式配置任务执行时间。
- 提供多种路由策略(如随机、轮询、故障转移等)。
- 支持任务分片执行,适用于大数据量处理。
-
任务管理:
- 动态添加、修改、删除任务。
- 任务执行日志记录与查询。
- 任务执行状态实时监控。
-
监控与告警:
- 任务执行失败自动告警。
- 支持邮件通知。
- 提供任务执行统计报表。
架构设计
使用方法
1. 任务配置
任务配置通过XxlJobInfo类实现,支持以下字段:
jobDesc:任务描述。scheduleType:调度类型(如CRON)。scheduleConf:调度配置(如CRON表达式)。executorHandler:任务处理器名称。executorParam:任务参数。
示例代码:
XxlJobInfo jobInfo = new XxlJobInfo();
jobInfo.setJobDesc("示例任务");
jobInfo.setScheduleType("CRON");
jobInfo.setScheduleConf("0/10 * * * * ?");
jobInfo.setExecutorHandler("demoJobHandler");
jobInfo.setExecutorParam("参数示例");
2. 任务触发
任务触发通过XxlJobTrigger类实现,支持以下触发类型:
MANUAL:手动触发。CRON:定时触发。RETRY:失败重试触发。
示例代码:
XxlJobTrigger.trigger(
jobId,
TriggerTypeEnum.MANUAL,
0,
null,
"参数示例",
null
);
3. 监控与告警
监控与告警通过JobFailMonitorHelper和JobAlarmer实现。配置告警方式如下:
JobAlarmer jobAlarmer = new EmailJobAlarm();
jobAlarmer.alarm(jobId, "任务执行失败");
表格:路由策略对比
| 策略名称 | 描述 | 适用场景 |
|---|---|---|
ExecutorRouteRandom |
随机选择执行器 | 负载均衡 |
ExecutorRouteRound |
轮询选择执行器 | 均衡分配任务 |
ExecutorRouteFailover |
故障转移 | 高可用任务 |
ExecutorRouteBusyover |
忙碌转移 | 避免执行器过载 |
总结
分布式任务调度与监控模块为Snowy-Cloud提供了灵活、高效的任务管理能力,适用于复杂的业务场景。通过合理的配置和监控,可以显著提升系统的稳定性和可维护性。
多模块应用的启动顺序与配置
Snowy-Cloud 是一个基于微服务架构的多模块应用,其模块之间的启动顺序和配置至关重要,以确保系统的稳定性和功能的完整性。以下将详细介绍各模块的启动顺序、依赖关系以及相关配置。
1. 模块启动顺序
Snowy-Cloud 的微服务模块需要按照以下顺序启动,以确保依赖服务已就绪:
-
注册中心与配置中心(Nacos)
- 模块:
snowy-nacos-app - 端口:8848
- 作用:提供服务注册与配置管理功能,其他模块启动前需确保 Nacos 已运行。
- 模块:
-
监控服务(Actuator)
- 模块:
snowy-actuator-app - 端口:9001
- 作用:提供系统监控和健康检查功能。
- 模块:
-
流量保护服务(Sentinel)
- 模块:
snowy-sentinel-app - 端口:9002
- 作用:实现流量控制和熔断降级。
- 模块:
-
网关服务(Gateway)
- 模块:
snowy-gateway-app - 端口:9003
- 作用:统一路由和请求转发。
- 模块:
-
分布式任务调度服务(XxlJob)
- 模块:
snowy-xxl-job-app - 端口:9004
- 作用:提供分布式任务调度能力。
- 模块:
-
主应用模块(Web)
- 模块:
snowy-web-app - 端口:9101
- 作用:核心业务逻辑实现。
- 模块:
-
业务应用模块(Biz)
- 模块:
snowy-biz-app - 端口:9102
- 作用:扩展业务功能。
- 模块:
2. 配置说明
每个模块的配置文件中需包含以下关键配置项:
Nacos 配置
spring:
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848
config:
server-addr: 127.0.0.1:8848
Gateway 路由配置
spring:
cloud:
gateway:
routes:
- id: snowy-web
uri: lb://snowy-web-app
predicates:
- Path=/api/web/**
Sentinel 规则配置
spring:
cloud:
sentinel:
transport:
dashboard: 127.0.0.1:9002
3. 启动流程图
以下为模块启动的流程图,展示了各模块之间的依赖关系:
4. 常见问题与解决方案
-
Nacos 启动失败
- 检查端口是否被占用。
- 确保数据库连接配置正确。
-
Gateway 无法路由请求
- 检查 Nacos 中服务是否注册成功。
- 验证路由配置中的服务名称是否正确。
-
Sentinel 控制台无数据
- 确认 Sentinel 模块已启动。
- 检查客户端配置中的
dashboard地址。
5. 总结
通过合理的启动顺序和配置,可以确保 Snowy-Cloud 的微服务模块协同工作,提供稳定高效的服务。开发者在部署时需严格按照顺序启动模块,并验证各模块的配置是否正确。
总结
Snowy-Cloud 通过模块化设计和合理的启动顺序,实现了高效稳定的微服务架构。从前端 Vue3 到后端 Spring Cloud,从 Nacos 注册中心到 Sentinel 流量控制,再到 XXL-Job 任务调度,每个组件都经过精心配置和优化。遵循本文的部署指南,开发者可以快速搭建完整的开发环境,为后续业务开发奠定坚实基础。
更多推荐



所有评论(0)