国产化环境下开发流程

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
性能测试 PTS,5000VUM额度
简介: 人大金仓数据库、中科方德操作系统

前言


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


然而,对于熟悉了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

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
7月前
|
敏捷开发 弹性计算 中间件
平台即服务(PaaS):简化开发与部署的新篇章
【6月更文挑战第21天】PaaS简化了应用开发与部署,提供资源池化、自动化管理及丰富的开发工具,助力企业降低成本、提高效率和系统稳定性。它支持敏捷开发、加速产品上市,改善用户体验,并推动创新,成为现代软件开发的关键。
|
8月前
|
vr&ar 开发者
随着技术的不断进步,开发者们对于工具和环境的追求也在不断升级
随着技术的不断进步,开发者们对于工具和环境的追求也在不断升级
56 2
|
8月前
|
Java 测试技术 网络安全
一个软件完整的开发流程介绍
一个软件完整的开发流程介绍
132 0
|
2月前
|
敏捷开发 存储 监控
6款主流办公协同软件大比拼:哪款工具最适合企业协作?
在现代企业中,团队协作是高效运作的核心。本文分析了协同工作的常见难点,如沟通不畅、任务跟踪困难和工具孤立,并推荐了6款主流办公协同软件:板栗看板、Trello、Notion、Monday.com、Asana和Slack。每款软件都有其独特优势,适合不同类型和规模的团队。通过功能、易用性和应用场景的评测,帮助企业找到最适合的工具。
125 4
6款主流办公协同软件大比拼:哪款工具最适合企业协作?
|
8月前
|
人工智能 数据可视化 搜索推荐
加速软件创新的重要工具-低代码开发
低代码开发在数字化时代助力企业高效开发高质量软件,市场规模预计2021年达176亿美元。该平台通过可视化环境和预构建组件降低开发成本,提高效率,确保软件质量。案例显示,零售、金融、物流等行业已受益于低代码开发的快速部署和灵活性。未来,低代码开发将更智能、自动化,融合AI、云计算等技术,开辟新机遇。
59 5
|
存储 搜索推荐 数据可视化
企业级软件定制开发的特点有哪些?
数字化时代背景下,软件作为企业运营和管理的核心,已经越来越受到企业的重视。而随着企业业务的不断扩张和复杂化,通用软件已经难以满足企业的特定需求。企业级软件定制开发成为解决这一问题的关键所在。那么企业级软件定制开发的特点究竟有哪些?
|
8月前
|
存储 人工智能 物联网
硬件标准化之道:Linux社区与硬件厂商的协同创新
在Linux的广阔世界中🌌,与各式各样的硬件设备进行互动和协作是一项不断进行的挑战🔧。硬件厂商和Linux社区的紧密合作,通过制定一系列标准和协议📜,使得从键盘🎹和鼠标🖱到复杂的网络连接设备🌐,所有硬件设备都能以一种统一的方式与Linux内核交互。这篇文章将探讨硬件厂商和Linux社区如何联手标准化硬件,以及他们为实现这一目标所做的努力🛠️。
|
8月前
|
监控 数据可视化 前端开发
智慧工地云平台源码 支持二次开发、支持源码交付
智慧工地利用移动互联、物联网、云计算、大数据等新一代信息技术,彻底改变传统施工现场各参建方的交互方式、工作方式和管理模式,为建设集团、施工企业、监理单位、设计单位、政府监管部门等提供一揽子工地现场管理信息化解决方案。 通过人员管理、车辆管理、视频监控、施工质量、设备管理、环境监测、能耗监测七大维度提供面向工程管理人员的现场综合指挥管理平台,实现对劳务人员、大型机械、施工车辆等对象信息、行为、成果的智慧管理。 •支持多端展示(PC端、手机端、平板端); •数字孪生可视化大屏,一张图掌握项目整体情况; •使用轻量化模型,高效部署三维可视化管理,与一线生产过程相融合,集成数据后台,统一前端入口
96 1
|
人工智能 数据可视化 搜索推荐
低代码开发:加速软件创新的重要工具
在当今高度数字化的时代,企业竞争愈发激烈,如何快速高效地开发高质量的软件应用已成为企业成功的关键因素。在这种背景下,低代码开发作为一种新兴的软件开发方法,正逐渐受到企业的追捧。低代码开发平台通过提供可视化编程环境和预构建组件,使得开发人员能够以更高效、更便捷的方式进行应用开发。本文将详细探讨低代码开发的概念、市场背景、优势、应用案例以及未来发展趋势。
86 1
|
IDE NoSQL Cloud Native
研发与环境的那些事儿
研发与环境的那些事儿
研发与环境的那些事儿

热门文章

最新文章