服务处理方法、系统、计算机设备和存储介质技术方案

技术编号:36178042 阅读:49 留言:0更新日期:2022-12-31 20:34
本申请涉及一种服务处理方法、系统、计算机设备和存储介质。该方法包括:多个服务各自调用服务发现注册中心中的缓存服务器提供的脚本执行接口,并指示使用各自的服务注册参数执行注册脚本;服务注册参数包括服务的服务名称和连接服务的连接信息;缓存服务器单线程原子性地运行注册脚本,以将服务注册参数更新到与服务名称相绑定的服务注册信息中;多个调用端各自调用脚本执行接口,并在脚本执行接口中指示使用各自的服务申请参数执行服务申请脚本;缓存服务器单线程原子性地运行服务申请脚本,以匹配与服务申请参数相关的目标服务注册信息,更新目标服务注册信息,向相应调用端返回连接信息。采用本方法能够提高服务处理效率。率。率。

【技术实现步骤摘要】
服务处理方法、系统、计算机设备和存储介质


[0001]本申请涉及软件
,特别是涉及一种服务处理方法、系统、计算机设备和存储介质。

技术介绍

[0002]随着服务技术的迅速发展,服务的使用日趋成熟,服务注册与发现技术的研究也成为了企业应用集成系统的热点。服务发现注册中心提供服务的注册和发现功能,需要处理并发的服务注册事件和服务发现事件。
[0003]目前的服务注册与发布的方式可以通过指定的注册指令和查询指令来完成服务的注册与发布,但是由于这两个指令需要修改同一份数据,因此在执行注册和查询指令时,需要申请到相关锁后才能执行注册和查询指令,并在指令完成之后,释放相关锁。这样,导致操作复杂,效率低下。

技术实现思路

