信创环境适配

信创环境适配

此次适配的服务器为麒麟v10,数据库使用人大金仓,中间件为tonweb7


文章目录

  • 信创环境适配
  • 前言
  • 一、环境准备
  • 二、组件适配Kingbase
    • Nacos
    • Activiti7
    • XxlJob
  • 三、Tongweb7替换Tomcat
    • Java代码调整
    • Vue项目打包部署
    • Web容器下部署多个服务
  • 总结


前言

此次适配针对某银行做poc,根据客户提出的应用需求来验证建议的方案是否可行,为客户确定合适的服务产品、系统;完成对指定服务器环境以及中间件、数据库的兼容

针对Kingbase替换主要适配的组件有nacos、activit7、xxl-job


一、环境准备

Kylin_v10安装:
https://blog.csdn.net/qq_40220309/article/details/114135304

Kingbase安装:
Linux:https://blog.csdn.net/yang_z_1/article/details/123252832
Windows:https://blog.csdn.net/qq_25094817/article/details/122807581

Jdk1.8安装:
https://blog.csdn.net/weixin_56921038/article/details/123726655

Tongweb7安装:
https://blog.csdn.net/peacezhi/article/details/121415348

二、组件适配Kingbase

Nacos

下文中提到的source文件夹是我用来存放已经下载好的nacos、activit7源码,根据需求前往GitHub下载指定版本

  1. 打开source文件夹下nacos项目(此版本为2.0.1如有其它版本需求,下载指定版本源码)
  2. 修改nacos源码引入驱动依赖(若使用source目录下提供nacos只需进行2.3的操作)
  3. 引入驱动依赖(根目录pom.xml)
    kingbase8.6.0的jar包需自行下载,maven仓库没有
<kingbase-connector-java.version>8.6.0</kingbase-connector-java.version>
<dependency><groupId>com.kingbase</groupId><artifactId>kingbase8</artifactId><version>${kingbase-connector-java.version}</version>
</dependency>
  1. 修改nacos-config得pom.xml文件
<dependency><groupId>com.kingbase</groupId><artifactId>kingbase8</artifactId>
</dependency>
  1. 修改nacos-console模块的application.properties
#人大金仓
db.num=1
db.jdbcDriverName=com.kingbase8.Driver
db.url.0=jdbc:kingbase8://192.168.10.130:54321/yu_all?currentSchema=nacos_config_2.0.1
db.user=system
db.password=nkqlhhc
  1. nacos-config模块添加属性
/*** 数据库驱动* 增加对人大金仓数据库的支持*/
private String jdbcDriverName;
public String getJdbcDriverName() {return jdbcDriverName;
}
public void setJdbcDriverName(String jdbcDriverName) {this.jdbcDriverName = jdbcDriverName;
}

为HikariDataSource对象指定驱动名称,调用setDriverClassName方法。改动见下图:
HikariDataSource

  1. 改动完成进入源代码目录,执行构建
mvn -Prelease-nacos -Dmaven.test.skip=true -Dpmd.skip=true -Dcheckstyle.skip=true  clean install -U
# 如果遇到异常使用一下命令
mvn -Prelease-nacos -Dmaven.test.skip=true -Dpmd.skip=true -Dcheckstyle.skip=true  -Drat.numUnapprovedLicenses=100  clean install -U
  1. 查看构建包
    构建成功后,进入源代码目录distribution/target/nacos-server-2.0.1 下的 nacos 文件夹 就是最终的输出物
    nacos-server-2.0.1-SNAPSHOT.tar.gz 是linux环境的压缩包
    nacos-server-2.0.1-SNAPSHOT.zip 是windows环境的压缩包
  2. 启动nacos测试

Activiti7

