“一套代码、两种架构,可以灵活切换微服务和单体两种架构”的企业级云原生微服务基座
GitCode 仓库 | Github 仓库 | Gitee 仓库 | 在线文档
Dante Cloud 国内首个支持阻塞式和响应式服务并行的、开箱即用的企业级云原生微服务基座。是采用领域驱动模型(DDD)设计思想,以「高质量代码、低安全漏洞」为核心,基于 Spring 生态全域开源技术,高度模块化和组件化设计,支持智能电视、IoT等物联网设备认证,满足国家三级等保要求,支持接口国密数字信封加解密等一系列安全体系的一站式多租户微服务解决方案。独创的可以“一套代码实现微服务和单体两种架构灵活切换”的企业级应用系统。
Dante Cloud 一直秉承着“简洁、高效、包容、务实”的理念,使用微服务领域及周边相关的各类新兴技术或主流技术进行建设,不断地深耕细作、去粗取精、用心打造。目标是构建一款代码质量高、维护投入低、安全防护强
的微服务基座,可以帮助用户快速跨越架构技术选型、技术研究探索、基础架构搭建阶段,直接聚焦业务开发。极大地降低传统项目中因安全漏洞、技术负债、低质代码等潜在隐患所产生的高维护投入。期望像项目名字寓意一样,构建一套可以在在行业变革的时期承上启下,助力企业信息化建设和数字化转型的产品。
Dante Cloud 核心关注点是:「高质量的系统代码」、「合理的系统架构」、「低耦合的模块划分」、「高安全性系统实现」、「灵活的功能扩展能力」,「优质的微服务防范」。不会像其它一些系统一样,追求 业务功能 的 丰富 性。堆叠大量无法做到真正通用的功能,反倒会成为负担和干扰,不如由用户自己按照需求灵活设计和实现。
Dante Cloud 优秀的模块化能力,为系统提供了高度灵活的配置能力、功能的“可插拔”能力 以及不同需求场景的适配能力。正因为优秀的模块化体系,使得 Dante Cloud 不仅是一套完整的微服务架构,还是一套高质量的 「单体模块化」 系统。这里的微服务架构和单体架构并不是分离的两套代码,也不是分离的两个项目。而是完全融合的一整套代码,使用时可以根据需要选择是以微服务模式或者单体模式运行,配合灵活的模块能力,实现系统的多样化定制和功能的管控。
这是 Dante Cloud 微服务最大的特色之一:“一套代码、两种架构”。可以帮助企业在项目早期以单体架构快速建设项目、方便开发人员在本地进行开发以及新技术研究。在项目后期随着用户规模增大以及并发需求提升时,可以快速无缝迁移至微服务架构。
微服务技术并不是落伍了,而是进入了成熟期,它的适用场景和边界被更清晰地定义了。微服务不再是一个“必须要有”的选项,而是一个“权衡之后”的选择。同时,Dante Cloud 也并未使用任何复杂难懂或难以上手掌握的技术,项目中所涉及核心关键组件中,其中 「近 80% 均为 Spring 生态原生组件」。技术实现均为各组件标准用法的组合与应用,编码风格和代码设计一直也在极尽努力尽量与 Spring 生态的标准规范用法保持一致,只不过经过大量的版本迭代和重构之后逐渐形成了一定的封装与抽象。
本项目适用的用户如下:
- 「传统项目用户」:可以先体验的单体版,先从“前后端分离”以及“多端适配”开始,尝试不同于传统内嵌页面的开发模式。
- 「数字转型用户」:如果您正在考虑进行数字化转型,可以直接选择使用微服务版本,不用再为“基础组件碎片化,需花大量时间整合、踩坑版本兼容”等问题而苦恼。
- 「复杂项目用户」:如果您的业务复杂度上升到一定阶段,可以直接选择使用微服务版本,直接聚焦于业务开发,节省大量前期搭建基础设施、解决通用技术问题的时间。
- 「初创团队用户」:可以先使用单体版进行开发,只要代码放置规范、模块划分合理,后期可以根据需要无缝迁移至微服务架构
- 「技术尝鲜用户」:本项目并不拘泥局限于常规成熟的技术内容,目标是探索新型技术并用其来为业务的创新服务。喜欢技术尝鲜的用户可以尝鲜使用。
- 「学习提升用户」:本项目代码实现优雅和领域划分清晰,编码风格和模块实现尽最大可能与 Spring 生态规范保持一致,是深入学习 Spring 生态组件和提升技能的优秀案例
想要从传统项目转型至微服务项目的用户,建议详细阅读《企业IT架构转型之道:阿里巴巴中台战略思想与架构实战》一书(可以先读前几章)之后再上手本项目!
自 v3.3.6.0 版本起,Dante Cloud 以及 Dante OSS 和 Dante Engine 子项目开源协议 【永久】 变更为 Apache License Version 2.0。可用于个人学习、毕设,允许商业使用,但禁止二次开源。
使用时务必遵守以下补充条款。
- 不得将本软件应用于危害国家安全、荣誉和利益的行为,不能以任何形式用于非法为目的的行为。
- 在延伸的代码中(修改现有源代码衍生的代码中)需要带有原来代码中的协议、版权声明和其他原作者 规定需要包含的说明(请尊重原作者的著作权,不要删除或修改文件中的Copyright和@author信息) 更不要,全局替换源代码中的 Dante Cloud、Herodotus 或 码匠君 等字样,否则你将违反本协议条款承担责任。
- 您若套用本软件的一些代码或功能参考,请保留源文件中的版权和作者,需要在您的软件介绍明显位置 说明出处,举例:本软件基于 Dante Cloud 微服务架构 或 Dante Engine,并附带链接:https://www.herodotus.vip
- 任何基于本软件而产生的一切法律纠纷和责任,均与作者无关。
- 如果你对本软件有改进,希望可以贡献给我们,双向奔赴互相成就才是王道。
- 本项目已申请软件著作权,请尊重开源。
因频繁出现修改包名、删除作者版权信息、二次开源的行为,为保护作者权益,Dante Engine 子项目需登记申请,等审批后开放源码,【查看详情或登记】
Dante Cloud 已通过由第三方进行的软件出厂安全测试以及等保测试。详情参见:安全测试说明
dante-cloud
├── configurations -- 配置文件脚本和统一Docker build上下文目录
├── dependencies -- 工程Maven顶级依赖,统一控制版本和依赖
├── module -- 依赖组件半成品拼装工程(可以再此建立业务代码模块,以模块的形式实现代码的共享以及架构的切换)
├ ├── dante-module-common -- Module 相关模块公共辅助代码模块
├ └── dante-monomer-autoconfigure -- 单体版自动配置模块
├── packages -- 基础核心Starter
├ ├── authentication-spring-boot-starter -- OAuth2 授权服务器自动配置 Starter(主要用于 UAA 认证服务器以及单体版 Dante Cloud)
├ ├── authorization-servlet-spring-boot-starter -- 阻塞式 OAuth2 资源服务器自动配置 Starter(除了 Monitor 等特殊服务以外,所有服务均需依赖)
├ ├── facility-spring-boot-starter -- 基础设施切换依赖 Starter
├ ├── rpc-client-uaa-spring-boot-starter -- 服务间通信客户端自动配置 Starter(UAA 作为客户端端访问其它服务)
├ └── rpc-server-upms-spring-boot-starter -- 服务间通信服务端自动配置 Starter(UPMS 作为服务端为其它服务提供访问)
├── platform -- 平台核心服务
├ ├── dante-cloud-gateway -- 统一网关服务
├ ├── dante-cloud-message -- 系统消息服务
├ ├── dante-cloud-monitor -- Spring Boot Admin 监控服务
├ ├── dante-cloud-upms -- 统一权限管理系统服务
├ └── dante-cloud-uaa -- 账户管理和统一认证模块
├── services -- 平台业务服务
├ ├── dante-cloud-bpmn-ability -- 工作流服务
├ ├── dante-cloud-bpmn-logic -- 工作流基础代码包
├ ├── dante-cloud-oss-ability -- 对象存储服务
└── └── dante-monomer-application -- Dante Cloud 单体版应用模块
dante-engine
├── dependencies -- 工程 Maven 顶级依赖,统一控制版本和依赖
├── engine-assistant -- 辅助功能模块
├ ├── assistant-access -- 第三方登录接入辅助功能模块
├ └── assistant-captcha -- 验证码辅助功能模块
├── engine-cache -- 缓存功能模块
├ ├── cache-core -- 缓存通用代码模块
├ ├── cache-module-caffeine -- Caffeine 缓存功能封装模块
├ ├── cache-module-jetcache -- JetCache 缓存功能封装模块
├ ├── cache-module-redis -- Redis 缓存功能封装模块
├ └── cache-module-redisson -- Redisson 缓存功能封装模块
├── engine-core -- 基础核心模块
├ ├── core-autoconfigure -- 核心自动配置模块
├ ├── core-definition -- 核心定义模块
├ ├── core-foundation -- 基础通用模块
├ └── core-identity -- 身份认证通用模块
├── engine-data -- 数据访问模块
├ ├── data-core -- 数据访问通用代码模块
├ ├── data-core-jpa -- 以 JPA 作为数据访问层的通用代码模块
├ ├── data-core-mongodb -- 以 MongoDB 作为数据访问层的通用代码模块
├ ├── data-module-hibernate -- Hibernate 扩展模块
├ └── data-module-tenant -- 基于 JPA 的多租户扩展配置模块
├── engine-logic -- 系统内置功能业务逻辑模块
├ ├── logic-module-identity -- 身份认证功能业务逻辑模块
├ ├── logic-module-message -- 系统消息业务逻辑模块
├ └── logic-module-upms -- UPMS 业务逻辑模块
├── engine-message -- 消息模块
├ ├── message-autoconfigure -- 消息自动配置模块
├ ├── message-core -- 消息通用代码模块
├ └── message-module-websocket-servlet -- 基于 Servlet 环境下的 Websocket 功能封装模块
├── engine-oauth2 -- OAuth2 认证模块
├ ├── oauth2-authentication-autoconfigure -- OAuth2 授权服务器基础内容自动配置模块
├ ├── oauth2-authorization-autoconfigure -- OAuth2 资源服务器基础内容自动配置模块
├ ├── oauth2-core -- OAuth2 共性通用代码模块
├ ├── oauth2-module-authentication -- Spring Authorization Server 授权服务器核心功能封装模块
├ ├── oauth2-module-authorization -- Spring Authorization Server 资源服务器核心功能封装模块
├ ├── oauth2-module-extension -- Spring Authorization Server 功能扩展模块
├ └── oauth2-module-persistence-jpa -- 以 JPA 作为 SAS 核心数据访问层代码实现模块
├── engine-rest -- 系统内置功能 REST 接口模块
├ ├── rest-module-servlet-identity -- 身份认证功能 Servlet 环境 REST 接口模块
├ ├── rest-module-servlet-message -- 消息功能 Servlet 环境 REST 接口模块
├ └── rest-module-servlet-upms -- UPMS 功能 Servlet 环境 REST 接口模块
├── engine-starter -- Starters
├ ├── cache-spring-boot-starter -- 缓存自动配置 Starter
├ ├── captcha-spring-boot-starter -- 验证码自动配置 Starter
├ ├── data-mongodb-spring-boot-starter -- MongoDB 数据访问层自动配置 Starter
├ ├── data-rdbms-spring-boot-starter -- 关系型数据库数据访问层自动配置 Starter
├ ├── facility-alibaba-spring-boot-starter -- 面向 Spring Cloud Alibaba 的微服务基础设施适配 Starter
├ ├── facility-gateway-spring-boot-starter -- Alibaba Sentinel 在 Gateway 环境下基础设施适配 Starter
├ ├── facility-kafka-spring-boot-starter -- 基于 Kafka 的消息事件自动配置 Starter
├ ├── facility-tencent-spring-boot-starter -- 面向 Spring Cloud Tencent 的微服务基础设施适配模块 Starter
├ ├── logging-spring-boot-starter -- 日志收集和聚合自动配置 Starter
├ ├── reactive-container-spring-boot-starter -- Reactive 容器基础配置自动配置 Starter
├ ├── servlet-container-spring-boot-starter -- Servlet 容器基础配置自动配置 Starter
├ ├── servlet-message-spring-boot-starter -- Servlet 环境消息模块自动配置 Starter
├ └── webmvc-spring-boot-starter -- WebMvc 类型应用自动配置 Starter
├── engine-web -- Web 模块
├ ├── web-core -- Web 通用代码模块
├ ├── web-module-api -- Rest 接口通用代码模块
├ ├── web-module-service -- 微服务通用代码模块
├ └── web-module-servlet -- Servlet 环境 Web 服务专有基础代码模块
└── readme -- README 相关素材放置目录
本系统版本号,分为四段。
- 第一段和第二段,与 Spring Boot 版本对应,根据采用的 Spring Boot 版本变更。例如,当前采用 Spring Boot 2.4.6 版本,那么就以 2.4.X.X 开头
- 第三段,表示系统功能的变化
- 第四段,表示系统功能维护及优化情况
分支名称 | 对应 Spring 生态版本 | 对应 JDK 版本 | 用途 | 现状 |
---|---|---|---|---|
master | Spring Boot 3.5 和 Spring Cloud 2025.0.X | JDK 17 | 主要发布分支 | 推荐使用代码分支 |
develop | Spring Boot 3.5 和 Spring Cloud 2025.0.X | JDK 17 | Development 分支 | 新功能、ISSUE 均以此分支作为开发,发布后会 PR 至 master 分支 |
3.4.X | Spring Boot 3.4 和 Spring Cloud 2024.0.X | JDK 17 | 历史版本,停止维护 | 基于 Spring Boot 3.4 时代开发的代码分支,稳定可用,不再维护 |
3.2.X-3.3.X | Spring Boot 3.3 和 Spring Cloud 2023.0.X | JDK 17 | 历史版本,停止维护 | 基于 Spring Boot 3.3 时代开发的代码分支,稳定可用,不再维护 |
3.1.X | Spring Boot 3.1 和 Spring Cloud 2022.0.X | JDK 17 | 历史版本,停止维护 | 基于 Spring Boot 3.1 时代开发的代码分支,稳定可用,不再维护 |
2.7.X | Spring Boot 2.7 和 Spring Cloud 2021.0.X | JDK 8 | 历史版本,停止维护 | 基于 Spring Boot 2.7 时代开发的代码分支,稳定可用,不再维护 |
spring-security-oauth2 | Spring Boot 2.6 和 Spring Cloud 2021.0.X | JDK 8 | 历史代码,不再维护 | 基于原 Spring Security OAuth2 实现的微服务,稳定可用,因相关组件均不在维护,所以该版本不再维护 |
尽量不修改 Dante Cloud 以外的项目源码,如 Dante Engine、Dante OSS。如果修改了,请 Pull Requests 上来,否则代码与官方不同步,可能会将对你的日后升级增加难度。
每个版本升级,我们都会附带详细更新日志:https://dante-cloud.dromara.org/others/log/changelog.html 在这里,你可以看到 Dante Cloud 新增哪些新功能和改进。 针对有较大变化、差异的版本,我们都会负载详细的升级指南:https://dante-cloud.dromara.org/guide/get-start/notices.html 在这里,你可以看到 Dante Cloud 不同版本对应升级方法。
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
以下是一些与项目相关的推荐资源或合作伙伴:
名称 | 描述 | 链接 |
---|---|---|
VectoRex | VectoRex 项目的官方文档,包含详细的使用指南和 API 参考。 | 查看文档 |
Warm-Flow | 国产工作流引擎🎉,简洁轻量,jar包快速引入设计器 | 查看文档 |
Skyeye云 | 集成OA、CRM、ERP、MES、PM、行政等为一体智能制造软件。 | 查看文档 |
序号 | 赞助人 | 赞助时间 | 序号 | 赞助人 | 赞助时间 | 序号 | 赞助人 | 赞助时间 |
---|---|---|---|---|---|---|---|---|
1 | ご沉默菋噵 | 2021-10-25 | 2 | 偷土豆的人 | 2021-11-24 | 3 | lorron | 2022-04-04 |
4 | 在云端 | 2022-12-26 | 5 | 西晽 | 2022-12-27 | 6 | p911gt3rs | 2023-01-03 |
7 | jacsty | 2023-01-31 | 8 | hubert_rust | 2023-03-16 | 9 | Zkey Z | 2023-03-18 |
10 | 志国欧巴 | 2023-03-27 | 11 | michael | 2023-04-07 | 12 | 大叔丨小巷 | 2023-04-11 |
13 | sun_left | 2023-04-19 | 14 | time、sand | 2023-07-06 | 15 | 印第安老斑鸠 | 2023-09-09 |
16 | 一阵风 | 2023-12-10 | 17 | Jack | 2024-03-01 | 18 | onehelper | 2024-05-24 |
19 | 宁哥 | 2024-05-29 | 20 | cryptoneedle | 2024-11-01 | 21 | 别吓跑我的鱼 | 2025-01-10 |
22 | 代码裁缝 | 2025-03-01 | 23 | Go ahead | 2025-03-10 | 24 | hoku | 2025-06-18 |
25 | 飞翔 | 2025-07-19 | 26 | 27 |