Snowy-Cloud的快速启动与部署

【免费下载链接】Snowy-Cloud 💖工作流业务领先💖Snowy-Cloud是小诺团队下Snowy的微服务前后分离版,基础包含了所有日常使用的管理功能,企业版包括camunda引擎的工作流、多租户、多数据源、ureport报表;另外官网包含大屏数据可视化、数据中台、知识库、仪表盘等产品。 【免费下载链接】Snowy-Cloud 项目地址: https://gitcode.com/xiaonuobase/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. 启动后端服务

后端包含多个微服务模块,启动顺序如下:

  1. Nacos 注册中心snowy-nacos-app,端口 8848
  2. Actuator 监控服务snowy-actuator-app,端口 9001
  3. Sentinel 流量保护服务snowy-sentinel-app,端口 9002
  4. Gateway 网关服务snowy-gateway-app,端口 9003
  5. XxlJob 任务调度服务snowy-xxl-job-app,端口 9004
  6. Web 主应用服务snowy-web-app,端口 9101
  7. 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 启动与配置

启动步骤:

  1. 安装依赖:确保已安装 JDK 17 和 Maven。
  2. 初始化数据库:创建名为 snowy-nacos-app 的数据库,并导入以下 SQL 文件:
    • src/main/resources/META-INF/nacos-db.sql
    • src/main/resources/META-INF/nacos-db-snowy-config-init.sql
  3. 启动应用:运行 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 启动与配置

启动步骤:

  1. 安装依赖:确保已安装 JDK 17 和 Maven。
  2. 启动应用:运行 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实现,提供了强大的任务调度能力和完善的监控功能。以下将详细介绍该模块的核心功能、架构设计以及使用方法。

核心功能

  1. 任务调度

    • 支持CRON表达式配置任务执行时间。
    • 提供多种路由策略(如随机、轮询、故障转移等)。
    • 支持任务分片执行,适用于大数据量处理。
  2. 任务管理

    • 动态添加、修改、删除任务。
    • 任务执行日志记录与查询。
    • 任务执行状态实时监控。
  3. 监控与告警

    • 任务执行失败自动告警。
    • 支持邮件通知。
    • 提供任务执行统计报表。

架构设计

mermaid

使用方法

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. 监控与告警

监控与告警通过JobFailMonitorHelperJobAlarmer实现。配置告警方式如下:

JobAlarmer jobAlarmer = new EmailJobAlarm();
jobAlarmer.alarm(jobId, "任务执行失败");

表格:路由策略对比

策略名称 描述 适用场景
ExecutorRouteRandom 随机选择执行器 负载均衡
ExecutorRouteRound 轮询选择执行器 均衡分配任务
ExecutorRouteFailover 故障转移 高可用任务
ExecutorRouteBusyover 忙碌转移 避免执行器过载

总结

分布式任务调度与监控模块为Snowy-Cloud提供了灵活、高效的任务管理能力,适用于复杂的业务场景。通过合理的配置和监控,可以显著提升系统的稳定性和可维护性。

多模块应用的启动顺序与配置

Snowy-Cloud 是一个基于微服务架构的多模块应用,其模块之间的启动顺序和配置至关重要,以确保系统的稳定性和功能的完整性。以下将详细介绍各模块的启动顺序、依赖关系以及相关配置。

1. 模块启动顺序

Snowy-Cloud 的微服务模块需要按照以下顺序启动,以确保依赖服务已就绪:

  1. 注册中心与配置中心(Nacos)

    • 模块:snowy-nacos-app
    • 端口:8848
    • 作用:提供服务注册与配置管理功能,其他模块启动前需确保 Nacos 已运行。
  2. 监控服务(Actuator)

    • 模块:snowy-actuator-app
    • 端口:9001
    • 作用:提供系统监控和健康检查功能。
  3. 流量保护服务(Sentinel)

    • 模块:snowy-sentinel-app
    • 端口:9002
    • 作用:实现流量控制和熔断降级。
  4. 网关服务(Gateway)

    • 模块:snowy-gateway-app
    • 端口:9003
    • 作用:统一路由和请求转发。
  5. 分布式任务调度服务(XxlJob)

    • 模块:snowy-xxl-job-app
    • 端口:9004
    • 作用:提供分布式任务调度能力。
  6. 主应用模块(Web)

    • 模块:snowy-web-app
    • 端口:9101
    • 作用:核心业务逻辑实现。
  7. 业务应用模块(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. 启动流程图

以下为模块启动的流程图,展示了各模块之间的依赖关系:

mermaid

4. 常见问题与解决方案

  1. Nacos 启动失败

    • 检查端口是否被占用。
    • 确保数据库连接配置正确。
  2. Gateway 无法路由请求

    • 检查 Nacos 中服务是否注册成功。
    • 验证路由配置中的服务名称是否正确。
  3. Sentinel 控制台无数据

    • 确认 Sentinel 模块已启动。
    • 检查客户端配置中的 dashboard 地址。

5. 总结

通过合理的启动顺序和配置,可以确保 Snowy-Cloud 的微服务模块协同工作,提供稳定高效的服务。开发者在部署时需严格按照顺序启动模块,并验证各模块的配置是否正确。

总结

Snowy-Cloud 通过模块化设计和合理的启动顺序,实现了高效稳定的微服务架构。从前端 Vue3 到后端 Spring Cloud,从 Nacos 注册中心到 Sentinel 流量控制,再到 XXL-Job 任务调度,每个组件都经过精心配置和优化。遵循本文的部署指南,开发者可以快速搭建完整的开发环境,为后续业务开发奠定坚实基础。

【免费下载链接】Snowy-Cloud 💖工作流业务领先💖Snowy-Cloud是小诺团队下Snowy的微服务前后分离版,基础包含了所有日常使用的管理功能,企业版包括camunda引擎的工作流、多租户、多数据源、ureport报表;另外官网包含大屏数据可视化、数据中台、知识库、仪表盘等产品。 【免费下载链接】Snowy-Cloud 项目地址: https://gitcode.com/xiaonuobase/Snowy-Cloud

Logo

中国智能体开发者社区,聚焦智能体与大模型开发,提供前沿资讯、实用工具链、开源项目及行业案例。通过技术沙龙、开发者大赛等活动,促进经验交流与协作,助力开发者快速构建创新智能应用。

更多推荐