跳至主要內容

指南

码匠君SASSpring Authorization ServerDante Cloud微服务领域驱动DDDSpring BootSpring CloudSpring SecuritySpring Cloud AlibabaSpring Cloud TencentOAuth2.1NacosSkywalkingSentinelSeata大约 9 分钟

Dante Cloud 微服务架构

Spring Authorization Server 1.2.2Spring Boot 3.2.3Spring Cloud 2023.0.0Spring Cloud Alibaba 2022.0.0.0Spring Cloud Tencent 1.13.1-2022.0.4Nacos 2.3.1Version 3.2.3.3Dante Engine 3.2.3.3Dante OSS 3.2.3.3Java 17License Apache 2.0Total Visits码匠君Github starGithub forkGitee starGitee fork

Dante Cloud 是一款企业级微服务架构和服务能力开发平台,是全面拥抱 Spring Authorization Server 的、基于 OAuth2.1 协议的微服务架构。基于 Spring Authorization Server 1.2.2、Spring Boot 3.2.3、Spring Cloud 2023.0.0、Spring Cloud Tencent 1.13.1-2022.0.4、Spring Cloud Alibaba 2022.0.0.0、Nacos 2.3.1 等主流技术栈开发的多租户系统,遵循 SpringBoot 编程思想,高度模块化和可配置化。具备服务发现、配置、熔断、限流、降级、监控、多级缓存、分布式事务、工作流等功能

定位

  • 构建成熟的、完善的、全面的,基于 OAuth2.1 的、前后端分离的微服务架构解决方案。
  • 面向企业级应用和互联网应用设计开发,既兼顾传统项目的微服务化,又满足互联网应用开发建设、快速迭代的使用需求。
  • 平台架构使用微服务领域及周边相关的各类新兴技术或主流技术进行建设,是帮助快速跨越架构技术选型、研究探索阶段的利器。
  • 代码简洁规范、结构合理清晰,是新技术开发应用的典型的、综合性案例,助力开发人员对新兴技术的学习和掌握。

背景

作者本人过往工作,主要专注企业信息化项目建设,经手过大大小小、各式各样、规模各异的项目粗略估算也有 180+。这些项目经历,足以让我体会 IT 行业的千滋百味。回顾过往,发现其中很多工作,特别是很多会占用技术人员大量时间和精力的工作,大多数情况下并不是像技术攻关、新技术研究、业务架构设计、并发性能调优等有挑战性的工作,而往往都是因细节考虑欠缺、代码质量不高、在用技术老旧、欠缺优化迭代、系统难于维护、项目管理不善等问题产生的需要长期投入的、低效、低意义工作。

这也是为什么做 Dante Cloud 的初衷:一方面是以 Dante Cloud 为载体,潜移默化地将过往项目建设的经验教训融入其中,尽可能地帮助使用者规避或者减少无效工作,提升工作效率和质量,有跟多的时间做更有意义的事情;另一方面不断地融合和使用各类新兴技术,帮助使用者尽可能多的了解、学习和运用新技术,让技术不再成为禁锢变为进步和提升的基石。

这也是为什么 Dante Cloud 与其它项目不同:Dante Cloud 并不关注常规应用功能的堆叠与丰富化,因为作者认为纯开发工作仅占整个项目建设投入的 20%,减少开发投入、提升开发效率未必就能减少整个项目建设周期剩余 80%工作投入。Dante Cloud 的远景目标是可以帮助使用者缩短整个项目的建设周期和减少无意义的工作投入,而不仅仅只是在开发效率方面的提升。

Dante Cloud 一直秉承“简洁、高效、包容、务实”的理念,不会采取任何额外的手段来获取更多的 Star,绝对真实就像其产品一样。如果你认可和喜欢 Dante Cloud,请不要吝啬你的赞美,项目右上角点颗小星星。