Activiti7默认不支持kingbase,不过想使用kingbase做数据源需修改activiti源码生成新的activiti-engin.jar包替换原路径下(org\activiti\activiti-engine\7.0.0.SR1)中activiti-engin.jar;7.0.0.SR1版本的相关jar包已调整好在source文件里,替换即可使用;

  1. 下载activiti7源码 https://github.com/Activiti/Activiti
  2. 修改org.activiti.engine.impl.cfg.ProcessEngineConfigurationImpl,新增成员变量kingbase如下图所示
    ProcessEngineConfigurationImpl
  3. 调整getDefaultDatabaseTypeMappings()方法如下图所示:
    getDefaultDatabaseTypeMappings()
  4. 修改org.activiti.engine.impl.db.DbSqlSessionFactory
    调整initBulkInsertEnabledMap(String databaseType)方法如下如所示:
    initBulkInsertEnabledMap
  5. 修改org.activiti.engine.impl.db.DbSqlSessionFactory
    调整initBulkInsertEnabledMap(String databaseType)方法如下如所示:
    initBulkInsertEnabledMap
  6. 修改org.activiti.engine.impl.AbstractQuery addOrder(String column, String sortOrder, NullHandlingOnOrder nullHandlingOnOrder)调整如下:
    addOrder
  7. 增加kingbase数据库脚本(略,建议mysql生成表迁移到kingbase)
  8. package生成jar包(使用jdk11)

XxlJob

对XxlJob的兼容不完善,需在后续遇到问题再进行补充

  1. 新增kingbase数据源pom.mxl文件中增加kingbase依赖
<dependency><groupId>com.kingbase</groupId><artifactId>kingbase8</artifactId><version>8.6.0</version>
</dependency>
  1. 调整不兼容Kingbase代码com.xxl.job.admin.controller. JobGroupControlle
    JobGroupControlle
  2. 调整不兼容Kingbase代码com.xxl.job.admin.dao.XxlJobRegistryDao
    XxlJobRegistryDao
  3. 调整不兼容Kingbase代码XxlJobRegistryDao
    1
    在这里插入图片描述

三、Tongweb7替换Tomcat

Java代码调整

注意:GateWay服务底层启动用的不是tomcat是netty需特殊处理

  1. 排除Spring默认的Tomcat
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><!-- 去除内嵌tomcat --><exclusions><exclusion><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-tomcat</artifactId></exclusion></exclusions>
</dependency>
  1. 新增build指定打war包
<build><finalName>${project.artifactId}</finalName><plugins><plugin><artifactId>maven-war-plugin</artifactId><version>2.6</version><configuration><!--如果想在没有web.xml文件的情况下构建WAR,请设置为false--><failOnMissingWebXml>false</failOnMissingWebXml></configuration></plugin></plugins>
</build>
  1. 重写启动类
public class SysApplication extends SpringBootServletInitializer {@Overrideprotected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {return builder.sources(SysApplication.class);}public static void main(String[] args) {SpringApplication.run(SysApplication.class, args);}
}
  1. 新增nacos配置(若无会导致tonweb上的服务无法注册到nacos)
@Configuration
public class NacosConfig implements ApplicationRunner {@Autowired(required = false)private NacosAutoServiceRegistration registration;@Value("${server.port}")Integer port;@Overridepublic void run(ApplicationArguments args) throws Exception {if (registration != null && prot != null) {Integer tomcatPort = port;try{tomcatPort = new Integer(getTomcatPort());} catch(Exceprion e) {e.printStackTrace();}	registration.setPort(tomcatPort);registration.start();}}/** 获取外部tomcat端口 */public String getTomcatPort() throws Exception {MBeanServer beanServer = ManagementFactory.getPlatformMBeanServer();Set<ObjectName> objectNames = beanServer.queryNames(new ObjectName("*:type=Connector,*"), Query.match(Query.attr("protocol"), Query.value("HTTP/1.1")));return objectNames.iterator.next().getKeyProperty("port");}
}

Vue项目打包部署

  1. 运行npm run build打包
  2. 进入dist文件夹,运行jar -cvf dist.war *

Web容器下部署多个服务

如果想通过在一个TongWeb下部署多个服务,有两种方案

  1. 采用多通道结合多虚拟主机实现多服务部署
  2. 增加多个域(具体操作参考部署手册)

总结

本次适配或有许多不足,待后续补充

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/12015.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

期货行业首批信创试点单位转型实践|信创专题

