Skip to content
View wzkris's full-sized avatar

Block or report wzkris

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don't include any personal information such as legal names or email addresses. Markdown supported. This note will be visible to only you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
wzkris/README.md

wzkris-cloud

version JDK Spring Boot

📖 平台简介

wzkris-cloud 是一个基于 Spring Boot 3 + JDK 17 的企业级多租户微服务快速开发平台, 内嵌了丰富的通用功能模块,旨在为企业应用开发提供高效、安全、可扩展的基础架构。

系统核心功能

  • 多端用户系统:支持管理员、租户管理员和移动端用户的多端管理
  • OAuth2.1认证系统:基于Spring-Authorization-Server实现完整的OAuth2.1协议认证授权
  • 多维度权限控制:基于角色(RBAC)的精细化权限管理体系,支持菜单、按钮、数据权限
  • 完整多租户架构:租户之间数据完全隔离,支持租户切换和租户管理
  • 全面日志监控:操作日志、登录日志、审计日志的完整记录和查询
  • 高效Excel处理:基于EasyExcel实现的高性能Excel导入导出功能
  • 专业接口文档:集成Knife4j实现OpenAPI 3.0规范的自动API文档生成
  • 安全数据保护:敏感信息自动脱敏处理、XSS防护、SQL注入防护
  • 分布式任务调度:集成xxl-job实现可靠的定时任务管理
  • 多种登录方式:支持账号密码、短信验证码、微信等多种登录方式
  • 动态代码执行:支持动态编译和执行Java代码
  • 微服务治理:基于Spring Cloud和Spring Cloud Alibaba的完整微服务解决方案

🏗️ 项目结构

wzkris     
├── codestyle              // 代码风格配置文件
├── sql                    // 数据库脚本(MySQL/PostgreSQL)
├── wzkris-auth            // OAuth2认证授权服务
│   ├── wzkris-auth-biz    // 认证业务实现
│   └── wzkris-auth-rmi    // 认证远程接口
├── wzkris-bom             // 依赖版本管理
├── wzkris-common          // 公共模块集合
│   ├── wzkris-common-apikey        // API密钥管理
│   ├── wzkris-common-captcha       // 验证码模块
│   ├── wzkris-common-core          // 核心工具包
│   ├── wzkris-common-excel         // Excel处理
│   ├── wzkris-common-loadbalancer  // 负载均衡
│   ├── wzkris-common-log           // 日志记录
│   ├── wzkris-common-notifier      // 通知SDK集成
│   ├── wzkris-common-httpservice   // 远程调用
│   ├── wzkris-common-orm           // 持久层框架
│   ├── wzkris-common-redis         // Redis缓存
│   ├── wzkris-common-seata         // 分布式事务
│   ├── wzkris-common-security      // 安全模块
│   ├── wzkris-common-sentinel      // 限流熔断
│   ├── wzkris-common-statemachine  // 状态机
│   ├── wzkris-common-swagger       // API文档
│   ├── wzkris-common-thread        // 线程池
│   ├── wzkris-common-validator     // 数据校验
│   ├── wzkris-common-web           // Web基础
│   └── wzkris-common-weixin-sdk    // 微信SDK
├── wzkris-demo            // 示例模块
│   ├── wzkris-mq-demo         // RocketMQ Stream 示例
│   └── wzkris-pg-bus-demo     // PostgreSQL LISTEN/NOTIFY + MyBatis-Plus 示例
├── wzkris-extends         // 扩展模块
│   └── wzkris-monitor-admin  // 监控中心
├── wzkris-gateway         // API网关
├── wzkris-modules         // 业务功能模块
│   ├── wzkris-modules-message     // 消息服务
│   └── wzkris-modules-principal   // 主体信息服务
└── pom.xml                // 项目依赖管理

🌟 项目特点

  • 模块化架构:高度模块化的设计,便于扩展和维护
  • 微服务支持:完整的微服务架构解决方案
  • 多租户隔离:数据、功能、配置全方位的租户隔离
  • 安全可靠:完善的认证授权、数据脱敏、防XSS/SQL注入
  • 开发友好:丰富的工具类和通用组件,提高开发效率
  • 性能优化:缓存策略、异步处理、连接池优化
  • 运维便捷:完善的监控、日志、配置管理

🚀 快速开始

环境要求

环境/工具 版本要求 说明 默认端口
JDK 17+ Java开发环境 -
Maven 3.6+ 项目构建工具 -
PostgreSQL 12+ 项目主数据库 5432
MySQL 8.0+ Nacos配置中心数据库 3306
Redis 6.0+ 缓存和会话管理 6379
Nacos 2.2.0+ 服务注册发现与配置管理 8848

