Skip to content

信创培训

简介

本次培训主要以“成片开发方案技术审查”为例,介绍如何开发、部署在信创环境下运行的程序

技术栈/软件

  • Java 8
  • Vue3
  • Kingbase V8
  • Redis
  • Nginx
  • FinalShell
  • VNC Viewer

使用对比

字段类型Window麒麟Linux
连接方式1、win+r
2、mstsc
VNC Viewer
传输文件1、ctrl+c
2、ctrl+v
SSH工具
编辑1、txt
2、vscode
1、txt
2、vim

vim 最重要的几个命令

  • Esc:从插入模式返回正常模式。
  • i:进入插入模式,在光标前插入文本
  • :w:保存文件
  • :q:退出 Vim
  • :wq 保存并退出

开发

后端

程序基本无差异(99%),主要差异集中在文件解析、文件路径、外部服务调用、监控

  • 文件解析:部分压缩格式会不支持,不支持window命令的解压缩方式(linux的未接入)
  • 文件路径:window路径与linux路径不一致,启动项application.yml的路径修改修改,全局配置中的路径也需要修改
  • 外部服务调用:不支持命令方式调用exe工具
  • 监控:框架已适配,

前端

无差异

数据库

数据库使用和倒库

人大金仓基于 postgres 开发,所以基本和 pg 一致,和 oracle 基本一致,只有少量字段类型需要修改,sql 无差异

建议设置为大小写不敏感、utf-8 字符格式、还可以选择oracle兼容模式

差异点:

字段类型oraclekingbase
大字符CLOBtext
字符VARCHAR2varchar
字符NVARCHAR2varchar
数字NUMBERnumeric
  • VARCHAR:可变长字符串类型
  • VARCHAR2:变长字符串的首选和标准类型
  • NVARCHAR2:国家字符集(仅oracle)
特性VARCHARVARCHAR2 (Oracle)NVARCHAR2 (Oracle)VARCHAR (其他数据库, 如人大金仓)
所属数据库Oracle (已过时)Oracle 特有Oracle 特有MySQL, PostgreSQL, 人大金仓, SQL Server 等
字符编码使用数据库默认字符集(如 ZHS16GBK, AL32UTF8)同 VARCHAR始终使用 Unicode(AL16UTF16)编码通常使用数据库默认字符集(如 UTF8)
存储方式变长字符串,按字节或字符计算行为可变:可按字节或按字符存储始终按字符计算长度变长字符串,通常按字符计算长度
最大长度最大 4000 字节最大 4000 字节 (标准模式) / 32767 字节 (扩展模式)最大 4000 字符长度限制远高于 Oracle(如人大金仓可达 10MB
主要用途已废弃,不推荐使用存储非 Unicode 文本(如纯英文或特定本地编码文本)存储需要国际化的 Unicode 文本(如多语言混合)通用变长字符串类型,用于存储文本数据。
兼容性与未来为向前兼容保留,未来版本可能移除Oracle 推荐使用的非 Unicode 类型Oracle 推荐使用的 Unicode 类型是 SQL 标准类型,被所有其他主流数据库广泛使用
最终建议
  • 在新项目(非Oracle)中开发:直接使用标准的 VARCHAR 类型。
  • 迁移 Oracle 项目到国产数据库:可以基本不用担心,人大金仓等数据库对 VARCHAR2NVARCHAR2 有很好的兼容性,字段类型可以直接沿用。
  • 在 Oracle 中开发:根据存储内容选择 VARCHAR2(普通文本) 或 NVARCHAR2(多语言国际化文本)。

部署

服务器准备

部署服务的前期准备,数据磁盘的挂载,文件服务器的搭建

服务器数据磁盘挂载

SMB文件服务器

程序部署

主要就是Jar、Redis、Nginx的部署

Jar部署

Redis部署

Nginx部署

漏洞处理

信创环境的漏洞修复

其它问题

1、问:打包发布部署在信创、window服务器上,我们开发过程中,除了访问数据库从oracle变成人大金仓,还有哪些调整的?

答:主要差异有

  • 数据库:人大金仓基于pg,且可选择oracle模式,实际开发与pg/oracle基本无差异,部分字段类型需要调整
  • 文件路径:这里涉及到application.yml的路径修改,全局配置中的文件服务路径修改;
  • 文件解压:部分压缩包格式支持存在,部分使用exe解压的方式不可使用,即文件压缩、解压需要根据系统测试;
  • 其它window工具及方式需要找到替代方式:window命令;window的定时任务(要改成linux定时器)等

2、问:本地(windows系统)如果要模拟信创环境搭建,可以用vmvare安装Linux系统去模拟吗?或者有没有其他方式更好模拟搭建的

答:本地无需模拟信创环境,程序开发、运行基本无差异

3、问:部署时候和window有什么差异

答:主要差异有

  • 服务注册:window时,一般使用winsw注册服务,linux时使用systemd注册服务(详见各服务注册)
  • 服务启停:window是控制面板可视化操作;linux是命令行操作