nacos适配人大金仓的数据库

打印 上一主题 下一主题

主题 545|帖子 545|积分 1635

媒介

在微服务架构中,服务发现和配置管理是关键组件。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中添加依赖

  1. <dependency>
  2.     <groupId>com.alibaba.nacos</groupId>
  3.     <artifactId>nacos-kingbase-datasource-plugin-ext</artifactId>
  4.     <version>1.0.0-SNAPSHOT</version>
  5. </dependency>
复制代码
在nacos的nacos-datasource-plugin module中的META-INF/services/com.alibaba.nacos.plugin.datasource.mapper.Mapper 添加如下内容

后续即可通过SPI 加载到这些mapper文件
  1. com.alibaba.nacos.plugin.datasource.impl.kingbase.ConfigInfoAggrMapperByKingbase
  2. com.alibaba.nacos.plugin.datasource.impl.kingbase.ConfigInfoBetaMapperByKingbase
  3. com.alibaba.nacos.plugin.datasource.impl.kingbase.ConfigInfoMapperByKingbase
  4. com.alibaba.nacos.plugin.datasource.impl.kingbase.ConfigInfoTagMapperByKingbase
  5. com.alibaba.nacos.plugin.datasource.impl.kingbase.ConfigTagsRelationMapperByKingbase
  6. com.alibaba.nacos.plugin.datasource.impl.kingbase.HistoryConfigInfoMapperByKingbase
  7. com.alibaba.nacos.plugin.datasource.impl.kingbase.TenantInfoMapperByKingbase
  8. com.alibaba.nacos.plugin.datasource.impl.kingbase.TenantCapacityMapperByKingbase
  9. com.alibaba.nacos.plugin.datasource.impl.kingbase.GroupCapacityMapperByKingbase
复制代码
修改数据库毗连 以及 数据库相关配置

在nacos-console module 的application.properties配置文件中,修改数据库配置:
  1. nacos.plugin.datasource.log.enabled=true
  2. spring.sql.init.platform=kingbase
  3. #spring.datasource.platform=kingbase
  4. ### Count of DB:
  5. db.num=1
  6. ### Connect URL of DB:
  7. db.url.0=jdbc:kingbase8://ip:port/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
  8. db.user.0=替换为自己的账号
  9. db.password.0=替换为自己的密码
  10. # 配置人大金仓数据库 缺省配置为mysql驱动
  11. db.pool.config.driverClassName=com.kingbase8.Driver
复制代码
在 nacos-console module中 修改主启动类Nacos 增长启动为单体模式 方便我们当地调试

  1. @SpringBootApplication
  2. @ComponentScan(basePackages = "com.alibaba.nacos", excludeFilters = {
  3.         @Filter(type = FilterType.CUSTOM, classes = {NacosTypeExcludeFilter.class}),
  4.         @Filter(type = FilterType.CUSTOM, classes = {TypeExcludeFilter.class}),
  5.         @Filter(type = FilterType.CUSTOM, classes = {AutoConfigurationExcludeFilter.class})})
  6. @ServletComponentScan
  7. public class Nacos {
  8.    
  9.     public static void main(String[] args) {
  10.         //新增配置  启动为单体模式
  11.         System.setProperty(Constants.STANDALONE_MODE_PROPERTY_NAME, "true");
  12.         SpringApplication.run(Nacos.class, args);
  13.     }
  14. }
复制代码
启动Nacos

启动Nacos服务,检查是否可以或许成功毗连到人大金仓数据库,并正常工作。
测试验证

通过Nacos控制台进行服务注册、配置管理等操纵,验证适配是否成功。
适配过程中的注意事项

驱动兼容性

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

适配Nacos与人大金仓数据库,不仅可以提升国产化程度,还能包管体系的稳固性和性能。通过上述步调,你可以顺利完成适配工作,并在现实项目中应用。
附录

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

good day!!!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

李优秀

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表