基于分布式服务调用的连接预热方法及系统技术方案

技术编号:20680149 阅读:32 留言:0更新日期:2019-03-27 18:37
本发明专利技术公开了一种基于分布式服务调用的连接预热方法及系统,该方法包括:解析用户自定义的预热配置信息,其中,预热配置信息至少包括预热范围,预热范围用于配置应用中执行连接预热操作的业务服务,连接预热操作为在应用系统启动时建立服务调用方与服务提供方之间网络连接的操作;根据解析结果,对业务服务执行连接预热操作。本发明专利技术既解决了分布式服务调用时首次调用耗时久的问题,又避免了应用系统启动时由于执行连接预热操作而导致启动时间过长的问题。

【技术实现步骤摘要】
基于分布式服务调用的连接预热方法及系统
本专利技术涉及分布式系统领域,尤其涉及一种基于分布式服务调用的连接预热方法及系统。
技术介绍
本部分旨在为权利要求书中陈述的本专利技术实施例提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。随着互联网的普及,互联网用户的急速增长,传统的单体应用系统已经无法满足日益增长的用户压力对系统容量及高可用的需求。将单体应用改造为分布式服务模式的应用,能有效解决不断增长的系统压力。在分布式服务领域,通常使用远程过程调用(RemoteProcedureCall,RPC)模式进行服务调用。这种服务调用方式存在首次交易耗时久的问题,这是因为在大规模集群中,调用方需要动态初始化服务代理,同时和大量的服务提供方建立网络通信连接。当调用方项目中配置有大量的服务代理时,服务调用方在初始化每个服务代理时都会面临首次网络连接耗时较长的问题。为了解决首次交易耗时的问题,减小系统初始化给业务交易带来的干扰,现有技术常用的解决方式是在应用系统启动过程中,去启动服务代理的初始化任务。该方法的确可以解决首次服务调用耗时长的问题,但会使得服务器启动时间增加,当服务调用关系复杂时还可能会引起应用服务器启动失败。延长服务器启动的超时时间可以防止应用服务器启动失败,但增大超时时间的优化空间是有限的,过长的部署时间不利于应用的部署验证,降低应用的可维护性,另一方面也会让应用的用户体验降低啊。综上,目前没有合理的解决分布式服务调用时首次调用耗时久这个问题的方案,因此,如何提供一种新的方案,解决上述技术问题是本领域亟待解决的技术难题。
技术实现思路
本专利技术实施例提供一种基于分布式服务调用的连接预热方法,用以解决现有应用系统在启动时执行初始化服务代理操作导致服务器启动时间过长的技术问题,该方法包括:解析用户自定义的预热配置信息,其中,预热配置信息至少包括预热范围,预热范围用于配置应用中执行连接预热操作的业务服务,连接预热操作为在应用系统启动时建立服务调用方与服务提供方之间网络连接的操作;根据解析结果,对业务服务执行连接预热操作。本专利技术实施例还提供一种基于分布式服务调用的连接预热系统,用以解决现有应用系统在启动时执行初始化服务代理操作导致服务器启动时间过长的技术问题,该系统包括:策略解析执行装置,用于解析用户自定义的预热配置信息,其中,预热配置信息至少包括预热范围,预热范围用于确定应用中执行连接预热操作的业务服务,连接预热操作为在应用系统启动时建立服务调用方与服务提供方之间网络连接的操作;连接预热装置,与策略解析执行装置连接,用于根据解析结果,对业务服务执行连接预热操作。本专利技术实施例还提供一种计算机设备,用以解决现有应用系统在启动时执行初始化服务代理操作导致服务器启动时间过长的技术问题,该计算机设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述的基于分布式服务调用的连接预热方法。本专利技术实施例还提供一种计算机可读存储介质,用以解决现有应用系统在启动时执行初始化服务代理操作导致服务器启动时间过长的技术问题,该计算机可读存储介质存储有执行上述基于分布式服务调用的连接预热方法的计算机程序。本专利技术实施例中,通过用户自定义预热配置信息,以确定应用中需要执行连接预热操作的业务服务,使得应用系统启动时不需要对所有的业务服务执行连接预热操作,而是只需要对配置的业务服务执行连接预热操作,既解决了分布式服务调用时首次调用耗时久的问题,又避免了应用系统启动时由于执行连接预热操作而导致启动时间过长的问题。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:图1为本专利技术实施例中提供的一种基于分布式服务调用的连接预热方法流程图;图2为本专利技术实施例中提供的一种基于分布式服务调用的连接预热系统示意图;图3为本专利技术实施例中提供的一种用户决策定义装置示意图;图4为本专利技术实施例中提供的一种策略解析执行装置示意图;图5为本专利技术实施例中提供的一种连接预热装置示意图;图6为本专利技术实施例中提供的一种冲突解决装置示意图;图7为本专利技术实施例中提供的一种分布式服务调用请求处理方法流程图。具体实施方式为使本专利技术实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本专利技术实施例做进一步详细说明。在此,本专利技术的示意性实施例及其说明用于解释本专利技术,但并不作为对本专利技术的限定。本专利技术实施例中提供了一种基于分布式服务调用的连接预热方法,如图1所示,该方法包括:S102,解析用户自定义的预热配置信息,其中,预热配置信息至少包括预热范围,预热范围用于配置应用中执行连接预热操作的业务服务,连接预热操作为在应用系统启动时建立服务调用方与服务提供方之间网络连接的操作;S104,根据解析结果,对业务服务执行连接预热操作。具体地,在上述步骤中,应用可以是基于分布式服务调用模式的各种分布式应用,分布式应用是指应用程序分布在不同计算机上,通过网络来共同完成一项任务的应用。上述预热配置信息是指用户自定义的配置信息,该配置信息至少用于指定应用中需要执行连接预热操作的业务服务,即指定预热范围。通过自定义预热配置信息,可以实现自定义应用中哪些业务服务执行连接预热操作,哪些服务不需要执行连接预热操作的目的。在分布式服务系统中,服务调用方(也即应用服务器)在首次调用服务需要初始化每个服务代理,并和大量的服务提供方建立网络连接,这个过程会导致首次调用耗时久的问题。现有技术为了解决分布式应用首次调用耗时久的问题,在应用启动过程中,执行应用中所有业务服务的服务代理初始化工作。这种方式不仅导致应用服务器启动时间过长,而且还存在应用服务器启动失败的风险。本专利技术实施例中,用户可以通过自定义预热配置信息来确定应用中执行连接预热操作的业务服务,也即可以根据应用自身业务特性,选择性地将一些核心业务服务或实时业务服务配置为应用启动时需要执行连接预热操作;将一些非核心业务服务或非实时业务服务配置为应用启动时不需要执行连接预热操作,从而既满足了降低首次调用耗时久的问题,又不至于使得应用启动时间过长。对于分布式应用来说,连接预热操作是指创建服务代理对象,以及建立服务代理对象与服务提供方之间网络连接的操作。容易注意的是,服务代理对象的创建耗时极低,对应用系统的启动耗时影响也较小,而建立服务代理对象与服务提供方之间的网络连接耗时较大,对应用系统的启动耗时影响也较大。因而,在通过预热配置信息中的预热范围指定应用中需要执行连接预热操作的业务服务(核心业务服务或实时业务服务)后,可以进一步地确定业务服务的预热模式。由此,在一种实施例中,上述预热配置信息还可以包括:预热种类,预热种类用于配置业务服务执行连接预热操作的功能是否开启,以及开启后使用的预热模式;其中,预热模式包括阻塞预热模式或非阻塞预热模式,阻塞预热模式为在应用系统启动过程中,按照串行方式完成服务代理对象的创建和初始化操作的模式,非阻塞预热模式为在应用系统启动过程中只完成服务代理对象的创建操作,且在应用系本文档来自技高网...