[0004]基于此,有必要针对上述技术问题,提供一种能够提高效率的服务处理方法、系统、计算机设备、存储介质和计算机程序产品。
[0005]第一方面,本申请提供了一种服务处理方法。所述方法包括:
[0006]在多个服务向服务发现注册中心进行服务注册的情况下,所述多个服务各自调用所述服务发现注册中心中的缓存服务器提供的脚本执行接口,并在所述脚本执行接口中指示使用各自的服务注册参数执行注册脚本;所述服务注册参数包括所述服务的服务名称和连接所述服务的连接信息;
[0007]所述缓存服务器响应于每个服务对所述脚本执行接口的调用,单线程原子性地运行所述服务指示的所述注册脚本,以将所述服务所指示的所述服务注册参数更新到与所述服务注册参数中的服务名称相绑定的服务注册信息中;<br/>[0008]在多个调用端向所述服务发现注册中心进行服务申请的情况下,所述多个调用端各自调用所述脚本执行接口,并在所述脚本执行接口中指示使用各自的服务申请参数执行服务申请脚本;所述服务申请参数包括所述调用端所申请的目标服务名称;
[0009]所述缓存服务器针对每个调用端对所述脚本执行接口的调用,单线程原子性地运行所述调用端指示的所述服务申请脚本,以在多个所述服务注册信息中匹配与所述目标服务名称相绑定的目标服务注册信息,更新所述目标服务注册信息,向相应调用端返回所述目标服务注册信息中的连接信息,使得所述调用端基于所述连接信息连接所述目标服务名称所对应的服务。
[0010]第二方面,本申请还提供了一种服务处理系统,所述系统包括:服务发现注册中心、至少一个服务端和至少一个调用端;所述服务端运行至少一个服务;所述服务发现注册中心中包括缓存服务器;
[0011]所述服务端,用于在多个服务向服务发现注册中心进行服务注册的情况下,通过
所述多个服务各自调用所述缓存服务器提供的脚本执行接口,并在所述脚本执行接口中指示使用各自的服务注册参数执行注册脚本;所述服务注册参数包括所述服务的服务名称和连接所述服务的连接信息;
[0012]所述服务发现注册中心,用于通过所述缓存服务器响应于每个服务对所述脚本执行接口的调用,单线程原子性地运行所述服务指示的所述注册脚本,以将所述服务所指示的所述服务注册参数更新到与所述服务注册参数中的服务名称相绑定的服务注册信息中;
[0013]所述调用端,用于调用所述脚本执行接口,并在所述脚本执行接口中指示使用各自的服务申请参数执行服务申请脚本;所述服务申请参数包括所述调用端所申请的目标服务名称;
[0014]所述服务发现注册中心,还用于通过所述缓存服务器针对每个调用端对所述脚本执行接口的调用,单线程原子性地运行所述调用端指示的所述服务申请脚本,以在多个所述服务注册信息中匹配与所述目标服务名称相绑定的目标服务注册信息,更新所述目标服务注册信息,向相应调用端返回所述目标服务注册信息中的连接信息,使得所述调用端基于所述连接信息连接所述目标服务名称所对应的服务。
[0015]在其中一个实施例中,所述目标服务名称对应的服务为多连接服务;所述目标服务注册信息记录有所述目标服务名称对应的服务的空闲连接数;所述服务发现注册中心还用于在所述空闲连接数大于零的情况下,减小记录的所述空闲连接数,并向相应调用端返回所述目标服务名称对应的服务的连接信息。
[0016]在其中一个实施例中,所述目标服务注册信息记录所述目标服务名称对应的至少两个多连接服务各自的连接信息和空闲连接数;所述服务发现注册中心还用于从所述至少两个多连接服务各自的空闲连接数中查找数值大于零的空闲连接数,在查找成功的情况下,减小查找到的记录的空闲连接数,并向相应调用端返回目标服务的连接信息;所述目标服务是同一目标服务名称下的、且与查找到的空闲连接数对应的多连接服务。
[0017]在其中一个实施例中,所述连接信息包括连接所述服务的网址和端口;所述服务发现注册中心还用于通过所述缓存服务器响应于每个服务对所述脚本执行接口的调用,单线程原子性地运行所述服务指示的所述注册脚本,以将所述服务的网址、所述服务的端口和所述服务的空闲连接数作为一组第一数据更新到服务注册信息中;将所述服务的网址、所述服务的端口做为一组第二数据追加到所述服务注册信息中的注册集合;所述服务发现注册中心还用于对所述注册集合的各个第二数据进行遍历,获取第二数据中的网址和端口,根据所述第一数据得到与所述网址和所述端口对应的空闲连接数;若得到的空闲连接数等于零,则继续遍历所述第二数据,以获取新的网址和端口的操作以及后续步骤,直至得到大于零的空闲连接数。
[0018]在其中一个实施例中,所述目标服务名称所对应的服务为支持同时运行多种不同任务的多任务服务;所述服务申请参数包括所述调用端所申请运行任务的任务名称;所述目标服务注册信息包括每种任务的单一任务数量上限和多任务数量上限,以及所述多任务服务的每种任务的已执行数量;所述服务发现注册中心还用于基于所述目标服务注册信息,确定目标服务名称所对应的服务的各任务的已执行数量;将所述各任务的已执行数量和所述目标服务注册信息所记录的每种任务的单一任务数量上限或多任务数量上限做比较;所述目标任务是所述服务参数中的所申请运行任务的任务名称所表征的任务;在比较
结果表征支持增加运行所述目标任务的情况下,更新所述目标服务注册信息中记录的所述目标任务的已执行数量,向相应调用端返回所述目标服务名称所对应的服务的连接信息。
[0019]在其中一个实施例中,所述服务发现注册中心还用于通过所述缓存服务器响应于每个服务对所述脚本执行接口的调用,单线程原子性地运行所述服务指示的所述注册脚本,以将所述服务所指示的所述服务注册参数更新到与所述服务注册参数中的服务名称相绑定的服务注册信息中,并记录所述服务的心跳周期;所述服务发现注册中心还用于在所述心跳周期内未接收到所述服务的心跳报文的情况下,将所述服务的服务注册信息中的连接信息置为无效。
[0020]第三方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行上述服务处理方法的步骤。
[0021]第四方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种服务处理方法,其特征在于,所述方法包括:在多个服务向服务发现注册中心进行服务注册的情况下,所述多个服务各自调用所述服务发现注册中心中的缓存服务器提供的脚本执行接口,并在所述脚本执行接口中指示使用各自的服务注册参数执行注册脚本;所述服务注册参数包括所述服务的服务名称和连接所述服务的连接信息;所述缓存服务器响应于每个服务对所述脚本执行接口的调用,单线程原子性地运行所述服务指示的所述注册脚本,以将所述服务所指示的所述服务注册参数更新到与所述服务注册参数中的服务名称相绑定的服务注册信息中;在多个调用端向所述服务发现注册中心进行服务申请的情况下,所述多个调用端各自调用所述脚本执行接口,并在所述脚本执行接口中指示使用各自的服务申请参数执行服务申请脚本;所述服务申请参数包括所述调用端所申请的目标服务名称;所述缓存服务器针对每个调用端对所述脚本执行接口的调用,单线程原子性地运行所述调用端指示的所述服务申请脚本,以在多个所述服务注册信息中匹配与所述目标服务名称相绑定的目标服务注册信息,更新所述目标服务注册信息,向相应调用端返回所述目标服务注册信息中的连接信息,使得所述调用端基于所述连接信息连接所述目标服务名称所对应的服务。2.根据权利要求1所述的方法,其特征在于,所述目标服务名称对应的服务为多连接服务;所述目标服务注册信息记录有所述目标服务名称对应的服务的空闲连接数;所述更新所述目标服务注册信息,向相应调用端返回所述目标服务注册信息中的连接信息包括:在所述空闲连接数大于零的情况下,减小记录的所述空闲连接数,并向相应调用端返回所述目标服务名称对应的服务的连接信息。3.根据权利要求2所述的方法,其特征在于,所述目标服务注册信息记录所述目标服务名称对应的至少两个多连接服务各自的连接信息和空闲连接数;所述在所述空闲连接数大于零的情况下,减小记录的所述空闲连接数,并向相应调用端返回所述目标服务名称对应的服务的连接信息包括:从所述至少两个多连接服务各自的空闲连接数中查找数值大于零的空闲连接数,在查找成功的情况下,减小查找到的记录的空闲连接数,并向相应调用端返回目标服务的连接信息;所述目标服务是同一目标服务名称下的、且与查找到的空闲连接数对应的多连接服务。4.根据权利要求3所述的方法,其特征在于,所述连接信息包括连接所述服务的网址和端口;所述缓存服务器响应于每个服务对所述脚本执行接口的调用,单线程原子性地运行所述服务指示的所述注册脚本,以将所述服务所指示的所述服务注册参数更新到与所述服务注册参数中的服务名称相绑定的服务注册信息中包括:所述缓存服务器响应于每个服务对所述脚本执行接口的调用,单线程原子性地运行所述服务指示的所述注册脚本,以将所述服务的网址、所述服务的端口和所述服务的空闲连接数作为一组第一数据更新到服务注册信息中;将所述服务的网址、所述服务的端口做为一组第二数据追加到所述服务注册信息中的注册集合;
所述从所述至少两个多连接服务各自的空闲连接数中查找数值大于零的空闲连接数包括:对所述注册集合的各个第二数据进行遍历,获取第二数据中的网址和端口,根据所述第一数据得到与所述网址和所述端口对应的空闲连接数;若得到的空闲连接数等于零,则继续遍历所述第二数据,以获取新的网址和端口的操作以及后续步骤,直至得到大于零的空闲连接数。5.根据权利要求1所述的方法,其特征在于,所述目标服务名称所对应的服务为支持同时运行多种不同任务的多任务服务;所述...

【专利技术属性】
技术研发人员:黄林杨国基常向月
申请(专利权)人:深圳追一科技有限公司
类型:发明
国别省市:

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

1