部署步骤

  1. 准备数据库

    PostgreSQL数据库(主数据库)

    • 创建PostgreSQL数据库(推荐版本 12+)
    • 执行 sql/postgresql/wzkris_principal.sql 初始化主体服务数据库
    • 执行 sql/postgresql/wzkris_message.sql 初始化消息服务数据库

    MySQL数据库(Nacos配置中心)

    • 创建MySQL数据库(推荐版本 8.0+)
    • 执行 sql/mysql/nacos_config.sql 初始化Nacos配置中心数据库
  2. 配置Nacos

    • 启动Nacos服务(默认端口 8848)
    • 配置Nacos使用MySQL数据源(指向步骤1创建的nacos_config数据库)
    • 在Nacos控制台导入相关服务配置信息
  3. 配置Redis

    • 启动Redis服务(默认端口 6379)
    • 确保Redis服务可访问,用于缓存和会话管理
  4. 构建项目

    # 编译打包(跳过测试)
    mvn clean package -DskipTests
  5. 启动服务

    • 按顺序启动各个服务:
      1. Nacos(服务注册与配置中心)
      2. Gateway (8080) - API网关服务
      3. Auth (9000) - 认证授权服务
      4. Principal (8000) - 主体信息服务
      5. Message (5555) - 消息服务
      6. Monitor (9100) - 监控中心(可选)

服务端口说明

服务名称 端口 说明
Gateway 8080 API网关服务
Auth 9000 认证授权服务
Principal 8000 主体信息服务
Message 5555 消息服务
Monitor 9100 监控中心

📨 PostgreSQL 消息总线 Demo

wzkris-demo/wzkris-pg-bus-demo 演示了如何通过 MyBatis-Plus + PostgreSQL NOTIFY/LISTEN 组合出轻量级消息总线,覆盖如下能力:

  • MyBatis-Plus 管理消息表 demo_bus_message(字段包含 channel、title、payload、status)
  • 通过 pg_notify 推送变更事件,监听线程常驻 LISTEN <channel>
  • REST API 用于发消息、补发、手动 ACK,便于联调

快速体验

  1. 初始化表结构
    \i sql/postgresql/wzkris_pg_bus_demo.sql
  2. 根据需要在 wzkris-demo/wzkris-pg-bus-demo/src/main/resources/application.yml 配置数据库
  3. 启动 Demo
    mvn -pl wzkris-demo/wzkris-pg-bus-demo spring-boot:run
  4. 调用接口
    # 发布一条消息
    curl -X POST http://localhost:3341/messages \
      -H "Content-Type: application/json" \
      -d '{"title":"demo","payload":"hello pg bus"}'
    # 重放
    curl -X POST http://localhost:3341/messages/{id}/resend
    # 查询
    curl http://localhost:3341/messages

访问方式

🎯 技术架构

分类 技术 版本 说明
基础框架 Spring Boot 3.4.4 核心框架
微服务框架 Spring Cloud 2024.0.1 微服务框架
微服务生态 Spring Cloud Alibaba 2023.0.3.2 微服务生态组件
开发环境 JDK 17 Java开发环境
Web容器 Tomcat - 内嵌Web容器
API网关 Spring Cloud Gateway - 统一网关入口
服务注册 Nacos 2.2.0+ 服务注册发现与配置管理
权限认证 Spring-Authorization-Server - OAuth2.1认证框架
API文档 Knife4j 4.5.0 OpenAPI 3.0文档工具
对象映射 MapStruct Plus 1.4.6 对象转换增强框架
工具库 Lombok 1.18.28 代码简化工具
网络框架 Netty 4.1.110.Final 高性能网络应用框架
主数据库 PostgreSQL 12+ 项目主关系型数据库
配置数据库 MySQL 8.0+ 仅用于Nacos配置中心
缓存中间件 Redis/Redisson - 分布式缓存
任务调度 XxlJob 3.2.0 分布式任务调度平台
Excel处理 EasyExcel 4.0.2 高性能Excel处理
分布式事务 Seata - 分布式事务框架(Spring Cloud Alibaba集成)
限流熔断 Sentinel - 流量控制与熔断降级(Spring Cloud Alibaba集成)
监控管理 Spring Boot Admin - 应用监控管理
远程调用 HttpService - 服务间HTTP调用
代码质量 Checkstyle 3.6.0 代码风格检查
代码格式化 Spotless 2.44.4 代码自动格式化

演示图

输入图片说明 输入图片说明
输入图片说明 输入图片说明
输入图片说明 输入图片说明
输入图片说明 输入图片说明

前端项目地址

https://gitee.com/wzkris/wzkris-ui-vben

📄 许可证

本项目采用 zlib License 许可证。

🤝 贡献指南

欢迎提交Issue和Pull Request!

  1. Fork本项目
  2. 创建特性分支 (git checkout -b feature/amazing-feature)
  3. 提交更改 (git commit -m 'Add some amazing feature')
  4. 推送到分支 (git push origin feature/amazing-feature)
  5. 开启Pull Request

📞 联系方式

如有问题或建议,请通过以下方式联系我们:

Pinned Loading

  1. wzkris wzkris Public

    Java