国产化环境下开发流程

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: 人大金仓数据库、中科方德操作系统

前言


随着我国计算机技术的发展,国产服务器、数据库产品也逐渐趋于成熟,作为政府行业,采用国内自主研发的服务器和数据库意义重大。北京市委已经率先采用国产化系统,相信不久的未来,政府行业将逐渐普及国产化系统和数据库。


然而,对于熟悉了Linux、MySQL或者Oracle的开发者或者运维来说,可能并不能很快的上手国产环境。而且关于国产系统和数据库的生态圈还不完善,有一些问题网上也查不到。本片文章就国内比较成熟的操作系统和数据库展开说明,以快速了解和上手国产化开发,并减少大家后续在国产化开发中的困难。下面会介绍中科方德操作系统人大金仓数据库


正文


中科方德操作系统

1.png

界面大概如上图,国产化环境开发的难点,一方面就是在于这个操作系统


整体命令行操作类似CentOS。为了安全起见,该系统做了很多方面的限制:


  • 由于禁止接入外网,所以安装部署只能通过RPM包或者Docker镜像的方式进行安装
  • 该系统需要通过光盘刻录的方式,进行上传RPM或者Docker镜像,为了信息安全,也就是只能往机器上拷贝文件而不能把文件拷贝下来
  • 不能通过命令后直接安装RPM软件,必须要通过类似软件管理图形化界面的方式进行安装,安装前必须填写软件的签名信息(比如联系人电话等信息、软件安装包本身的信息)
  • 不能直接在机器上执行直接拷贝进来的外来可执行文件。例如通过光盘拷贝的shell脚本、以及免安装的软件、以及通过编译安装的软件等都没有权限执行
  • 安装软件(例如数据库)等过程会缺少一些依赖库(C语言、C++的)。这些库文件一般也需要自行下载RPM包进行光盘刻录
  • Docker必须使用厂商提供的安装软件,制作镜像推荐使用CentOS8,否者启动容器会没有权限


中科方德最佳实践


对于环境的部署,直接通过RPM或者Docker镜像的方式


对于 MySQL、Redis、Nginx、Zookeeper、ElasticSearch 等软件、官网有提供对应的RPM包,推荐直接通过软件管理器RPM的方式进行安装


找不到RPM包,推荐使用Docker部署


Docker部署注意事项


需要找一台CentOS8系统的服务器,用来制作镜像


制作好的镜像,通过 docker save命令保存,并通过光盘刻录到中科方德机器,再通过load命令安装镜像

2.png

以上就是中科方德操作系统需要注意的点,剩下的就是要求使用者熟练掌握Linux


人大金仓数据库


人大金仓(KingbaseES)是北京人大金仓信息技术股份有限公司自主研制开发的关系型数据库。下面重点介绍一下人大金仓的常用的运维和开发技巧


1. 安装人大金仓


1.1. 人大金仓安装必须通过普通用户安装,这里创建了一个kingbase用户


useradd kingbase
passwd kingbase


1.2. 使用kingbase用户上传安装包,并进行解压


tar -zxvf KingbaseES_V008R003C002B0140_Lin64_install.tar.gz


1.3 执行setup.sh进行安装

3.png

1.4 选择安装集


默认是完全安装,即server和client全部安装


1.5 选择授权文件


安装过程必须指定厂商提供的授权文件,当然也可以自行到官网下载一个月试用版


1.6 选择安装文件夹


这里注意推荐使用默认文件夹,因为后面厂商提供的压测工具默认指定的是默认文件夹


1.7 大小写敏感


一般选择大小写不敏感,因为我们已有系统采用的数据大多是大小写不敏感的,根据自己目前的数据库进行选择


安装后的目录如下

4.png

进入Server文件夹,执行root.sh脚本即可启动数据库


2. 人大金仓操作


2.1. 启动与停止


systemctl start kingbase8d
systemctl stop kingbase8d


2.2. 登录


进入Server/bin目录下

5.png

执行如下命令登录


  • 其中SYSTEM为用户名
  • 密码为123456
  • TEST为数据库名


./ksql -USYSTEM-W123456-p54321 TEST


TEST为默认数据库,用于管理其他数据库


例如想查看当前机器kingbase总连接数,可以用以上命令进入TEST,执行


select connections(); //查看连接数
select * from SYS_STAT_ACTIVITY; //查看连接客户端


3. 开发方式


3.1 可以在安装目录下的Jdbc文件夹找到驱动jar包

6.png

3.2 然后在工程中集成jar包,测试连接


importjava.sql.Connection;
importjava.sql.DatabaseMetaData;
importjava.sql.DriverManager;
importjava.sql.SQLException;
publicclassTestConnection {
publicstaticvoidmain(String[] args) throwsSQLException, ClassNotFoundException {
Connectioncon;
Class.forName("com.kingbase8.Driver");
Stringurl="jdbc:kingbase8://127.0.0.1:54321/MYDB";
con=DriverManager.getConnection("jdbc:kingbase8://127.0.0.1:54321/TEST","SYSTEM","123456");
System.out.println(con.getClientInfo());
DatabaseMetaDatametaData=con.getMetaData();
StringdriverVersion=metaData.getDriverVersion();
System.out.println(driverVersion);
    }
}


3.3 图形化客户端使用


