kedao中间件-集群及发布
一、介绍
本文介绍在kedao中间件中如何搭建集群、负载均衡、服务发布。
中间件官网:https://www.yckj-kedao.com
系列文章:
《kedao中间件-安装篇》
《kedao中间件-C++服务篇》
《kedao中间件-Java服务篇》
《kedao中间件-Vue开发篇》
《kedao中间件-并发测试篇》
《kedao中间件-Linux系统安装篇》
《kedao中间件-数据库安装篇》
二、环境准备
服务器配置 按模式4:开发->测试->基线->生产 进行搭建,服务器IP如下,http端口统一是 80,https端口是 443:
开发环境:
开发服务器:192.168.43.30
测试服务器:192.168.43.132
代码基线服务器:192.168.43.133
生产环境:
集群主服务器:192.168.43.134
集群从服务器1:192.168.43.135
集群从服务器2:192.168.43.136
关于网络的说明:
开发环境的服务器在同一网络;
生产环境可以在另外一个网络;
集群服务器IP分内网,外网IP与开发环境通讯,内网IP为集群服务器之间通讯;如果没有分内外网,内外网IP相同。
注意:
1、开发服务器、测试服务器、代码基线服务器的服务器安装一样,这3台服务器都需具备代码编译的能力。
2、集群主服务器、集群从服务器1、集群从服务器2,只需安装与系统运行相关的工具即可。
3、kedao中间件的安装路径统一为 /opt/kedao。
4、在操作服务器配置之前,一定要在各台服务器上安装好kedao中间件,并启动服务,网络畅通。
5、无论是采用哪种开发语言的系统,操作都是一样的。
三、配置服务器
1、设置发布权限
关键点:在设置【服务器配置】之前,需要确保在测试服务器、代码基线服务器、生产服务器上设置了 config.ini 的发布权限,否则会保存失败。
在 /opt/kedao/bin 目录下,执行 vi config.ini 进行编辑:
kedao@kedao:$ cd /opt/kedao/bin
kedao@kedao:/opt/kedao/bin$ vi config.ini
修改 users=*,增加 lym_test=*,如:
[publish_authorization]
kedao=*
kmyckj=*
lym_test=*
users=*
说明:
users=* :表示允许所有用户都可以往该服务器发布程序;
lym_test=* :表示允许用户 lym_test 所有的系统都可以往该服务器发布程序;
kedao=*,kmyckj=*,lym_test=* :表示 kedao,kmyckj,lym_test 这3个用户的系统都可以往该服务器发布程序;
users=* 和 lym_test=* 要同时设置,只设置其中一个无效。
2、设置开发服务器
以 prj_java_test 系统为例(注:C++系统也是相同的操作)
在 kedao creator 中打开【我的系统】-【prj_java_test】-【服务器配置】功能,选择模式4,然后再界面中输入IP,端口:
开发服务器:192.168.43.30 端口:80
测试服务器:192.168.43.132 端口:80
代码基线服务器:192.168.43.133 端口:80
保存成功后,功能界面如下图:
在保存时,如果出现 404 的错误,确保网络通畅,各服务器的kedao中间件服务已经启动,然后重试保存。
3、设置生产集群服务器
在【服务器配置】功能中,点击【录入】按钮,在弹出界面中分别录入生产环境的IP和端口:
集群主服务器:192.168.43.134 端口:80
集群从服务器1:192.168.43.135 端口:80
集群从服务器2:192.168.43.136 端口:80
在外网IP的情况下,内外网的IP录入相同的值,设置如图:
在录入完生产服务器IP地址后,需要点击【同步集群配置信息】按钮将配置同步到各服务器中,操作如图:
四、配置负载均衡
在【负载均衡】功能中,在待配置的服务器列表中全部✓选中服务器的IP,然后点击 > 按钮将服务器IP移动到右侧的负载均衡配置信息列表中,如图:
将服务器IP移动到负载均衡配置信息列表后,设置服务器的负载权重(默认是1),然后分别点击【保存】->【同步】->【生效】3个按钮,将配置信息同步到集群服务器中,并使负载均衡生效。如图:
关于权重的设置:按照各服务器CPU的核心数(超线程数)的比值,进行化简,得到最小公约数的比值,以此来填写各服务器的权重。
至此,负载均衡配置完成,下面进行程序发布,然后验证负载均衡。
五、重启主服务器的 kedao 服务
在 192.168.43.134 服务器上执行 sudo systemctl restart kedao 命令重启kedao服务
kedao@kedao-cluster-master:/$ sudo systemctl restart kedao
六、发布服务
1、创建发布工单
在【发布服务】功能中创建发布工单,如图:
往工单中添加发布文件,如图:
注意:
1)第一次发布,除了把项目的源代码文件全部选上外,还要把 bin/lib/用户/系统名称/db_connect.ini一起发布;
2)各环境上的数据库连接不一样,发布后需要对 db_connect.ini 进行修改。同时要进行 odbc 数据源配置(C++系统);
3)目前 Java项目的模板代码,数据库连接的配置是写在资源文件 中的,建议将数据库连接参数写到配置文件中,从配置文件中读取。现在为了演示效果,开发、测试、生产的数据库都是同一个。
点击【发布工单】按钮进行发布,如图:
第一次发布的文件比较多,需要十几秒钟。
2、测试服务
测试服务功能主要用于测试人员填写测试意见及上传测试用例。
打开【测试服务】功能,选择未锁定工单,在操作列中锁定工单,如图:
切换回我的工单,点击【提交测试】按钮,在提交测试结果界面中填写测试意见,上传测试文档,如图:
提交成功后,工单进入【发布生产】环节。
3、发布生产
打开【发布生产】功能,勾选中要发布的工单,点击【提交发布】,默认立即发布,点【确定】按钮确认发布,如图:
提交发布后,工单由后台服务进行编译发布,发布时长需要几分钟。
在【发布生产】的功能界面,可以查看工单的发布状态,如图:
4、查看是否发布成功
进入执行文件目录,如 /opt/kedao/bin/lib/lym_test/prj_java_test/ ,通过 ls 或 ll 命令查看文件:
kedao@kedao-cluster-master:~$ cd /opt/kedao/bin/lib/lym_test/prj_java_test/
kedao@kedao-cluster-master:/opt/kedao/bin/lib/lym_test/prj_java_test$ ll
total 2104
drwxr-xr-x 2 kedao kedao 4096 May 5 14:37 ./
drwxr-xr-x 3 root root 4096 May 5 14:37 ../
-rw-r--r-- 1 root root 173080 May 5 14:37 prj_java_test-1.0.jar
-rw-r--r-- 1 root root 1968219 May 5 14:37 prj_java_test-1.0-jar-with-dependencies.jar
5、查询工单
打开【综合功能】-【工单查询】功能,可以查询发布工单的信息,如图:
七、发布前端
前端的发布,不能通过上述发布流程进行发布。
通过ftp工具直接将文件拷贝到目标服务器。
1、修改服务IP
以《kedao中间件-Vue开发篇》中创建的 my_vue2_prj 前端工程为例。
编译之前,需要将生产环境变量文件 .env.production 中的 VUE_APP_BASE_API’ 改为服务主服务器的IP地址,如 VUE_APP_BASE_API = ‘http://192.168.43.134’,在VSCode中修改和打包编译,如图:
在项目的根路径下执行 npm run build:prod 命令进行编译。
2、发送打包文件
把前端项目工程打包后的dist 文件夹下的所有文件拷贝到目标服务器的 bin/www 目录下。
拷贝静态文件到集群主服务器(192.168.43.134)的 bin/www 目录下,如图:
3、刷新网站静态文件
在 bin 目录下编辑 config.ini 文件:
kedao@kedao-cluster-master:/$ cd /opt/kedao/bin/
kedao@kedao-cluster-master:/opt/kedao/bin$ sudo vi config.ini
修改 [system] 节点下的 website_release_status=1,如:
[system]
JAVA_HOME=/opt/jdk-17.0.10-full
cert_change_status=0
env=master
group_name=kedao
release_status=0
user_name=kedao
website_release_status=1
修改后,输入 :wq! 保存退出,大约1分钟左右刷新完成,刷新完成后 website_release_status 的值会自动更新为 0。
4、登录系统
在浏览器地址栏中输入 http://192.168.43.134,打开登录界面,如图:
八、验证负载均衡
进入系统后,打开任意一个功能,如图:
多次点击查询按钮调用服务,分别到集群服务器:192.168.43.134、192.168.43.135、192.168.43.136 上的日志目录 /opt/kedao/bin/log , 执行 tail -f log_20250505 命令查看服务日志文件(log_20250505为对应日期的日志文件),如:
kedao@kedao-cluster-master:/opt/kedao/bin/log$ tail -f log_20250505
[2025-05-05 15:56:26.969]-prj_java_test.mdl_test.svc_test
[2025-05-05 15:56:27.967]-prj_java_test.mdl_test.svc_test 998 ms
[2025-05-05 15:56:46.387]-prj_java_test.mdl_test.svc_test
[2025-05-05 15:56:46.405]-prj_java_test.mdl_test.svc_test 18 ms
[2025-05-05 15:56:47.630]-prj_java_test.mdl_test.svc_test
[2025-05-05 15:56:47.647]-prj_java_test.mdl_test.svc_test 17 ms
[2025-05-05 15:56:48.680]-prj_java_test.mdl_test.svc_test
[2025-05-05 15:56:48.700]-prj_java_test.mdl_test.svc_test 20 ms
[2025-05-05 15:56:50.972]-prj_java_test.mdl_test.svc_test
[2025-05-05 15:56:50.990]-prj_java_test.mdl_test.svc_test 18 ms
[2025-05-05 16:14:20.718]-prj_java_test.mdl_test.svc_test
[2025-05-05 16:14:20.732]-prj_java_test.mdl_test.svc_test 14 ms
注:第一次调用服务时,由于需要加载服务,以及建立数据库连接,耗时会长些,之后就正常了。