Appearance
信创培训
简介
本次培训主要以“成片开发方案技术审查”为例,介绍如何开发、部署在信创环境下运行的程序
技术栈/软件
- 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兼容模式
差异点:
| 字段类型 | oracle | kingbase |
|---|---|---|
| 大字符 | CLOB | text |
| 字符 | VARCHAR2 | varchar |
| 字符 | NVARCHAR2 | varchar |
| 数字 | NUMBER | numeric |
- VARCHAR:可变长字符串类型
- VARCHAR2:变长字符串的首选和标准类型
- NVARCHAR2:国家字符集(仅oracle)
| 特性 | VARCHAR | VARCHAR2 (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 项目到国产数据库:可以基本不用担心,人大金仓等数据库对
VARCHAR2和NVARCHAR2有很好的兼容性,字段类型可以直接沿用。 - 在 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是命令行操作