网络服务的调度方法、装置、智能终端及存储介质制造方法及图纸

技术编号:31310314 阅读:23 留言:0更新日期:2021-12-12 21:39
本申请公开了一种网络服务的调度方法、装置、智能终端及存储介质,该网络服务的调度方法包括:启动至少一个引擎进程,并加载至少一个业务流程函数;将业务流程函数确定为父业务流程函数,并将父业务流程函数的至少一个子业务流程函数加载到业务流程函数的引擎进程中;将子业务流程函数确定为父业务流程函数,重复执行将父业务流程函数的至少一个子业务流程函数加载到业务流程函数的引擎进程中的步骤,直至形成的单体服务的网络业务不符合设定条件;运行单体服务的网络业务。通过上述方案,本申请的网络服务的调度方法能够有效降低网络运维服务的成本,且降低了网络通讯对整体硬件性能的浪费,相应的请求响应时延也得以降低。相应的请求响应时延也得以降低。相应的请求响应时延也得以降低。

【技术实现步骤摘要】
网络服务的调度方法、装置、智能终端及存储介质


[0001]本申请涉及互联网
,特别是涉及一种网络服务的调度方法、装置、智能终端及存储介质。

技术介绍

[0002]在互联网发展的初期,后台网络架构几乎都是单体服务,也即所有业务逻辑都写在一个或几个后台进程中。然而,单体服务因存在有多人协作困难、故障无法隔离、不利于水平扩展的缺陷,随着互联网业务复杂度的越来越高,单体服务的缺陷慢慢被放大,而逐渐被一种新的微服务架构,也即将业务按照水平和垂直两个维度拆分成一个一个的小块,每一小块业务用一种服务进程来实现,进程与进程间通过网络通讯协作完成整体业务流程的网络架构所替代。
[0003]而随着微服务架构在互联网
的发展和流行,通过微服务架构取代单体服务架构也逐渐成为主流,主要即是因为微服务架构切实的解决了单体服务多人协作困难、故障无法隔离、不利于水平扩展的问题。
[0004]但微服务架构同样也存在有一些缺陷:服务进程数量过多带来的高昂运维成本、多余的网络通讯对整体硬件性能的浪费、请求响应时延较高。
[0005]随着摩尔定律失效,硬件性能提升进入瓶颈,互联网用户群体爆炸式的增长,导致各大互联网公司后台服务器的数量越来越多,有些公司甚至达到数十万台的规模。在这样的体量背景下,微服务架构对硬件性能的浪费所带来的额外成本开销已变得非常庞大。
[0006]且随着互联网行业的突飞猛进,激烈的竞争环境让业务复杂度不得不更进一步提高,导致了各大互联网公司后台的微服务进程数量爆炸式增长,运维工作难度越来也高,运维成本也越来越高。

技术实现思路

