nacos-plugin
nacos-plugin copied to clipboard
V3.0.1
更新datasource插件到nacos v3.0.1,除dm外,其余datasource需要测试
升级Nacos数据源插件至v3.0.1并优化多数据库适配
变更概述
新功能
- 新增
config_info_gray、config_tags_relation、his_config_info等核心配置表的多数据库适配结构,支持Dameng/Kingbase/Oracle/PostgreSQL等数据库的SQL语法差异 - 新增
ConfigMigrateMapper接口及其各数据库实现类,完善配置迁移功能模块
重构
- 将
BaseConfigInfoAggrMapper重命名为BaseConfigInfoGrayMapper,并统一各数据库实现类的命名规范 - 重构
ConfigInfoMapper等基础类的数据库方言处理逻辑,通过DatabaseDialectManager统一管理方言特性
数据库变更
- 更新所有支持数据库的schema定义,新增
config_info_gray表结构并添加唯一约束UK_CONFIG_INFO_GRAY - 优化
GROUP_CAPACITY和TENANT_CAPACITY表的索引策略,添加自增主键和分页查询优化字段 - 调整
config_info表的租户字段默认值逻辑,使用NamespaceUtil统一处理命名空间
依赖更新
- 升级Nacos核心依赖版本至
3.0.1 - 移除
nacos-aes-encryption-plugin的冗余依赖声明
安全增强
- 新增
TrustedDamengFunctionEnum、TrustedKingbaseFunctionEnum等枚举类,限制SQL函数注入风险 - 统一各数据库方言对
NOW()等内置函数的规范化处理
配置调整
- 更新
META-INF/services映射配置,新增ConfigMigrateMapper等接口实现类的注册 - 调整数据库方言初始化逻辑,通过枚举类集中管理可信函数列表
变更文件
| 文件路径 | 变更说明 |
|---|---|
| nacos-datasource-plugin-ext/nacos-dm-datasource-plugin-ext/src/main/java/com/alibaba/nacos/plugin/datasource/impl/dm/ConfigInfoGrayMapperByDaMeng.java | 新增支持Dameng数据库的灰度配置映射实现 |
| nacos-datasource-plugin-ext/nacos-dm-datasource-plugin-ext/src/main/resources/schema/nacos-dm.sql | 创建config_info_gray等核心表结构,添加唯一约束和索引优化 |
| nacos-datasource-plugin-ext/nacos-datasource-plugin-ext-base/src/main/java/com/alibaba/nacos/plugin/datasource/impl/base/BaseConfigInfoMapper.java | 优化租户字段处理逻辑,使用NamespaceUtil统一默认值 |
| nacos-datasource-plugin-ext/nacos-opengauss-datasource-plugin-ext/src/main/java/com/alibaba/nacos/plugin/datasource/impl/opengauss/OpenGaussConfigMigrateMapper.java | 新增OpenGauss数据库的配置迁移映射实现 |
| nacos-datasource-plugin-ext/nacos-oracle-datasource-plugin-ext/src/main/resources/schema/nacos-oracle.sql | 重构Oracle表结构定义,添加序列和触发器实现自增主键 |
| pom.xml | 升级Nacos核心依赖版本至v3.0.1并移除冗余加密插件依赖 |
时序图
sequenceDiagram
participant BCM as BaseConfigMigrateMapper
participant DMD as DaMengDatabaseDialect
participant KBD as KingbaseDatabaseDialect
participant OG as OpenGaussDatabaseDialect
BCM->>DMD: getFunction("NOW()")
BCM->>KBD: getPrimaryKeyGeneratedKeys()
BCM->>OG: getLimitPageSqlWithOffset()
DMD-->>BCM: 返回Dameng专用函数SYSDATE()
KBD-->>BCM: 返回自增主键策略
OG-->>BCM: 返回分页查询优化后的SQL语句
💡 小贴士
与 lingma-agents 交流的方式
📜 直接回复评论 直接回复本条评论,lingma-agents 将自动处理您的请求。例如:
-
在当前代码中添加详细的注释说明。
-
请详细介绍一下你说的 LRU 改造方案,并使用伪代码加以说明。
📜 在代码行处标记 在文件的特定位置创建评论并 @lingma-agents。例如:
-
@lingma-agents 分析这个方法的性能瓶颈并提供优化建议。
-
@lingma-agents 对这个方法生成优化代码。
📜 在讨论中提问 在任何讨论中 @lingma-agents 来获取帮助。例如:
-
@lingma-agents 请总结上述讨论并提出解决方案。
-
@lingma-agents 请根据讨论内容生成优化代码。
@shilyaziw OpenGauss 已经由原作者适配完毕了, 麻烦同步一下新代码, 解决一下冲突。