# chaos **Repository Path**: JackyCui666/chaos ## Basic Information - **Project Name**: chaos - **Description**: Chaos 是一个基于分布式、前后端分离设计的,持续集成、持续迭代,开箱即用的快速开发架构。 - **Primary Language**: Java - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 101 - **Forks**: 28 - **Created**: 2020-06-03 - **Last Updated**: 2026-04-17 ## Categories & Tags **Categories**: backend **Tags**: 快速开发, 架构 ## README ![](https://img.shields.io/badge/language-java-483D8B.svg) ![](https://img.shields.io/badge/license-MIT-483D8B.svg) # CHAOS 一体化架构解决方案 🍑 Chaos 是一个基于分布式、前后端分离设计的,开箱即用的快速开发架构,提供从后端服务到前端应用的全栈解决方案。 ## 📋 目录 - [项目概述](#项目概述) - [相关文档](#相关文档) - [技术栈](#技术栈) - [项目结构](#项目结构) - [快速开始](#快速开始) - [核心特性](#核心特性) - [架构设计](#架构设计) - [API 规范](#api-规范) - [项目展示](#项目展示) - [联系我们](#联系我们) ## 📖 项目概述 Chaos 是一个企业级的一体化开发架构,支持多端应用开发,包括: - **后端服务**:基于 Spring Cloud 的微服务架构 - **Web 应用**:支持 React (Gatsby/Next.js) 和 Vue (Nuxt.js) - **移动应用**:Android 原生开发 - **小程序**:支持微信小程序、支付宝小程序等多端开发 - **其他服务**:支持 Go、PHP 等多种语言的服务开发 ## 📚 相关文档 - [项目总结报告](PROJECT_SUMMARY_REPORT.md) - 项目的完整总结,包括架构、技术栈、核心功能等 - [AI 优化亮点](AI_OPTIMIZATION_HIGHLIGHTS.md) - AI 对项目的优化成果和亮点分析 ## 🛠 技术栈 ### 后端架构 | 技术 | 版本 | 说明 | |------|------|------| | SpringBoot | 3.2.4 | 基础框架 | | SpringCloud | 2023.0.1 | 微服务框架 | | SpringCloudAlibaba | 2023.0.1.0 | 阿里云微服务组件 | | SpringAI | 1.0.0-M6 | AI 集成 | | Nacos | 2.4.0 | 服务注册与配置中心 | | MybatisPlus | 3.5.10.1 | ORM 框架 | | xxl-job | 3.0.0 | 分布式任务调度 | | springfox | 3.0.0 | API 文档 | | shardingSphere | 5.0.0 | 分库分表 | ### 前端架构 | 框架 | 版本 | 用途 | |------|------|------| | Gatsby | 2.26.1 | React 静态站点生成 | | Next.js | 10.0.0 | React 服务端渲染 | | Nuxt.js | 3.x | Vue 服务端渲染 | | Taro | 3.6.37 | 多端小程序开发 | | React | 18.0.0 | 前端框架 | | Vue | 3.x | 前端框架 | ### 移动端 | 技术 | 说明 | |------|------| | Kotlin | Android 原生开发 | | Jetpack Compose | 现代 Android UI | ## 📁 项目结构 ``` chaos/ ├── chaos-index/ # 前端应用 │ ├── chaos-gatsby/ # Gatsby 应用 │ ├── chaos-nextjs/ # Next.js 应用 │ └── chaos-nuxtjs/ # Nuxt.js 应用 ├── chaos-jetpack/ # Android 应用 ├── chaos-miniapp/ # 小程序应用 │ ├── chaos-miniapp-taro/ # Taro 多端小程序 │ └── chaos-miniapp-weapp/ # 微信原生小程序 ├── chaos-service/ # 后端微服务 │ ├── chaos-auth/ # 认证服务 │ ├── chaos-system/ # 系统服务 │ ├── chaos-gateway/ # 网关服务 │ ├── chaos-payment/ # 支付服务 │ ├── chaos-generator/ # 代码生成器 │ ├── chaos-framework/ # 框架核心 │ └── xxl-job/ # 定时任务 └── chaos-services/ # 其他语言服务 ├── chaos-service-go/ # Go 服务 │ ├── chaos-gin/ # Gin 框架 │ ├── chaos-echo/ # Echo 框架 │ ├── chaos-fiber/ # Fiber 框架 │ └── chaos-beego/ # Beego 框架 └── chaos-service-php/ # PHP 服务 ├── chaos-laravel/ # Laravel 框架 └── chaos-ThinkAdmin5/ # ThinkAdmin 框架 ``` ## 🚀 快速开始 ### 后端服务 #### 环境要求 - JDK 17+ - Maven 3.6+ - MySQL 8.0+ - Redis 6.0+ - Nacos 2.4.0+ #### 启动步骤 1. **克隆项目** ```bash git clone https://github.com/your-repo/chaos.git cd chaos/chaos-service ``` 2. **配置数据库** ```bash # 数据库初始化脚本位于 _deploy/xxl-job/xxl_job.sql # 请根据实际业务需求创建数据库表结构 ``` 3. **配置 Nacos** ```bash # 启动 Nacos(Docker 方式) docker run --name nacos --restart=always -d --network host \ --env MODE=standalone \ --env NACOS_AUTH_ENABLE=true \ --env NACOS_AUTH_TOKEN= \ --env NACOS_AUTH_TOKEN_TIMEOUT=18000 \ --env NACOS_AUTH_IDENTITY_KEY=nacos \ --env NACOS_AUTH_IDENTITY_VALUE=nacos \ --env NACOS_JVM_XMS=512m \ --env NACOS_JVM_XMX=512m \ --env NACOS_JVM_XMN=256m \ -v /usr/local/nacos/data:/home/nacos/data \ -v /usr/local/nacos/logs:/home/nacos/logs \ nacos-registry.cn-hangzhou.cr.aliyuncs.com/nacos/nacos-server:v2.3.2 # 导入 Nacos 配置 # 配置文件位于 _deploy/nacos/ 目录 # 通过 Nacos 控制台导入 chaos.yaml、chaos-gateway-service.yaml、chaos-system-service.yaml ``` 4. **启动服务** ```bash # 编译项目 mvn clean install # 启动网关 cd chaos-gateway mvn spring-boot:run # 启动认证服务 cd chaos-auth/chaos-auth-service mvn spring-boot:run # 启动系统服务 cd chaos-system/chaos-system-service mvn spring-boot:run ``` ### 前端应用 #### Gatsby 应用 ```bash cd chaos-index/chaos-gatsby npm install npm run dev ``` #### Next.js 应用 ```bash cd chaos-index/chaos-nextjs npm install npm run dev ``` #### Nuxt.js 应用 ```bash cd chaos-index/chaos-nuxtjs npm install npm run dev ``` ### 小程序应用 #### Taro 多端小程序 ```bash cd chaos-miniapp/chaos-miniapp-taro yarn install # 微信小程序 yarn dev:weapp # H5 yarn dev:h5 ``` #### 微信原生小程序 ```bash cd chaos-miniapp/chaos-miniapp-weapp npm install # 使用微信开发者工具打开项目 ``` ### Android 应用 ```bash cd chaos-jetpack ./gradlew assembleDebug ``` ## ✨ 核心特性 ### 1. 统一的注解体系 - `@ChaosApplication`:整合了 Spring Boot、组件扫描和 Mapper 扫描 - 减少样板代码,提高开发效率 - 便于框架级别的统一管理和升级 ### 2. 多租户架构支持 - 通用的租户应用配置表设计 - 支持动态配置获取 - 灵活的应用类型扩展机制 - 完整的数据隔离方案 ### 3. OAuth2 认证授权 - 支持多种认证方式(手机号、用户名密码、第三方授权) - 完善的 RBAC 权限管理 - 统一的鉴权机制 ### 4. 分布式链路追踪 - 完善的日志体系 - 支持 traceId 链路追踪 - 分环境配置(local/prod) - 自动滚动和清理策略 ### 5. 规范化的 Feign 调用 - 统一的 `/feign/` 路径前缀 - 清晰的接口职责划分 - 便于服务间调用和监控 ### 6. 代码生成器 - 支持快速生成 CRUD 代码 - 统一的代码风格 - 提高开发效率 ## 🏗 架构设计 ### 微服务架构 Chaos 采用标准的微服务架构,包含以下核心服务: - **chaos-gateway**:API 网关,负责路由转发、负载均衡、认证授权 - **chaos-auth**:认证授权服务,提供 OAuth2 认证 - **chaos-system**:系统服务,提供用户、角色、权限等基础功能 - **chaos-payment**:支付服务,提供多种支付方式集成 - **xxl-job**:分布式任务调度服务 ### 数据隔离策略 1. **租户级别**:实现公司级数据隔离 2. **部门级别**:基于数据的 adminId、deptId 实现公司内部分级数据隔离 3. **用户级别**:C 端用户通过 userId 区分 ### 认证授权流程 1. **客户端认证**:基于 OAuth2 的多种认证方式 2. **权限赋权**:基于 RBAC 的角色权限管理 3. **接口鉴权**:统一的鉴权机制 ## 📡 API 规范 ### 统一响应格式 #### 基础格式 ```json { "code": "200", "msg": "success", "showType": "0", "success": true } ``` #### 数据对象 ```json { "code": "200", "msg": "success", "showType": "0", "data": { "id": "1", "tenantId": "1", "username": "jacky", "status": "1" }, "success": true } ``` #### 列表数据 ```json { "code": "200", "msg": "SUCCESS", "showType": "0", "list": [ { "id": "1", "tenantId": "1", "username": "jacky", "status": "1" } ], "success": true } ``` #### 分页数据 ```json { "code": "200", "msg": "SUCCESS", "showType": "0", "page": { "list": [ { "id": "1", "tenantId": "1", "username": "jacky", "status": "1" } ], "total": "1", "current": "1" }, "success": true } ``` ### 状态码规范 | 状态码 | 说明 | |--------|------| | 200 | 成功 | | 4xx | 客户端错误 | | 5xx | 服务端错误 | | 6xx | 业务错误 | | 100X | 认证相关错误 | ## 🎨 项目展示 ## 📄 许可证 ### 版权声明 **CHAOS 一体化架构解决方案** © 2024 Jacky.Cui. 保留所有权利。 ### 使用许可 本项目采用 **保留所有权利** 的许可证模式。未经版权所有者明确书面许可,禁止以下行为: #### 禁止行为 - ❌ 商业使用:未经授权不得用于商业项目或盈利目的 - ❌ 修改和分发:未经授权不得修改、复制、分发本项目的任何部分 - ❌ 移除版权:不得移除或修改项目中的版权声明和作者信息 - ❌ 反向工程:不得对本项目进行反向工程、反编译或反汇编 - ❌ 专利申请:不得基于本项目申请专利或知识产权 #### 允许行为 - ✅ 个人学习和研究:允许用于个人学习和研究目的 - ✅ 代码参考:允许参考代码结构和设计思路 - ✅ 非商业演示:允许用于非商业性质的技术演示 ### 商业授权 如需将本项目用于商业用途,请联系版权所有者获取商业授权: **联系方式:** - 📧 Email: 632381896@qq.com - 💬 微信: ibao2088 - 📱 QQ: - 🎵 抖音: ### 免责声明 本项目按"原样"提供,不提供任何明示或暗示的保证,包括但不限于: - 适销性 - 特定用途适用性 - 非侵权性 在任何情况下,版权所有者都不对任何直接、间接、偶然、特殊、惩罚性或后果性损害(包括但不限于替代商品或服务的采购;使用、数据或利润的损失;或业务中断)承担责任,无论是基于合同、侵权或其他责任理论,即使已被告知此类损害的可能性。 ### 法律声明 本项目受中华人民共和国著作权法和国际著作权条约保护。未经授权的使用将追究法律责任。 --- # PoweredBy Jacky.Cui