# 基础功能
基础功能包含开发服务器配置、绑定开发者、分配系统、反向代理和创建系统。
# 开发服务器配置
设置开发服务器的IP和服务器的归属用户。
# 绑定开发者
主要用来绑定kedao中间件开发者的账号,建立开发者与主用户的关系。
比如某公司下要进行系统开发,该公司账号部署了kedao开发服务器后,其开发团队的成员要连到服务器使用 kedao creator,这时需要成员的帐号与该公司的账号建立绑定关系。
•绑定用户:建立帐号的绑定关系。
•解绑:解除帐号的绑定关系。
•设置管理员:将绑定的帐号设置为管理员。具备与公司帐号一样的功能权限。
# 分配系统
主用户将系统分配给管理员,同一系统可以同时分配给多个管理员;也可以将已分配的系统进行移除分配关系。
• 分配系统:从管理员列表中选择要分配的管理员,从待分配的系统列表中勾选中要进行分配的系统,点 > 按钮,将系统增加到已分配系统的列表中。
• 移除分配:从管理员列表中选择要移除关系的管理员,从已分配系统的列表中勾选中要取消分配的系统,点 < 按钮,解除分配关系。
# 反向代理
设置反向代理和URL重定向。
• 反向代理:填写http请求的服务器ip、端口号及path。选择反向代理,增加代理的ip地址,并设置权重;轮询按照权重进行。
• URL重定向:同反向代理一样,填写要进行重定向服务器的ip、端口和path,设置重新定向的path。
注:
要在哪台服务器上进行反向代理或重定向,就填写对应http服务器的ip。
如果有多台服务器都要进行反向代理或重定向,则分别设置。
另外:
如果要对服务进行负载均衡,请到对应系统下的负载均衡的功能中设置。
这里的反向代理,针对的是非系统注册的外部http请求。
# 创建系统
创建服务系统工程,也可以作为一套大系统中的子系统。
打开【基础功能】->【创建系统】功能,点击【创建系统】按钮,在弹出的创建系统对话框中填写系统名称、数据库类型、开发语言、签名算法、系统描述。创建系统后,生成系统对应的 appid 和签名key。
其中:
• 数据库类型,如果不涉及数据库开发,则设置为“无”;
• 签名算法,为kedao中间件进行api请求时的签名验证,如果不需要,或自行在服务中做验证,则设置为“无”;选择签名算法后,在注册服务时,默认为选择的签名算法;同时,注册服务时仍然可以更改签名算法为“无”,比如用于回调api。
• 系统的appid:用于api调用时的系统身份识别,是api接口参数中必传的参数之一。
• 系统签名key:用于api参数的数据签名。签名算法见【api调用说明】
• 创建系统成功后,会在src_c或src_java下对应的用户名下创建一个与系统名称一致的目录,此为系统工程源代码的目录,同时,需要编译一次。
在系统的操作列中点【编译】按钮进行编译,也可以到系统源代码目录下
c++执行 ./make_all.sh 脚本进行编译;
java可以通过VSCode的 maven 编译打包。
• 连接数据库:手动配置ODBC(按照【Linux开发环境配置】-【配置ODBC】的方法设置),如果不是数据库开发,不用配置。
• 初始化数据库表结构:在 bin/lib/主用户名称/系统名称/db_sql 下有 initialize_table_struct_for_PostgreSQL.SQL 初始化数据库的脚本,手动初始化到数据库中。
• C++配置数据库连接:设置 bin/lib/主用户名称/系统名称/db_config.ini 文件,配置数据库连接的 user/password@db_tns,db_tns为 odbc.ini 中节点 [ myPostgreSQL ]的名称:myPostgreSQL、user为数据库用户、password为数据库用户的密码。
• Java配置数据库连接:
在 src_java/主用户名称/系统名称/main/resources 资源文件夹下配置与系统名称同名的 *.properties 属性文件。
• 编写数据库表结构查询语句:
在 bin/lib/主用户名称/系统名称/db_sql 目录下的 get_table_struct_for_PostgreSQL.sql SQL语句脚本,在【数据模型设计】功能中,从数据库中导入表结构的功能用到此脚本;如果没有对应数据库的脚本或语句不正确,则需要参照其他数据库的查询表结构编写。
# 我的系统
创建系统后,在菜单【我的系统】下出现刚才创建的系统,展开系统菜单后,有如下功能:
# 1、服务器配置
根据发布的类型,将开发环境分为4种模式:
• 模式1:开发,免费会员只能设置这一种方式;开发阶段,不需要搭建测试服务器,同时未确定生产服务器的情况下采用的模式。
• 模式2:开发->测试,在开发阶段,未确定生产服务器的情况下设置的模式。
• 模式3:开发->代码基线->生产集群,不搭建专门的测试环境,开发和测试在一起,开发完成直接发布到代码基线及生产环境。
• 模式4:开发->测试->代码基线->生产集群,完整模式。
其中:
代码基线服务器的作用:作为生产环境的基线库源代码,所有发布生产环境的程序源代码,在代码基线环境上存档,并在基线服务器上编译,由基线服务器发布到生产集群环境,保障基线源代码与生产环境的运行代码一致。
代码基线库服务器,能很好的杜绝开发人员的随意发布,源代码管理混乱,代码版本不统一,甚至相互覆盖的问题。
注意:
1、开发-测试-代码基线环境的端口号保持一致;
2、集群环境的端口号保持一致;
3、集群环境的IP分内外网,外网IP对集群主服务器起作用,其他从服务器的内外网IP相同;主服务器的外网IP用于代码基线服务器发布时调用;
4、集群环境配置后,记得点【同步集群配置信息】将配置信息同步到各台服务器中;否则,服务将不能发布。
5、在【保存】、【同步集群配置信息】之前,需要在各台服务器上的 config.ini 配置文件中设置用户和系统的发布权限,否则不能保存和同步。
# 2、角色权限
维护该系统的角色功能。
# 3、工作小组
对参与项目的人员进行分组管理。
# 4、项目成员
创建测试账号、人员管理、分配角色、分配工作小组。
创建测试账号后,C++项目在系统源码目录下的debugger目录生成对应账号的测试程序。
# 5、数据模型
配置好数据库连接后,可以通过【表结构导入(数据库)】将数据库的数据表结构导入到系统中;
也可以通过【表结构导入(Excel)】导入,Excel文件格式见导入功能中的说明;
也可以自定义数据结构或继承;
通过【生成类文件】功能自动生成数据结构的类文件,类文件在系统源码目录的 model 目录下。
# 6、注册服务
• 通过【新增模块】增加服务分类,模块在系统源码目录下的modules中;
• 选择模块名称,点击【新增服务】往模块增加服务代码,每一个服务为一个单独的代码文件,每一个服务名称对应一个服务函数;
• 服务入参的数据对象必须是:SVC_REQUEST_OBJ< T >,SVC_REQUEST_OBJ 为kedao中间件api的统一入参,泛型对象 T 为实际服务函数的入参;
• 服务出参的数据对象必须是:SVC_RESPONSE_OBJ< T >,SVC_RESPONSE_OBJ 为kedao中间件api的统一出参,泛型对象 T 为实际服务函数的出参。
• 服务出入参的详细说明见【api调用说明】
• 服务代码的编写详细说明见【C++服务开发快速入门】或【Java服务开发快速入门】
• 服务调试详细说明见【C++服务调试】
• 服务测试,可以调用任意指向服务器的服务,并可以对某个服务进行压力测试
# 7、发布服务
创建发布工单,添加发布的代码文件,根据【服务器配置】功能中配置的发布模式,将工单流转到对应的环节。
• 模式一:只有开发环境,不能发布;
• 模式二:开发->测试,直接将工单发布到测试环境;
• 模式三:开发->基线->生产,直接将工单提交到发布生产环节;
• 模式四:开发->测试->基线->生产,直接将工单发布到测试环境;
同时,可以召回没有被锁定的工单、作废没有被锁定的工单;工单一旦流转到【发布生产】环节,则不能再召回和作废,只能在【发布生产】环节关闭工单。
注意:
• 已限制同一份源代码文件,只能存在于一个工单中,不能同时存在于多个发布工单中,即不能多个工单同时发布同一份代码。
• 工单发布后,到达目标环境后,会自行进编译,不需要人为干预。
# 8、测试服务
测试人员锁定发布工单,对发布的功能开展测试,上传测试报告,填写测试结果,提交测试结果。测试通过工单流转到【发布生产】环节,不通过则退回【发布服务】环节。
# 9、发布生产
发布人员对通过测试的工单进行发布生产环境;或者,关闭不需要发布的工单。
发布可以选择立即发布、定时发布两种方式。
提交发布后,工单分为3步:首先在代码基线环境上进行编译,之后发布生产的集群主服务器,最后由集群主服务器发布到集群从服务器;这3步存在一定的时间差。
注意:如果提交发布后,工单的状态长时间没有反应,则需要检查下 bin/log 目录下的 _log 日志,查看是否有定时器的日志在输出
tail -f 20250407_log
# 定时器运行的日志
[2025-04-07 22:53:00.230]-kedao_manager.publish_by_timer.f_get_unfinished_task
[2025-04-07 22:53:00.230]-kedao_manager.publish_by_timer.f_get_finished_task
[2025-04-07 22:53:00.231]-kedao_manager.publish_by_timer.f_get_unfinished_task 1 ms
[2025-04-07 22:53:00.233]-kedao_manager.publish_by_timer.f_get_finished_task 3 ms
如果没有,则是定时器停了,需要在代码基线环境上重启kedao服务
sudo systemctl restart kedao
# 10、负载均衡
设置集群服务器的负载均衡,默认情况下,负载均衡是不起作用的,只有配置负载均衡策略后,并同步后,再操作生效,负载均衡才正式启用。
负载均衡的权重比,主要是根据各台服务器CPU核心数(线程数)的比例来设置,比如由3台16核心的服务器组成的集群,负载均衡的权重比应该设置为最小公约数的比值,即 1:1:1,而不是 16:16:16。
# 11、定时器配置
可以在开发环境到生产环境上的任意一台服务器上设置定时任务,调用指定的服务。
# 12、前端工程
每一套服务系统工程,可以创建多套前端工程,数量不做限制。
目前前端工程模板代码只有一套Vue2版本的。
前端工程中加入了可视化控件表单设计界面,可帮助开发人员拖拽控件设计界面,快速生成表单代码,减轻前端开发的工作量。
注意:可视化控件表单设计界面 还不够成熟,还待完善中。
# 综合功能
一些公共的功能,待完善
# 工单查询
发布工单的查询。