当前位置: 首页 > news >正文

nacos适配人大金仓的数据库

前言

在微服务架构中,服务发现和配置管理是关键组件。Nacos作为一个动态服务发现和配置管理平台,支持多种数据库作为其后端存储。本文将探讨如何在Nacos中适配人大金仓数据库,以及在此过程中的最佳实践。

Nacos简介

Nacos(Naming and Configuration Service)是一个易于使用的平台,用于服务发现、配置管理和服务管理。它支持与Spring Cloud和Kubernetes等微服务生态系统的集成。

人大金仓数据库简介

人大金仓数据库(KingbaseES)是一款具有自主知识产权的关系型数据库管理系统,广泛应用于电子政务、金融、电信等领域。

适配的必要性

随着国产化进程的推进,越来越多的企业选择使用国产数据库产品。适配Nacos与人大金仓数据库,可以为企业提供一个稳定、高效的服务发现和配置管理解决方案。

环境准备

确保已安装人大金仓数据库,并且数据库实例运行正常

下载nacos源码

在nacos适配中 需要修改其源码

nacos适配人大金仓数据库介绍

Nacos从2.2.0版本开始,可通过SPI机制注入多数据源实现插件,并在引入对应数据源实现后,便可在Nacos启动时通过读取application.properties配置文件中spring.datasource.platform配置项选择加载对应多数据源插件

Nacos默认提供Derby以及MySQL的实现 如果需要支持人大金仓需要自行实现相关的数据库操作mapper

本人已经对nacos 扩展数据源 进行了人大金仓实现 源码参见: https://github.com/silent-night-no-trace/nacos-plugin 分支为: feature_kingbase_plugin 需要自行下载源码安装到本地

适配步骤

对nacos 扩展数据源 进行人大金仓实现 略

通过介绍中 直接下载源码 选择正确分支 并安装到本地即可
install过程中如果遇到 oracle数据源 模块报错 直接在父 pom中注释掉即可 在这里插入图片描述

将上一步 下载的nacos-plugin 源码中的 kingbase-nacos sql脚本 导入到人大金仓的数据库上执行

在这里插入图片描述

开始源码改造

编译 构建 过程 略

在nacos的nacos-datasource-plugin module中添加依赖

<dependency><groupId>com.alibaba.nacos</groupId><artifactId>nacos-kingbase-datasource-plugin-ext</artifactId><version>1.0.0-SNAPSHOT</version>
</dependency>

在nacos的nacos-datasource-plugin module中的META-INF/services/com.alibaba.nacos.plugin.datasource.mapper.Mapper 添加如下内容

后续即可通过SPI 加载到这些mapper文件

com.alibaba.nacos.plugin.datasource.impl.kingbase.ConfigInfoAggrMapperByKingbase
com.alibaba.nacos.plugin.datasource.impl.kingbase.ConfigInfoBetaMapperByKingbase
com.alibaba.nacos.plugin.datasource.impl.kingbase.ConfigInfoMapperByKingbase
com.alibaba.nacos.plugin.datasource.impl.kingbase.ConfigInfoTagMapperByKingbase
com.alibaba.nacos.plugin.datasource.impl.kingbase.ConfigTagsRelationMapperByKingbase
com.alibaba.nacos.plugin.datasource.impl.kingbase.HistoryConfigInfoMapperByKingbase
com.alibaba.nacos.plugin.datasource.impl.kingbase.TenantInfoMapperByKingbase
com.alibaba.nacos.plugin.datasource.impl.kingbase.TenantCapacityMapperByKingbase
com.alibaba.nacos.plugin.datasource.impl.kingbase.GroupCapacityMapperByKingbase

修改数据库连接 以及 数据库相关配置

在nacos-console module 的application.properties配置文件中,修改数据库配置:

nacos.plugin.datasource.log.enabled=true
spring.sql.init.platform=kingbase
#spring.datasource.platform=kingbase
### Count of DB:
db.num=1### Connect URL of DB:
db.url.0=jdbc:kingbase8://ip:port/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user.0=替换为自己的账号
db.password.0=替换为自己的密码
# 配置人大金仓数据库 缺省配置为mysql驱动
db.pool.config.driverClassName=com.kingbase8.Driver

在 nacos-console module中 修改主启动类Nacos 增加启动为单体模式 方便我们本地调试

@SpringBootApplication
@ComponentScan(basePackages = "com.alibaba.nacos", excludeFilters = {@Filter(type = FilterType.CUSTOM, classes = {NacosTypeExcludeFilter.class}),@Filter(type = FilterType.CUSTOM, classes = {TypeExcludeFilter.class}),@Filter(type = FilterType.CUSTOM, classes = {AutoConfigurationExcludeFilter.class})})
@ServletComponentScan
public class Nacos {public static void main(String[] args) {//新增配置  启动为单体模式System.setProperty(Constants.STANDALONE_MODE_PROPERTY_NAME, "true");SpringApplication.run(Nacos.class, args);}
}

启动Nacos

启动Nacos服务,检查是否能够成功连接到人大金仓数据库,并正常工作。

测试验证

通过Nacos控制台进行服务注册、配置管理等操作,验证适配是否成功。

适配过程中的注意事项

驱动兼容性

确保使用的JDBC驱动与Nacos和人大金仓数据库版本兼容。

总结

适配Nacos与人大金仓数据库,不仅可以提升国产化水平,还能保证系统的稳定性和性能。通过上述步骤,你可以顺利完成适配工作,并在实际项目中应用。

附录

Nacos官方文档:Nacos Documentation
人大金仓数据库官方文档:Kingbase Documentation


good day!!!


http://www.mrgr.cn/news/32922.html

相关文章:

  • 【BetterBench博士】2024年中国研究生数学建模竞赛 E题:高速公路应急车道紧急启用模型 问题分析
  • 【我的 PWN 学习手札】House Of Karui —— tcache key 绕过手法
  • python多继承 - 子类指定父类
  • 基于SpringBoot+Vue的考研百科网站系统
  • 线程池实现的是什么接口
  • 如何安装部署kafka
  • 色彩管理中的Gamma值的理解
  • [Redis面试高频] - zset的底层数据结构
  • 【HTTP】构造HTTP请求和状态码
  • 基于stm32物联网身体健康检测系统
  • 一篇进阶Python深入理解函数之高阶函数与函数式编程
  • 我们如何通过两个关键测试原则,进行自动化 Kubernetes 配置和Secret测试
  • [全网最全]2024华为杯研赛CDEF题成品参考论文+每小问解题代码+可视化结果!
  • 测试面试题:一个项目从0到1,你需要做哪些工作?工作的重点是什么?
  • 2024华为杯E题:高速公路应急车道紧急启用模型
  • 功能测试干了三年,快要废了。。。
  • Global Attention Decoder for Chinese Spelling Error Correction(ACL2021)
  • 【数据结构初阶】链式二叉树接口实现超详解
  • 使用Renesas R7FA8D1BH (Cortex®-M85)和微信小程序App数据传输
  • 大模型终极指南:零基础到精通,一文搞定!