【技术保护点】
1.一种基于分布式服务调用的连接预热方法,其特征在于,包括:解析用户自定义的预热配置信息,其中,所述预热配置信息至少包括预热范围,所述预热范围用于配置应用中执行连接预热操作的业务服务,所述连接预热操作为在应用系统启动时建立服务调用方与服务提供方之间网络连接的操作;根据解析结果,对所述业务服务执行连接预热操作。

【技术特征摘要】
1.一种基于分布式服务调用的连接预热方法,其特征在于,包括:解析用户自定义的预热配置信息,其中,所述预热配置信息至少包括预热范围,所述预热范围用于配置应用中执行连接预热操作的业务服务,所述连接预热操作为在应用系统启动时建立服务调用方与服务提供方之间网络连接的操作;根据解析结果,对所述业务服务执行连接预热操作。2.如权利要求1所述的方法,其特征在于,所述预热配置信息还包括:预热种类,所述预热种类用于配置所述业务服务执行连接预热操作的功能是否开启,以及开启后使用的预热模式;其中,所述预热模式包括阻塞预热模式或非阻塞预热模式,所述阻塞预热模式为在所述应用系统启动过程中,按照串行方式完成服务代理对象的创建和初始化操作的模式,所述非阻塞预热模式为在所述应用系统启动过程中只完成服务代理对象的创建操作,且在所述应用系统启动完成后按照并发方式完成服务代理对象初始化操作的模式;其中,所述服务代理对象为服务调用方创建的代理对象,用于所述服务调用方基于分布式调用服务提供方提供的服务。3.如权利要求2所述的方法,其特征在于,所述预热配置信息还包括:预热并发度,所述预热并发度用于配置所述非阻塞预热模式下,并发初始化服务代理对象的数量。4.如权利要求1所述的方法,其特征在于,在根据解析结果,对所述业务服务执行连接预热操作之后,所述方法还包括:缓存已建立的服务调用方与服务提供方之间的网络连接;定期向服务提供方发送心跳报文,其中,所述心跳报文用于保持所述服务调用方与所述服务提供方之间的网络连接。5.如权利要求1所述的方法,其特征在于,所述解析结果中至少包括预加载服务清单,其中,所述预加载服务清单包含当前执行预热连接操作的业务服务,其中,根据解析结果,对所述业务服务执行连接预热操作,包括:根据所述预加载服务清单,获取当前执行预热连接操作的服务提供方的设备地址列表;根据所述当前执行预热连接操作的服务提供方的设备地址列表,建立当前执行预热连接操作的服务调用方与服务提供方之间的网络连接。6.如权利要求1所述的方法,其特征在于,根据解析结果,对所述业务服务执行连接预热操作,包括:在执行连接预热操作的过程中,阻塞正在初始化或未初始化的服务代理对象的服务调用请求。7.一种基于分布式服务调用的连接预热系统,其特征在于,包括:策略解析执行装置,用于解析用户自定义的预热配置信息,其中,所述预热配置信息至少包括预热范围,所述预热范围用于确定应用中执行连接预热操作的业务服务,所述连接预热操作为在应用系统启动时建立服务调用方与服务提供方之间网络连接的操作;连接预热装置,与所述策略解析执行装置连接,用于根...

【专利技术属性】
技术研发人员:夏龙飞张家宇张远征让涛
申请(专利权)人:中国工商银行股份有限公司
类型:发明
国别省市:北京,11

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

1