windows推荐使用官方工具,可以直接到官网下载安装,直接可以使用。操作跟Navicat差不多,官方工具支持很多功能如下:


  • SQL语句到导入导出
  • 数据迁移,将MySQL数据库迁移到人大金仓(需要使用人大金仓数据转换工具,同时连接MySQL,进行数据迁移操作)
  • 建表操作,推荐使用官方图形化工具


mac推荐使用DataGrip,需要手动集成驱动

7.png

3.4 SQL适配


已有MySQL系统,迁移到人大金仓SQL语句需要一些改造


  • 主要是函数适配
  • 剔除不支持的特殊符号
  • group by字段要跟查找字段保持一致


4. 人大金仓性能压测


4.1 定制化的sysbench使用


为了检测数据库性能,我们在中科方德机器上部署人大金仓和MySQL,并使用Sysbench进行数据库对比基准测试。


该sysbench由厂商定制,使用方式如下


//配置sysbench路径
exportPATH=`pwd`:$PATH//配置数据库lib路径
exportLD_LIBRARY_PATH=/home/v8.3-build/kliao/v8.2_with_history/postgres/release/lib
//生成数据
sysbench oltp_common --kes-host=192.168.4.80 --kes-port=5433--kes-connect_timeout=10--kes-user=SYSTEM --kes-password=123--kes-db=TEST --table-size=1000 prepare
//执行read_only
sysbench oltp_read_only  --kes-host=192.168.4.80 --kes-port=5433--kes-connect_timeout=10--kes-user=SYSTEM --kes-password=123--kes-db=TEST --table-size=1000--time=10--threads=8 run
//执行oltp_write_only
sysbench oltp_write_only  --kes-host=192.168.4.80 --kes-port=5433--kes-connect_timeout=10--kes-user=SYSTEM --kes-password=123--kes-db=TEST --table-size=1000--time=10--threads=8 run


4.2 压测指标与结果分析


我们在16核心 64G的中科方德机器上进行压测。使用sysbench分别生成5000w数据,分别对这两个库表进行只读压测。线程数设置为10、50、60、70、80、90、100、150、200、300、500、600、700、800等,每个并发压测三次,每次并发测试的时长为180S,同一并发压测结果取平均值进行分析


可以看到如下结果


  • 线程数在100以内,两者各项指标相当
  • 线程数大于100,且继续增加线程的过程中,相比MySQL,人大金仓TPS、QPS均有明显下降


8.png9.png10.png11.png

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
1月前
|
中间件 编译器 调度
嵌入式软件架构基础设施设计方法
嵌入式软件架构基础设施设计方法
72 0
|
13天前
|
存储 安全 区块链
链游模式系统开发搭建功能丨链游系统开发项目方案(技术成熟)
NFT链游借助区块链实现去中心化,确保游戏公平参与。然而,当前GameFi项目存在只重视初期Token发行、盲盒和NFT销售的问题,需要从GameFi 2.0过渡到GameFi 3.0,强调开发者责任和DAO精神。智能合约是区块链上的数据库操作脚本,负责数据存储和修改。区块链特性包括去中心化、时序数据、集体维护、可编程性和安全可信。DAPP的底层区块链平台类似手机操作系统,支撑各种DAPP发展。
|
4月前
|
SQL Java BI
有什么好用的企业自动化管理开源软件
有什么好用的企业自动化管理开源软件
|
4月前
|
人工智能 运维 搜索推荐
软件定制开发与标准化产品的比较及选择
随着信息技术的不断发展,软件已经成为企业运营中不可或缺的一部分。而在选择软件时,企业用户通常面临两个选择:软件定制开发和标准化产品。软件定制开发和标准化产品各有其优缺点,以下是对两者的比较和选择:
|
5月前
|
人工智能 架构师 Cloud Native
架构愿景: 构建良好软件的关键
架构愿景: 构建良好软件的关键
56 0
|
7月前
|
人工智能 数据可视化 搜索推荐
低代码开发:加速软件创新的重要工具
在当今高度数字化的时代,企业竞争愈发激烈,如何快速高效地开发高质量的软件应用已成为企业成功的关键因素。在这种背景下,低代码开发作为一种新兴的软件开发方法,正逐渐受到企业的追捧。低代码开发平台通过提供可视化编程环境和预构建组件,使得开发人员能够以更高效、更便捷的方式进行应用开发。本文将详细探讨低代码开发的概念、市场背景、优势、应用案例以及未来发展趋势。
|
IDE NoSQL Cloud Native
研发与环境的那些事儿
研发与环境的那些事儿
研发与环境的那些事儿
技术开发、产品开发和平台开发的区别
技术开发、产品开发和平台开发的区别
695 0
|
运维 数据可视化 程序员
低代码软件交付的五大优势
从项目角度出发低代码比传统软件交付有五大优势。具体包括:POC优势、SOW优势、交付模式优势、可复用优势和交付周期优势。
低代码软件交付的五大优势
|
开发框架 数据可视化 BI
低代码快速开发平台将是未来软件开发的主流模式
如果软件开发一直处于手工阶段,大家都从零开始开发,岂不是浪费?低代码开发的主要想法,就是将软件的技术门槛降下来,同时将大家重复的工作消除掉,提高开发效率。低代码快速开发平台是未来软件开发的主流模式,美国有数据预测,到2021年75%的软件应用都将在低代码开发平台中完成,到2025免这个数据将会变成90%。
低代码快速开发平台将是未来软件开发的主流模式

热门文章

最新文章