Dante Cloud 大事记

  • 2021.05.15 Dante Cloud 正式开源
  • 2021.08.04 完成软件著作权登记
  • 2022.02.10 对 Dante Cloud 来了一次“庖丁解牛”,拆解出 Dante Engine 组件库出,为从 Spring Security OAuth2 迁移至 Spring Authorization Server 做前序铺垫。
  • 2022.05.20 首个基于 Spring Authorization Server 的、全新架构的 Dante Cloud 版本发布
  • 2022.07.01 基于 Vue3、Vite2、Pinia、Quasar2、Typescript、Hooks 等最新技术栈全新构建前端工程正式发布
  • 2022.07.30 正式加入 Dromara 开源社区,项目名称由 Eurynome Cloud 更名为 Dante Cloud
  • 2022.08.15 Dante Cloud Star 数突破 1K。
  • 2022.08.18 陆续迎来 Dante Cloud 首批 Committer (狂练胸肌李大懒、jokeway、未来、Looo、我问这瓜保熟吗、Ymind、tao), 感谢有你,作者从此不再孤单。
  • 2022.10.08 基于 pnpm 的 monorepo 模式新版前端上线
  • 2022.12.20 发布首个适配 Spring Boot 3.0.0 的正式版。
  • 2023.04.12 Dante Cloud Star 数突破 1.5K。
  • 2023.05.25 全新适配 Spring Boot 3.1.0,开源两周年纪念版本发布
  • 2023.12.07 首个适配 Spring Boot 3.2.3 和 Spring Cloud 2023.0.0 的版本发布
  • 2024.01.01 Dante Cloud Star 数突破 2K

总体架构

架构图
架构图

功能演示

说明

以下内容是本平台比较有特点的功能演示,根据实际情况正在逐步添加。

[1]基于 URL 的方法级动态权限配置

架构图
架构图

[2]Minio 控制台使用 Dante Cloud 登录认证

[3]服务调用链监控

架构图
架构图

[4]灵活定制验证码

  • 滑块拼图验证码
滑块拼图验证码
滑块拼图验证码
  • 文字点选验证码
文字点选验证码
文字点选验证码

版本号说明

本系统版本号,分为四段。

  • 第一段和第二段,与 Spring Boot 版本对应,根据采用的 Spring Boot 版本变更。例如,当前采用 Spring Boot 2.4.6 版本,那么就以 2.4.X.X 开头
  • 第三段,表示系统功能的变化
  • 第四段,表示系统功能维护及优化情况

安全测试

Dante Cloud 已通过由第三方进行的软件出厂安全测试。详情参见:安全测试

授权协议

本项目基于 Apache License Version 2.0 开源协议,可用于商业项目,但必须遵守以下补充条款。

  • 不得将本软件应用于危害国家安全、荣誉和利益的行为,不能以任何形式用于非法为目的的行为。
  • 在延伸的代码中(修改现有源代码衍生的代码中)需要带有原来代码中的协议、版权声明和其他原作者 规定需要包含的说明(请尊重原作者的著作权,不要删除或修改文件中的 Copyright 和@author 信息) 更不要,全局替换源代码中的 Dante Cloud、Herodotus 或 码匠君 等字样,否则你将违反本协议条款承担责任。
  • 您若套用本软件的一些代码或功能参考,请保留源文件中的版权和作者,需要在您的软件介绍明显位置 说明出处,举例:本软件基于 Dante Cloud 微服务架构,并附带链接:https://www.herodotus.cnopen in new window
  • 任何基于本软件而产生的一切法律纠纷和责任,均于作者无关。
  • 如果你对本软件有改进,希望可以贡献给我们,双向奔赴互相成就才是王道。
  • 本项目已申请软件著作权,请尊重开源。

免责声明

  • 本软件会不断更新,以便及时为用户提供新功能和修正软件中的 BUG。同时软件作者保证本软件在升级过程中也不含有任何旨在破坏用户计算机数据的恶意代码。
  • 本软件经过详细的测试,由于用户计算机软硬件环境的差异性和复杂性,本软件所提供的各项功能并不能保证在任何情况下都能正常执行或达到用户所期望的结果。如果出现不兼容及软件错误的情况,用户可登录软件代码托管平台将情况报告作者,获得技术支持。如果无法解决问题,用户可以删除本软件。
  • 使用本软件产品风险有用户自行承担,在适用法律允许的最大范围内,对因使用或不能使用本软件所产生的损害及风险,包括但不限于直接或间接的个人损害、商业盈利的丧失、贸易中断、商业信息的丢失或任何其它经济损失,作者不承担任何责任。
  • 您承诺秉着合法、合理的原则使用 Dante Cloud 开源微服务架构及其核心组件,不利用 Dante Cloud 开源微服务架构及其核心组件进行任何违法、侵害他人合法利益等恶意的行为,亦不将 Dante Cloud 开源微服务架构及其核心组件运用于任何违反我国法律法规的 Web 平台
  • 如果用户自行下载运行本软件,即表明用户信任软件作者,自愿选择安装本软件,并接受本协议所有条款。如果用户不接受本协议,请立即删除。

鸣谢

  • 感谢 JetBrains 提供的免费开源 License:
JetBrains Logo (Main) logo
JetBrains Logo (Main) logo