[一] 更新说明
因 Maven 中央仓库将于 2026年08月11日 开启 发布配额限制措施(当前为普通用户每月限制发布 7 次、内容大小 80 M、文件数量 1000), Maven 中央仓库发布限制详情:【原文地址】
为了降低 Maven 中央仓库新措施对项目的影响,对项目进行了多项重构措施:
- 将 Maven 坐标及包名由原来 Dromara 社区的
org.dromara 变更为 cn.herodotus
- 将工程代码进行重构,对可以合并的模块进行了合并,对不必要的或者使用率较低模块,特别是 Starter 类型模块,进行了删减。
由于 Dante Cloud 模块较多,虽然做了大量的努力,但始终无法在保持模块合理性的前提下,满足 Maven 中央文件数量的限制(向中央仓库发布一个 jar 是按照 24 个文件计算,包含:signatures, checksums, source jars, javadocs)
为此,将会降低项目向 Maven 中央仓库的发布频率和次数,仅对重要的版本更新向中央仓库推送发布。所以,后续在使用本项目时,大多数情形下需要用户自己编译 Dante Engine 工程代码。
当前 Maven 中央仓库的限制规则并不完全确定,可能会存在调整,Dante Cloud 会结合变化情况,适时调整发布策略。您也可以点个 Star 持续关注更新!
[二] 更新日志
- 主要更新
- [升级] Spring Boot Admin 版本升级至 4.1.1
- [升级] Spring AI 版本升级至 2.0.0
- [变更] Dante Engine 组件库坐标变更为 cn.herodotus.dante,以规避 Maven 中央库新的发布限制规则
- [变更] Dante Cloud 坐标变更为 cn.herodotus.dantecloud,以规避 Maven 中央库新的发布限制规则
- [变更] ThingsBrain 坐标变更为 cn.herodotus.thingsbrain,以规避 Maven 中央库新的发布限制规则
- [重构] 改进各类 Spring Integration 消息相关配置,解决 Mqtt 消息会转发至 errorChannel 问题
- [重构] MqttMessage 实体支持添加自定义 Header
- [重构] 重构数据上报相关逻辑代码,简化参数传递和优化数据处理逻辑
- 其它更新
- [重构] cache 相关子模块合并为一个模块
- [重构] persistence 相关自动配置模块合并为一个模块
- [重构] nosql 相关模块迁移至 ThingsBrain 工程
- [重构] 删除 captcha-spring-boot-starter 模块,改为使用 @EnableHerodotusCaptcha 方式开启,以规避 Maven 中央仓库发布限制
- [重构] 删除 MongoDB 相关使用频率较低的模块,以规避 Maven 中央仓库发布限制
- [重构] 删除使用场景较少的 facility-original-spring-boot-starter 模块,以规避 Maven 中央仓库发布限制
- [重构] 删除使用场景较少的 facility-gateway-spring-boot-starter 模块,以规避 Maven 中央仓库发布限制
- [重构] 合并 message-mqtt-spring-boot-starter 模块,以规避 Maven 中央仓库发布限制
- [重构] facility 相关模块迁移至 dante-cloud 工程下,以规避 Maven 中央仓库发布限制
- [重构] 合并 facility-kafka-spring-boot-starter,以规避 Maven 中央仓库发布限制
- [修复] 修复 persistence autoconfigure 模块自动配置类类路径错误
- [修复] 修复新版本 vite-plugin-dts 生成 types 路径变化引起类型引用错误
- [修复] 修复设备动态注册传输自定义 clientId 参数不生效问题
- [修复] 修复设备属性和事件上报 Influxdb 存储表面生成错误
- [修复] 删除重复定义的 topic 数据库初始化脚本数据
- [修复] 修复设备发送一条数据,平台会多次接收重复消息问题
- [修复] 修复 Mqtt 消息获取类型错误,导致消息进入 erroChannel 问题
- [修复] 修复 Emqx 接收消息类型转换错误抛错问题
- [修复] 修复 Mqtt 客户端动态注册参数传递错误问题
- [修复] 修复权限元数据变更后不会触发权限数据更新问题
- [修复] 修复 OSS 服务配置未更新引起接口权限未扫描问题
- [优化] ThingsBrain 主题分类实体新增主题用途字段,以便更好地区分系统不同场景的主题权限
- [优化] MqttMessageSendingEvent 新增非实体类型参数构造函数,以提升调用的便捷性。
- [优化] 优化补充 Emqx 默认权限数据库初始化脚本
- [升级] actions/setup-java 版本升级至 5.4.0
- [升级] actions/checkout 版本升级至 7.0.0
- [变更] kafka 变更为使用 kafka native 镜像,提升下载和运行效率
- 依赖更新
- [重构] cache 相关子模块合并为一个模块
- [重构] persistence 相关自动配置模块合并为一个模块
- [重构] nosql 相关模块迁移至 ThingsBrain 工程
- [重构] 删除 captcha-spring-boot-starter 模块,改为使用 @EnableHerodotusCaptcha 方式开启,以规避 Maven 中央仓库发布限制
- [重构] 删除 MongoDB 相关使用频率较低的模块,以规避 Maven 中央仓库发布限制
- [重构] 删除使用场景较少的 facility-original-spring-boot-starter 模块,以规避 Maven 中央仓库发布限制
- [重构] 删除使用场景较少的 facility-gateway-spring-boot-starter 模块,以规避 Maven 中央仓库发布限制
- [重构] 合并 message-mqtt-spring-boot-starter 模块,以规避 Maven 中央仓库发布限制
- [重构] facility 相关模块迁移至 dante-cloud 工程下,以规避 Maven 中央仓库发布限制
- [重构] 合并 facility-kafka-spring-boot-starter,以规避 Maven 中央仓库发布限制
- [修复] 修复 persistence autoconfigure 模块自动配置类类路径错误
- [修复] 修复新版本 vite-plugin-dts 生成 types 路径变化引起类型引用错误
- [修复] 修复设备动态注册传输自定义 clientId 参数不生效问题
- [修复] 修复设备属性和事件上报 Influxdb 存储表面生成错误
- [修复] 删除重复定义的 topic 数据库初始化脚本数据
- [修复] 修复设备发送一条数据,平台会多次接收重复消息问题
- [修复] 修复 Mqtt 消息获取类型错误,导致消息进入 erroChannel 问题
- [修复] 修复 Emqx 接收消息类型转换错误抛错问题
- [修复] 修复 Mqtt 客户端动态注册参数传递错误问题
- [修复] 修复权限元数据变更后不会触发权限数据更新问题
- [修复] 修复 OSS 服务配置未更新引起接口权限未扫描问题
- [优化] ThingsBrain 主题分类实体新增主题用途字段,以便更好地区分系统不同场景的主题权限
- [优化] MqttMessageSendingEvent 新增非实体类型参数构造函数,以提升调用的便捷性。
- [优化] 优化补充 Emqx 默认权限数据库初始化脚本
- [升级] actions/setup-java 版本升级至 5.4.0
- [升级] actions/checkout 版本升级至 7.0.0
- [变更] kafka 变更为使用 kafka native 镜像,提升下载和运行效率
[三] 项目简介
Dante Cloud 国内首个支持阻塞式和响应式服务并行的、开箱即用的企业级云原生微服务基座。是采用领域驱动模型(DDD)设计思想,以「高质量代码、低安全漏洞」为核心,基于 Spring 生态全域开源技术,高度模块化和组件化设计,支持智能电视、IoT等物联网设备认证,满足国家三级等保要求,支持接口国密数字信封加解密等一系列安全体系的一站式多租户微服务解决方案。独创的可以“一套代码实现微服务和单体两种架构灵活切换”的企业级应用系统。
1. 项目理念
Dante Cloud 一直秉承着“简洁、高效、包容、务实”的理念,使用微服务领域及周边相关的各类新兴技术或主流技术进行建设,不断地深耕细作、去粗取精、用心打造。目标是构建一款代码质量高、维护投入低、安全防护强的微服务基座,可以帮助用户快速跨越架构技术选型、技术研究探索、基础架构搭建阶段,直接聚焦业务开发。极大地降低传统项目中因安全漏洞、技术负债、低质代码等潜在隐患所产生的高维护投入。期望像项目名字寓意一样,构建一套可以在在行业变革的时期承上启下,助力企业信息化建设和数字化转型的产品。
Dante Cloud 核心关注点是:「高质量的系统代码」、「合理的系统架构」、「低耦合的模块划分」、「高安全性系统实现」、「灵活的功能扩展能力」,「优质的微服务方案」。不会像其它一些系统一样,追求 业务功能 的 丰富 性。堆叠大量无法做到真正通用的功能,反倒会成为负担和干扰,不如由用户自己按照需求灵活设计和实现。
2. 架构设计
Dante Cloud 优秀的模块化能力,为系统提供了高度灵活的配置能力、功能的“可插拔”能力 以及不同需求场景的适配能力。正因为优秀的模块化体系,使得 Dante Cloud 不仅是一套完整的微服务架构,还是一套高质量的 「单体模块化」 系统。这里的微服务架构和单体架构并不是分离的两套代码,也不是分离的两个项目。而是完全融合的一整套代码,使用时可以根据需要选择是以微服务模式或者单体模式运行,配合灵活的模块能力,实现系统的多样化定制和功能的管控。
这是 Dante Cloud 微服务最大的特色之一:“一套代码、两种架构”。可以帮助企业在项目早期以单体架构快速建设项目、方便开发人员在本地进行开发以及新技术研究。在项目后期随着用户规模增大以及并发需求提升时,可以快速无缝迁移至微服务架构。
3. 适用用户
微服务技术并不是落伍了,而是进入了成熟期,它的适用场景和边界被更清晰地定义了。微服务不再是一个“必须要有”的选项,而是一个“权衡之后”的选择。同时,Dante Cloud 也并未使用任何复杂难懂或难以上手掌握的技术,项目中所涉及核心关键组件中,其中 「近 80% 均为 Spring 生态原生组件」。技术实现均为各组件标准用法的组合与应用,编码风格和代码设计一直也在极尽努力尽量与 Spring 生态的标准规范用法保持一致,只不过经过大量的版本迭代和重构之后逐渐形成了一定的封装与抽象。
本项目适用的用户如下:
- 「传统项目用户」:可以先体验的单体版,先从“前后端分离”以及“多端适配”开始,尝试不同于传统内嵌页面的开发模式。
- 「数字转型用户」:如果您正在考虑进行数字化转型,可以直接选择使用微服务版本,不用再为“基础组件碎片化,需花大量时间整合、踩坑版本兼容”等问题而苦恼。
- 「复杂项目用户」:如果您的业务复杂度上升到一定阶段,可以直接选择使用微服务版本,直接聚焦于业务开发,节省大量前期搭建基础设施、解决通用技术问题的时间。
- 「初创团队用户」:可以先使用单体版进行开发,只要代码放置规范、模块划分合理,后期可以根据需要无缝迁移至微服务架构
- 「技术尝鲜用户」:本项目并不拘泥局限于常规成熟的技术内容,目标是探索新型技术并用其来为业务的创新服务。喜欢技术尝鲜的用户可以尝鲜使用。
- 「学习提升用户」:本项目代码实现优雅和领域划分清晰,编码风格和模块实现尽最大可能与 Spring 生态规范保持一致,是深入学习 Spring 生态组件和提升技能的优秀案例
如果本项目对你有所帮助,支持一下本项目点个 "Star"!
1. Dante Cloud 主工程
2. Dante Engine 核心组件库
3. UI 前端工程(旧版)
4. UI 前端工程(新版)
5. ThingsBrain 基于 Dante Cloud 的物联网平台(加速开发中...)