实践亮点 期货行业首批试点单位&#xff08;金融行业第二期&#xff09;全部选择 SmartX 作为单一超融合供应商进行基础架构信创转型&#xff0c;并通过验收。可灵活选择海光或鲲鹏服务器部署&#xff0c;涵盖办公系统、一般业务系统、灾备&#xff08;CTP 主席异地灾备&#…

信创大数据平台容灾项目

一、项目方案 齐鲁银行自2017年开始建设大数据平台&#xff0c;为全行提供的各类数据服务与全行业务深度融合&#xff0c;大数据服务已成为推动业务发展不可或缺的环节。大数据平台为全行各类业务提供标准化风险数据服务&#xff0c;支撑全行从零售到消贷、从公司到普惠、从线上…

信创国产化解决方案

第一部分 什么是信创 一、什么是信创&#xff1f; 先从概念上来看&#xff0c;信创全称信息技术应用创新产业&#xff0c;和国产化很像&#xff0c;但信创的目的是围绕国产CPU&#xff0c;形成完整的IT生态。究其原因&#xff0c;是国内在IT方面&#xff0c;特别是底层技术都没…

信创操作系统

一、银河麒麟v10操作系统 银河麒麟v10是华为自主研发的服务器处理器。它采用了ARMv8架构技术&#xff0c;是一种64位的处理器架构&#xff0c;能够提供更高的计算能力和性能。银河麒麟v10采用了自主研发的处理器核心——昇腾&#xff08;Ascend&#xff09;核心&#xff0c;能够…

信创云底座主流技术路线与厂商评估

策略&#xff1a;IT 基础架构如何信创转型 1.虚拟化与存储等核心组件转型是重点 经过国家政策机构、行业侧和产业侧近年来的持续努力&#xff0c;信创转型在金融等关键行业已经取得初步成效&#xff0c;在机具、办公等场景的部分应用已可全信创技术栈单轨运行。而下一步&…

信创-大数据平台CPU架构支持

一、CDH和HDP、CDP CDP数据中心类似于CDH和HDP,直接安装在硬件服务器上,目前支持市面上主流的X86服务器,包括国内海光服务器&#xff0c; CDH不支持ARM 以上两种大数据平台都仅支持x86架构&#xff0c;早在几年期RedHat联手cloudera公司发表声明将推出64位ARM版&#xff0c;据…

信创产业现状、分析与预测

1、概述 信创&#xff0c;即信息技术应用创新产业&#xff0c;是数据安全、网络安全的基础&#xff0c;也是新基建的重要组成部分。长期以来&#xff0c;信息技术的关键技术和基础应用不掌握在国人自己手里&#xff0c;&#xff08;为符合审核要求&#xff0c;隐去XXX事件若干…

超融合兼顾医疗信创及 IT 云化转型的可行性分析

近期&#xff0c;中央出台财政贴息专项再贷款等“组合拳”政策&#xff0c;重点支持医疗、教育等关键行业的设备更新改造&#xff0c;同时央行将优先审核和支持对国产自主品牌的采购。这一系列动作表明&#xff0c;医疗行业的国产化替代&#xff08;即信息技术应用创新&#xf…

自下而上,行业信创从能力替换到技术创新高速发展 | 爱分析报告

报告编委 张扬 爱分析联合创始人&首席分析师 孙文瑞 爱分析高级分析师 王命航 爱分析分析师 外部专家&#xff08;按姓氏拼音排序&#xff09; 李银松 拓尔思 产品总监 徐海涛 鼎茂科技 CoE 金融行业解决方案专家 姚国全 远光软件 副总裁 特别鸣谢&#xff…

信创是什么?

信创是什么&#xff1f; 信创&#xff0c;即信息技术应用创新产业&#xff0c;其是数据安全、网络安全的基础&#xff0c;也是新基建的重要组成部分 。 信创是把之前的一些行业放到了一起&#xff0c;重新起了一个名字叫&#xff1a;信息技术应用创新产业&#xff0c;简称“信创…

阿里版ChatGPT:通义千问突然上线