[0007]本申请主要解决的技术问题是提供一种网络服务的调度方法、装置、智能终端及存储介质,以解决现有技术中单体服务存在多人协作困难、故障无法隔离、不利于水平扩展的问题,而微服务架构存在服务进程数量过多带来的高昂运维成本、多余的网络通讯对整体硬件性能的浪费、请求响应时延较高的问题。
[0008]为了解决上述问题,本申请第一方面提供了一种网络服务的调度方法,其中,该网络服务的调度方法包括:启动至少一个引擎进程,并加载至少一个业务流程函数;将业务流程函数确定为父业务流程函数,并将父业务流程函数的至少一个子业务流程函数加载到业务流程函数的引擎进程中;将子业务流程函数确定为父业务流程函数,重复执行将父业务流程函数的至少一个子业务流程函数加载到业务流程函数的引擎进程中的步骤,直至形成的单体服务的网络业务不符合设定条件;运行单体服务的网络业务。
[0009]其中,启动至少一个引擎进程,并加载至少一个业务流程函数之前,还包括:获取满足标椎接口规范的初始代码;将初始代码构建为可执行的业务流程函数。
[0010]其中,将初始代码构建为可执行的业务流程函数,包括:对初始代码进行源码解析,以获取初始代码的函数名和函数签名,并对应生成具有固定签名的初始函数;将初始函数追加至初始代码的源码末端,得到初加工源代码;将初加工源代码编译为可执行的字节码形式的业务流程函数,并保存至数据库中。
[0011]其中,启动至少一个引擎进程,并加载至少一个业务流程函数,包括:从数据库中下载至少一个业务流程函数,以将业务流程函数加载至对应启动的至少一个引擎进程中。
[0012]其中,将父业务流程函数的至少一个子业务流程函数加载到业务流程函数的引擎进程中,包括:根据每一业务流程函数的网络地址,将在稳定调用关系中处于被调用关系的至少一个子业务流程函数加载至对应处于调用关系的父业务流程函数的引擎进程中。
[0013]其中,加载至引擎进程中的业务流程函数的数量为至少两个,启动至少一个引擎进程,并加载至少一个业务流程函数之后,将业务流程函数确定为父业务流程函数,并将父业务流程函数的至少一个子业务流程函数加载到业务流程函数的引擎进程中之前,包括:获取每一业务流程函数调用其他业务流程函数的调用关系数据;基于调用关系数据将至少两个业务流程函数对应形成为调用关系树;其中,调用关系树包括至少一条调用链,每一调用链最上游的业务流程函数为调用关系树的根节点,位于每一调用链下游的业务流程函数为调用关系树的子节点;将父业务流程函数的至少一个子业务流程函数加载到业务流程函数的引擎进程中,包括:遍历调用关系树中的每一业务流程函数,以将至少一个子节点对应的子业务流程函数加载到与其对应的根节点对应的父业务流程函数的引擎进程中。
[0014]其中,在引擎进程中被调用次数较多的调用关系树的子节点位于的调用关系树的根节点的其中一侧,被调用次数较少的调用关系树的子节点位于的调用关系树的根节点的相对另一侧。
[0015]其中,直至形成的单体服务的网络业务不符合设定条件,包括:直至形成的单体服务的网络业务达到单进程的负载上限。
[0016]其中,网络服务的调度方法应用于处理器,处理器与服务器集群中的每一服务器均通信连接,至少一个引擎进程运行在服务器上,启动至少一个引擎进程,并加载至少一个业务流程函数,包括:获取服务器集群中每一服务器的资源占用率;其中,资源占用率为服务器的使用率;在服务器集群中资源占用率低于第一预设资源占用率的服务器上启动至少一个引擎进程,并加载至少一个业务流程函数。
[0017]其中,网络服务的调度方法还包括:将运行在服务器集群中资源占用率超过第二预设资源占用率的服务器上的部分引擎进程迁移至其他服务器,并保证服务器集群中的每一服务器的资源占用率均低于第一预设资源占用率;其中,第二预设资源占用率大于第一预设资源占用率。
[0018]其中,网络服务的调度方法还包括:在服务器集群中的每一服务器的资源占用率均低于第三预设资源占用率时,将其中资源占用率最小的服务器上运行的所有引擎进程均迁移至其他服务器上。
[0019]其中,在服务器集群中资源占用率低于第一预设资源占用率的服务器上启动至少一个引擎进程对应加载每一业务流程函数,之后还包括:根据每一服务器的资源占用率对服务器集群中的每一服务器进行排序;在排名后10%的任一服务器上启动至少一个引擎进程,并加载每一新获取的业务流程函数。
[0020]为了解决上述问题,本申请第二方面提供了一种网络服务的调度装置,其中,该网络服务的调度装置包括:处理模块,用于启动至少一个引擎进程,并加载至少一个业务流程函数;调度模块,用于将业务流程函数确定为父业务流程函数,并将父业务流程函数的至少一个子业务流程函数加载到业务流程函数的引擎进程中,以将子业务流程函数确定为父业务流程函数,重复执行将父业务流程函数的至少一个子业务流程函数加载到业务流程函数的引擎进程中的步骤,直至形成的单体服务的网络业务不符合设定条件;运行模块,用于运行单体服务的网络业务。
[0021]为了解决上述问题,本申请第三方面提供了一种智能终端,其中,该智能终端包括相互耦接的存储器和处理器,处理器用于执行存储器中存储的程序指令,以实现上述第一方面的网络服务的调度方法。
[0022]为了解决上述问题,本申请第四方面提供了一种计算机可读存储介质,其上存储有程序指令本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种网络服务的调度方法,其特征在于,所述网络服务的调度方法包括:启动至少一个引擎进程,并加载至少一个业务流程函数;将所述业务流程函数确定为父业务流程函数,并将所述父业务流程函数的至少一个子业务流程函数加载到所述业务流程函数的所述引擎进程中;将所述子业务流程函数确定为所述父业务流程函数,重复执行所述将所述父业务流程函数的至少一个子业务流程函数加载到所述业务流程函数的所述引擎进程中的步骤,直至形成的单体服务的网络业务不符合设定条件;运行所述单体服务的网络业务。2.根据权利要求1所述的网络服务的调度方法,其特征在于,所述启动至少一个引擎进程,并加载至少一个业务流程函数之前,还包括:获取满足标椎接口规范的初始代码;将所述初始代码构建为可执行的所述业务流程函数。3.根据权利要求2所述的网络服务的调度方法,其特征在于,所述将所述初始代码构建为可执行的所述业务流程函数,包括:对所述初始代码进行源码解析,以获取所述初始代码的函数名和函数签名,并对应生成具有固定签名的初始函数;将所述初始函数追加至所述初始代码的源码末端,得到初加工源代码;将所述初加工源代码编译为可执行的字节码形式的所述业务流程函数,并保存至数据库中。4.根据权利要求3所述的网络服务的调度方法,其特征在于,所述启动至少一个引擎进程,并加载至少一个业务流程函数,包括:从所述数据库中下载至少一个所述业务流程函数,以将所述业务流程函数加载至对应启动的至少一个所述引擎进程中。5.根据权利要求3所述的网络服务的调度方法,其特征在于,所述将所述父业务流程函数的至少一个子业务流程函数加载到所述业务流程函数的所述引擎进程中,包括:根据每一所述业务流程函数的网络地址,将在稳定调用关系中处于被调用关系的至少一个所述子业务流程函数加载至对应处于调用关系的所述父业务流程函数的所述引擎进程中。6.根据权利要求1所述的网络服务的调度方法,其特征在于,加载至所述引擎进程中的所述业务流程函数的数量为至少两个,所述启动至少一个引擎进程,并加载至少一个业务流程函数之后,所述将所述业务流程函数确定为父业务流程函数,并将所述父业务流程函数的至少一个子业务流程函数加载到所述业务流程函数的引擎进程中之前,包括:获取每一所述业务流程函数调用其他所述业务流程函数的调用关系数据;基于所述调用关系数据将至少两个所述业务流程函数对应形成为调用关系树;其中,所述调用关系树包括至少一条调用链,每一所述调用链最上游的所述业务流程函数为所述调用关系树的根节点,位于每一所述调用链下游的所述业务流程函数为所述调用关系树的子节点;所述将所述父业务流程函数的至少一个子业务流程函数加载到所述业务流程函数的所述引擎进程中,包括:
遍历所述调用关系树中的每一所述业务流程函数,以将至少一个所述子节点对应的所述子业务流程函数加载到与其对应的所述根节点对应的所述父业务流程函数的所述引擎进程中。7.根据权利要求6所述的网络服务的调度方法,其特征在于,在所述引擎进程中被调用次数较多的所述调用关系树的子节点位于所述的调用关系树的...

【专利技术属性】
技术研发人员:于洋子
申请(专利权)人:广州虎牙科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1