一种多语言云编译的动态微服务调用方法及装置与流程

文档序号:12469657阅读:来源:国知局

技术特征:

1.一种多语言云编译的动态微服务调用方法,其特征在于,包括:

A1:预设服务器在接收到调用第一微服务的调用请求后,判断所述预设服务器中是否存在对所述第一微服务的第一脚本代码编译后形成的第一微服务实例,若是,运行所述第一微服务实例,并将运行结果反馈至终端;否则,执行步骤A2;

A2:从预设的微服务脚本仓库中读取所述第一脚本代码,将所述第一脚本代码载入脚本编译引擎,对所述第一脚本代码进行编译,生成新的微服务实例,以作为所述第一微服务实例后,运行所述第一微服务实例并将运行结果反馈至终端;

其中,所述微服务脚本仓库包括预先创建的所有微服务的脚本代码;所述微服务为一段脚本代码,对所述脚本代码进行编译形成能够实现预设功能的微服务实例。

2.根据权利要求1所述的方法,其特征在于,所述步骤A1包括:

A11:预设服务器在接收到调用第一微服务的调用请求后,判断所述预设服务器中是否存在对所述第一微服务的第一脚本代码编译后形成的第一微服务实例,若是,执行步骤A12,否则,执行步骤A2;

A12:根据所述第一微服务实例的标识在所述微服务脚本仓库中查找具有所述标识的第二微服务的第二脚本代码,判断所述第二脚本代码对应的哈希值是否与预设哈希值相同,若是,运行所述第一微服务实例,并将运行结果反馈至所述终端,否则,执行步骤A13;

A13:从所述微服务脚本仓库中读取所述第二脚本代码,将所述第二脚本代码载入脚本编译引擎,编译生成第二微服务实例,运行所述第二微服务实例,并将运行结果反馈至所述终端。

3.根据权利要求1所述的方法,其特征在于,所述步骤A1之前还包括:

网关在接收到所述终端发送的调用所述第一微服务的调用请求后,在预先创建的微服务列表中查找与所述第一微服务对应的服务相关的服务器,根据预设规则从与所述第一微服务对应的服务相关的服务器中选择一个服务器作为所述预设服务器,并将所述第一微服务的调用请求发送至所述预设服务器;

其中,与所述第一微服务对应的服务相关的服务器,指的是服务器所执行的任务是与所述第一微服务对应的功能相关的;所述微服务列表包括所述微服务脚本仓库中所有的微服务的微服务信息,所述微服务信息至少包括:微服务的标识、微服务所在的服务器的标识、微服务所在的服务器当前的CPU使用率、微服务所在的服务器当前的内存使用率、微服务所在的服务器连接终端的连接数、微服务所在的服务器最快响应时间、微服务所在的服务器的配置对应的权重。

4.根据权利要求3所述的方法,其特征在于,所述预设规则包括:采用随机法或者轮循法从与所述第一微服务对应的服务相关的服务器中选择一个服务器作为所述预设服务器、根据所述微服务列表中记载的服务器的最小连接数从与所述第一微服务对应的服务相关的服务器中选择一个服务器作为所述预设服务器、根据所述微服务列表中记载的服务器的CPU使用率或内存使用率从与所述第一微服务对应的服务相关的服务器中选择一个服务器作为所述预设服务器、根据所述微服务列表中记载的服务器最快响应时间从与所述第一微服务对应的服务相关的服务器中选择一个服务器作为所述预设服务器、根据所述微服务列表中记载的服务器的配置对应的权重从与所述第一微服务对应的服务相关的服务器中选择一个服务器作为所述预设服务器。

5.根据权利要求3或4所述的方法,其特征在于,还包括:

判断所述微服务实例运行的过程中是否出现异常,若是,将运行所述微服务实例的服务器根据所述异常判断的异常原因发送至网关,以使所述网关记录所述微服务实例的异常执行过程。

6.一种多语言云编译的动态微服务调用装置,其特征在于,包括:

判断模块,用于在预设服务器在接收到调用第一微服务的调用请求后,判断所述预设服务器中是否存在对所述第一微服务的第一脚本代码编译后形成的第一微服务实例,若是,运行所述第一微服务实例,并将运行结果反馈至终端;

编译模块,判断所述预设服务器中不存在对所述第一微服务的第一脚本代码编译后形成的第一微服务实例,从预设的微服务脚本仓库中读取所述第一脚本代码,将所述第一脚本代码载入脚本编译引擎,对所述第一脚本代码进行编译,生成新的微服务实例,以作为所述第一微服务实例后,运行所述第一微服务实例并将运行结果反馈至终端;

其中,所述微服务脚本仓库包括预先创建的所有微服务的脚本代码;所述微服务为一段脚本代码,对所述脚本代码进行编译形成能够实现预设功能的微服务实例。

7.根据权利要求6所述的装置,其特征在于,所述判断模块包括:

第一判断单元,用于在预设服务器在接收到调用第一微服务的调用请求后,判断所述预设服务器中是否存在对所述第一微服务的第一脚本代码编译后形成的第一微服务实例;

第二判断单元,用于在判断所述预设服务器中存在对所述第一微服务的第一脚本代码编译后形成的第一微服务实例后,根据所述第一微服务实例的标识在所述微服务脚本仓库中查找具有所述标识的第二微服务的第二脚本代码,判断所述第二脚本代码对应的哈希值是否与预设哈希值相同,若是,运行所述第一微服务实例,并将运行结果反馈至所述终端;

编译单元,用于在判断所述第二脚本代码对应的哈希值是否与预设哈希值不相同后,从所述微服务脚本仓库中读取所述第二脚本代码,将所述第二脚本代码载入脚本编译引擎,编译生成第二微服务实例,运行所述第二微服务实例,并将运行结果反馈至所述终端。

8.根据权利要求6所述的装置,其特征在于,还包括选择模块,所述选择模块用于网关在接收到所述终端发送的调用所述第一微服务的调用请求后,在预先创建的微服务列表中查找与所述第一微服务对应的服务相关的服务器,根据预设规则从与所述第一微服务对应的服务相关的服务器中选择一个服务器作为所述预设服务器,并将所述第一微服务的调用请求发送至所述预设服务器;

其中,与所述第一微服务对应的服务相关的服务器,指的是服务器所执行的任务是与所述第一微服务对应的功能相关的;所述微服务列表包括所述微服务脚本仓库中所有的微服务的微服务信息,所述微服务信息至少包括:微服务的标识、微服务所在的服务器的标识、微服务所在的服务器当前的CPU使用率、微服务所在的服务器当前的内存使用率、微服务所在的服务器连接终端的连接数、微服务所在的服务器最快响应时间、微服务所在的服务器的配置对应的权重。

9.根据权利要求8所述的装置,其特征在于,所述预设规则包括:采用随机法或者轮循法从与所述第一微服务对应的服务相关的服务器中选择一个服务器作为所述预设服务器、根据所述微服务列表中记载的服务器的最小连接数从与所述第一微服务对应的服务相关的服务器中选择一个服务器作为所述预设服务器、根据所述微服务列表中记载的服务器的CPU使用率或内存使用率从与所述第一微服务对应的服务相关的服务器中选择一个服务器作为所述预设服务器、根据所述微服务列表中记载的服务器最快响应时间从与所述第一微服务对应的服务相关的服务器中选择一个服务器作为所述预设服务器、根据所述微服务列表中记载的服务器的配置对应的权重从与所述第一微服务对应的服务相关的服务器中选择一个服务器作为所述预设服务器。

10.根据权利要求8或9中所述的装置,其特征在于,所述编译模块还用于判断所述微服务实例运行的过程中是否出现异常,若是,将运行所述微服务实例的服务器根据所述异常判断的异常原因发送至网关,以使所述网关记录所述微服务实例的异常执行过程。

当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1