我是卢松松&#xff0c;点点上面的头像&#xff0c;欢迎关注我哦&#xff01; 4月7日&#xff0c;阿里版的ChatGPT&#xff1a;通义千问突然上线了&#xff0c;由达摩院开发&#xff0c;目前开放预约&#xff0c;但仅面向企业。官网显示通义千问是一个专门响应人类指令的大模型…

教育不得不改变,ChatGPT可以提供个性化学习

近日&#xff0c;OpenAI的首席执行官Sam Altman接受ABC新闻首席商业、技术和经济记者Rebecca Jarvis的独家采访。Sam Altman提到了对错误信息的担忧、探讨了人工智能与人类工作的关系、ChatGPT与教育的关系等。 ChatGPT今年1月面世后&#xff0c;在短短几个月内就达到了1亿月活…

地理信息系统专业学生咨询chatGPT如何看待和学习WebGIS开发

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言正文1.为地理信息系统专业学生推荐就业方向2.对WebGIS的看法3.webgis开发和web开发的差异4.如何从零开始学习WebGIS开发5.WebGIS开发的薪资水平6.在如今互联网企…

聊聊ChatGPT 团队有哪些大佬!3 清华、1 北大、1 华科

作者&#xff1a;Mekin68 来源&#xff1a;转载自公众号君工小参 ChatGPT 团队规模不足百人&#xff08;共87人&#xff09;。分析发现&#xff0c;其显著特征是“年纪很轻”、“背景豪华”、“聚焦技术”、“积累深厚”、“崇尚创业”和“华人抢眼”。 该团队平均年龄为 32 岁…

上海亚商投顾:沪指缩量调整跌超1% 新能源车产业链掀涨停潮

上海亚商投顾前言&#xff1a;无惧大盘涨跌&#xff0c;解密龙虎榜资金&#xff0c;跟踪一线游资和机构资金动向&#xff0c;识别短期热点和强势个股。 市场情绪 大小指数今日再度分化&#xff0c;沪指低开低走&#xff0c;午后一度跌超1.5%&#xff0c;创业板指则拉升涨超1%&a…

ChatGPT 介绍篇:ChatGPT 的前世今生

今天是我们的第一篇 ChatGPT 的前世今生 本篇文章会从 GPT-1 一直讲到 GPT-4 &#xff0c;看一看现在火爆的ChatGPT 背后&#xff0c;到底经历了些什么。 我们要想知道 ChatGPT 为什么爆火&#xff0c;这就要我们静下心来&#xff0c;稍微理解一下 NLP 领域的一些历史故事。 …

ChatGPT的工作原理,这篇文章说清楚了

来源&#xff1a;图灵人工智能 作者&#xff1a;史蒂芬沃尔弗拉姆&#xff08;Stephen Wolfram&#xff09;英、美籍 计算机科学家&#xff0c; 物理学家。他是 Mathematica 的首席设计师&#xff0c;《一种新科学》一书的作者。 ChatGPT 能够自动生成一些读起来表面上甚至像人…

用ChatGPT发的第一篇顶会。。

小时候特别羡慕大雄&#xff0c;因为他有可以帮他写作业的机器猫小叮当。 熬夜读论文&#xff0c;却无法得出一个好的idea&#xff0c;深夜薅头发苦恼的时候&#xff0c;就会想如果有一个机器人&#xff0c;给出一串指令就能马上生成一篇质量上佳的论文&#xff0c;就好了。 现…

Claude AI和ChatGPT的区别

Claude AI和ChatGPT都是基于人工智能技术的智能对话系统&#xff0c;但它们的设计和应用场景有一些不同。 Claude AI是一个基于语音识别、自然语言处理和机器学习等技术的智能客服平台。它能够像人一样进行对话&#xff0c;并根据用户提供的问题提供相应的答案&#xff0c;从而…

当ChatGP遇上数据库,看完我不淡定了......

12月1日&#xff0c;OpenAI发布了针对对话场景优化的语言大模型ChatGPT。 各路大神纷纷加入了“调戏”ChatGPT的行列 本以为会和普通的聊天机器人差不多 没想到看完这些&#xff0c; 程序员们瞬间不淡定了 那就先从简单的问题开始~ 推荐一款关系型数据库 推荐一款时空数据…