CN112667396B - 一种访问请求处理方法、装置及*** - Google Patents
一种访问请求处理方法、装置及*** Download PDFInfo
- Publication number
- CN112667396B CN112667396B CN202011551989.7A CN202011551989A CN112667396B CN 112667396 B CN112667396 B CN 112667396B CN 202011551989 A CN202011551989 A CN 202011551989A CN 112667396 B CN112667396 B CN 112667396B
- Authority
- CN
- China
- Prior art keywords
- service
- access
- access request
- data
- instance data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Computer And Data Communications (AREA)
Abstract
本申请涉及一种访问请求处理方法、装置及***,该技术方案通过预先缓存服务关系数据,当关联服务被调用时,从缓存的服务关系数据中查询关联服务的实例数据,直接将访问请求转发至该实例数据对应的服务器上。这样,无需每次访问请求时都去服务中心获取服务对应的实例数据,可以大大减少负载均衡装置与服务中心之间的通信次数,降低服务调用请求的处理时延,提高服务调用的及时性。
Description
技术领域
本申请涉及分布式数据存储技术领域,尤其涉及一种访问请求处理方法、装置及***。
背景技术
随着互联网应用规模的不断增大,服务的发布呈集群化、集中化发展,即通过包括多台服务器的服务器集群(Cluster)同时提供多种服务。不同服务由于业务复杂度或业务量不同,可能会有不止一个实例,即有多个服务器提供同一服务。在服务调用过程中,由负载均衡装置根据外部发来的服务调用请求,向服务中心请求被调用服务的实例数据,将服务调用请求按照一定策略路由到被调用服务的实例上。
当服务集群中提供服务数量很多,且各服务之间频繁的相互调用时,负载均衡装置就需要频繁地向服务中心请求各个服务的实例数据,这样,不仅增大了负载均衡装置与服务中间之间的通信压力,还增加了服务调用请求的处理时延,影响服务调用的及时性。
发明内容
为了解决上述技术问题或者至少部分地解决上述技术问题,本申请提供了一种访问请求处理方法、装置及***。
一方面,本申请提供了一种访问请求处理方法,包括:
确定第一访问请求对应的第一服务,获取所述第一服务对应的第一实例数据;
将所述第一访问请求发送到所述第一实例数据对应的第一服务器;
当接收到来自于所述第一服务器的访问第二服务的第二访问请求时,从缓存的服务关系数据集中查询得到所述第二服务对应的第二实例数据,所述服务关系数据集中包括与所述第一服务关联的第二服务及所述第二服务对应的第二实例数据;
根据所述第二实例数据确定所述第二访问请求对应第二服务器;
将所述第二访问请求发送到所述第二服务器。
可选的,所述确定第一访问请求对应的第一服务,获取所述第一服务对应的第一实例数据,包括:
从所述第一访问请求中提取第一属性信息;
根据所述第一属性信息确定所述第一访问请求对应的第一服务;
根据所述第一属性信息查询与所述第一服务关联的至少一个第二服务;
获取所述第一服务与所述第二服务的第一服务关系数据,所述第一服务关系数据包括所述第一服务对应的第一实例数据及所述第二服务对应的第二实例数据;
将所述第一服务关系数据缓存入所述服务关系数据集。
可选的,所述从缓存的服务关系数据中查询所述第二服务对应的实例数据,包括:
获取包含所述第二服务的服务关系数据所对应的缓存有效期;
当确定当前时间在所述缓存有效期内时,从包含所述第二服务的服务关系数据中提取所述第二服务对应的实例数据。
可选的,所述将所述第一服务关系数据缓存入所述服务关系数据集,包括:
获取所述第一服务与所述第二服务之间的访问指标,所述访问指标包括:访问频次和/或访问时间;
当所述访问指标满足第一预设条件时,将所述第一服务关系数据缓存入所述服务关系数据集;
其中,所述访问频次满足第一预设条件包括:所述访问频次大于或等于第一数值;所述访问时间满足第一预设条件包括:所述访问时间与当前时间之间的时间间隔小于或等于预设时间间隔。
可选的,所述将所述第一服务关系数据缓存入所述服务关系数据集,包括:
当所述服务关系数据集中的数据条数小于预设条数,和/或所述服务关系数据集的数据量小于预设容量时,将所述第一服务关系数据缓存入所述服务关系数据集。
另一方面,本申请提供了一种访问请求处理装置,包括:
获取模块,用于确定第一访问请求对应的第一服务,获取所述第一服务对应的第一实例数据;
传输模块,用于将所述第一访问请求发送到所述第一实例数据对应的第一服务器;
查询模块,用于当所述传输模块接收到来自于所述第一服务器的访问第二服务的第二访问请求时,从缓存的服务关系数据集中查询得到所述第二服务对应的第二实例数据,所述服务关系数据集中包括与所述第一服务关联的第二服务及所述第二服务对应的第二实例数据;
确定模块,用于根据所述实例数据确定所述第二访问请求对应第二服务器;
所述传输模块,用于将所述第二访问请求发送到所述第二服务器。
可选的,所述获取模块,用于从所述第一访问请求中提取所述第一属性信息;根据所述第一属性信息确定所述第一访问请求对应的第一服务;根据所述第一属性信息查询与所述第一服务关联的至少一个第二服务;获取所述第一服务与所述第二服务的第一服务关系数据,所述第一服务关系数据包括所述第一服务对应的第一实例数据及所述第二服务对应的第二实例数据;将所述第一服务关系数据缓存入所述服务关系数据集。
另一方面,本申请提供了一种访问请求处理***,包括:负载均衡装置、服务关系存储装置及服务中心;
所述服务关系存储装置,用于存储关联服务之间的服务关系数据;
所述服务中心,用于存储服务对应的实例数据;
所述负载均衡装置,用于接收对第一服务的第一访问请求;从所述第一访问请求中提取第一属性信息;在所述服务关系存储装置中,根据所述第一属性信息查询与所述第一服务关联的至少一个第二服务;从所述服务中心中,查询所述第一服务与第二服务的第一服务关系数据,所述第一服务关系数据包括所述第一服务对应的第一实例数据及所述第二服务对应的第二实例数据;将所述第一服务关系数据缓存入所述服务关系数据集;
所述负载均衡装置,还用于确定第一访问请求对应的第一服务,从所述服务关系数据集中查询所述第一服务对应的第一实例数据;将所述第一访问请求发送到所述第一实例数据对应的第一服务器;访问请求当接收到来自于所述第一服务器的访问第二服务的第二访问请求时,从所述服务关系数据集中查询得到所述第二服务对应的第二实例数据;根据所述第二实例数据确定所述第二访问请求对应第二服务器;将所述第二访问请求发送到所述第二服务器。
根据本申请实施例的另一个方面,提供了一种电子设备,包括:处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
所述存储器,用于存放计算机程序;
所述处理器,用于执行计算机程序时,实现上述方法步骤。
根据本申请实施例的另一个方面,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述方法步骤。
本申请实施例提供的上述技术方案与现有技术相比具有如下优点:
本实施例通过预先缓存服务关系数据,当关联服务被调用时,从缓存的服务关系数据中查询关联服务的实例数据,直接将访问请求转发至该实例数据对应的服务器上。这样,无需每次访问请求时都去服务中心获取服务对应的实例数据,可以大大减少负载均衡装置与服务中心之间的通信次数,降低服务调用请求的处理时延,提高服务调用的及时性。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种访问请求处理方法的流程图;
图2为本申请另一实施例提供的一种访问请求处理方法的流程图;
图3为本申请另一实施例提供的一种访问请求处理方法的流程图;
图4为本申请另一实施例提供的一种访问请求处理方法的流程图;
图5为本申请另一实施例提供的一种访问请求处理方法的交互流程图;
图6为本申请实施例提供的一种访问请求处理装置的框图;
图7为本申请实施例提供的一种访问请求处理***的框图;
图8为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
对于提供多种服务的服务器集群,服务之间存在依赖调用关系,例如购物应用的商品购买服务会调用交易支付服务,等等。本申请以下实施例中,将存在依赖调用关系的服务称之为关联服务。
本实施例中,将与用户请求的服务关联的其他服务的实例数据加载到缓存中,这样,当需要访问其他服务时,就可直接从缓存中查找到该服务的实例数据,进而访问相应的服务器,这样,提高负载均衡装置的缓存命中率,大大减少负载均衡装置与服务中心之间的通信次数,降低服务调用请求的处理时延,提高服务调用的及时性。
另外,为了保证缓存一致性,负载均衡装置与服务中心之间需要直接通信,若内存总忙于对服务实例数据的缓存事务,需要通信的其他缓存就必须等待服务实例数据缓存通信(更新访问)之后才能通信,这时会产生缓存抖动,降低整个服务器集群的性能。而本申请实施例的方案,减少了负载均衡装置与服务中心之间的通信次数,降低内存对实例数据的缓存压力,从而避免缓存抖动的问题,提高整个服务器集群的性能。
其中,实例数据(Instance)包括:真正提供对外服务的服务器(Real Server,RS)的服务器地址,在服务器集群中,提供相同对外服务的服务器可以有多个,因此,服务对应的实例数据中可能包括多个服务器地址。
下面首先对本申请实施例的访问请求处理方法进行详细说明。
图1为本申请实施例提供的一种访问请求处理方法的流程图。如图1所示,该方法应用于负载均衡装置,包括以下步骤:
步骤S11,确定第一访问请求对应的第一服务,获取第一服务对应的第一实例数据。
其中,第一访问请求(RequestA)中包含第一服务(服务A)对应的第一属性信息,如域名、路径等信息,基于这些信息,负载均衡装置可以识别到服务A。
在识别到服务A后,可选的,若负载均衡装置本身已经缓存了服务A的实例数据(InstanceA),则可直接从本地缓存获取服务A的InstanceA。若第一次接收对服务A的访问请求,负载均衡装置本身并未缓存InstanceA,则可向服务中心请求InstanceA,或者向服务关系存储装置查询服务A的关联服务,再从服务中心获取服务A及其关联服务的实例数据。其中,InstanceA中包含真正提供服务A的服务器地址。
步骤S12,将第一访问请求发送到第一实例数据对应的第一服务器。
该步骤中,根据InstanceA可以确定服务A对应的第一服务器(RSA)地址,从而将RequestA发送到RSA。
步骤S13,当接收到来自于第一服务器的访问第二服务的第二访问请求时,从缓存的服务关系数据集中查询得到第二服务对应的第二实例数据,服务关系数据集中包括与第一服务关联的第二服务及第二服务对应的第二实例数据。
由于服务之间存在依赖调用关系,在服务A被使用过程中,若需要调用第二服务(服务B)时,RS1会将对服务B的第二访问请求(Request2)发送到负载均衡装置,则负载均衡装置查询本地缓存的服务关系数据集,由于服务关系数据集中预先存储了第一服务关联的其他服务的实例数据,因此,可以从服务关系数据集中查到服务B对应的第二实例数据(Instance2)。
步骤S14,根据第二实例数据确定第二访问请求对应第二服务器。
Instance2中包含真正提供服务B的服务器地址,因此,基于Instance2可确定Request2对应RSB。
步骤S15,将第二访问请求发送到第二服务器。
上述步骤S11至步骤S15,通过预先缓存服务关系数据,当关联服务被调用时,从缓存的服务关系数据中查询关联服务的实例数据,直接将访问请求转发至该实例数据对应的服务器上。这样,无需每次访问请求时都去服务中心获取服务对应的实例数据,提高负载均衡装置的缓存命中率,大大减少负载均衡装置与服务中心之间的通信次数,降低服务调用请求的处理时延,提高服务调用的及时性。同时,减少了负载均衡装置与服务中心之间的通信次数,降低内存对实例数据的缓存压力,从而避免缓存抖动的问题,提高整个服务器集群的性能。
图2为本申请另一实施例提供的一种访问请求处理方法的流程图。如图2所示,负载均衡装置中并未缓存第一服务的实例数据,则上述步骤S11,包括以下步骤:
步骤S21,从第一访问请求中提取第一属性信息。
其中,第一属性信息包括以下至少一项:域名、路径、请求头和查询参数。路径指的是资源的相对路径Path。
在步骤S21中,可以使用req对象来处理第一访问请求,如通过req.host,可获得第一访问请求中的域名(Host);通过req.path,可以获得第一访问请求中的路径,如URI;通过req.header,可以获得第一访问请求中的请求头;通过req.query,可以获得第一访问请求中的查询参数。
例如,对于第一访问请求中的请求路径“http://test.com/location”,域名(Host)为“test.com”;路径可以为“/location”。
又例如,若请求路径为“http://test.com/video/fun”,则路径可以为“/vi deo/fun”。
步骤S22,根据第一属性信息确定第一访问请求对应的第一服务。
步骤S23,根据第一属性信息查询与第一服务关联的至少一个第二服务。
步骤S24,获取第一服务与第二服务的第一服务关系数据,第一服务关系数据包括第一服务对应的第一实例数据及第二服务对应的第二实例数据。
步骤S25,将第一服务关系数据缓存入服务关系数据集。
上述步骤S21至S25,负载均衡服务器根据从访问请求中提取的信息来确定所需访问的服务A,根据服务A的属性信息从服务关系存储装置查询与服务A关联的服务B、C,再从服务中心查询服务A、B、C的实例数据,将包含服务A、B、C之间关联关系及其实例数据的服务关系数据存储到负载均衡服务器本地的服务关系数据集中。这样,负载均衡装置在获取服务A的实例数据的同时,也获取服务A关联的服务B、C的实例数据,在服务A被使用过程中调用服务B、C,则负载均衡装置可以直接从已缓存的服务关系数据集中查询得到服务B、C的实例数据,进而可以访问服务B、C对应的服务器。
在可选实施例中,当第二服务被调用时,也可以将第二服务与其他服务的服务关系数据进行缓存。图3为本申请另一实施例提供的一种访问请求处理方法的流程图。如图3所示,该方法还包括:
步骤S41,获取第二服务的第二属性信息;
步骤S42,根据第二属性信息查询与第二服务关联的第三服务;
步骤S43,当从服务关系数据集中未查询到包含第三服务的服务关系数据时,获取第二服务与第三服务的第二服务关系数据;
步骤S44,将第二服务关系数据缓存入服务关系数据集。
例如,负载均衡装置从服务关系存储装置查询与服务B关联的服务C、D、E,其中,服务C的实例数据已经存储在服务关系数据集中,而服务D、E的实例数据并不在服务关系数据集中。因此,负载均衡装置可以不再次从服务中心获取服务C的实例数据,仅从服务中心获取服务D、E的实例数据。
通过上述步骤S41至步骤S44,负载均衡装置每次接收到访问请求时,都可将当前请求服务相关联的其他服务的实例数据进行缓存,这样,当需要调用其他服务时,就可直接从缓存中查找到该服务的实例数据,进而访问相应的服务器,这样,提高负载均衡装置的缓存命中率,大大减少负载均衡装置与服务中心之间的通信次数,降低服务调用请求的处理时延,提高服务调用的及时性;并且降低内存对实例数据的缓存压力,从而避免缓存抖动的问题,提高整个服务器集群的性能。另外,在获取服务的实例数据时,对于已经缓存的服务实例数据,不再获取,避免负载均衡装置获取并存储重复数据,降低对负载均衡装置资源的占用。
在可选实施例中,服务的实例数据中可能包括多个服务器地址,负载均衡装置可以从中随机选择一个服务器地址,访问该服务器地址对应的服务器。但是,提供服务的各服务器性能存在差别,能够接受服务请求的数量也不同,为了实现基于服务器性能的负载均衡,在实例数据中增加每个服务器地址对应的权重。图4为本申请另一实施例提供的一种访问请求处理方法的流程图,如图4所示,上述步骤S14包括以下步骤:
步骤S51,获取第二实例数据中的至少两个服务器地址及服务器地址对应的权重;
步骤S52,根据权重确定第二访问请求对应的第一服务器地址;
步骤S53,将第一服务器地址对应的服务器确定为第二服务器。
例如,服务B对应的第二实例数据中,包含了两个服务器地址IP:PORT及每个服务器地址的权重WEIGHT:10.10.1.1:80:100,10.10.1.2:80:200,即第一服务器地址10.10.1.1:80的权重为100,第二服务器地址10.10.1.2:80的权重为200。基于权重,可以限定每个服务器地址对应服务器RSB1和RSB2接受请求的个数,若有90个访问请求,则30个的访问请求被转发到RSB1,60个访问请求被转发到RSB2。
具体地,可以按照访问时间对第二服务所对应的访问请求进行排序,如第1个访问请求将被转发至RSB1,第2、3个访问请求将被转发至RSB2;或者第1~10个访问请求将被转发至RSB1,第11~30个访问请求将被转发至RSB2;等等。基于权重确定访问请求对应服务器的方式并不限于此,还可以有许多其他方法,在此不再赘述。
上述步骤S51至步骤S53,基于实例数据中各服务地址对应的权重来确定访问请求对应的服务器,通过权重,可以限定每个服务器接受请求的数量,保证服务器性能的稳定性,也提高服务器提供服务的稳定性和可靠性。
在可选实施例中,上述步骤S15包括:获取包含所述第二服务的服务关系数据所对应的缓存有效期;当确定当前时间在所述缓存有效期内时,从包含所述第二服务的服务关系数据中提取所述第二服务对应的实例数据。其中,为服务关系数据设置缓存有效期,如1分钟,若在1分钟内,负载均衡装置可以命中到该第二服务的实例数据,若超过1分钟,负载均衡装置需要再次获取第二服务对应的实例数据。这样,首先保证服务关系数据在负载均衡装置上缓存一段时间,以保证在该时间内负载均衡装置可以直接命中其中的实例数据,降低服务请求的处理时延,提高缓存命中率;其次,避免负载均衡装置长时间存储服务关系数据对资源的过度占用。
在可选实施例中,为了避免负载均衡装置的资源,如内存资源被过多占用,可对实例数据进行筛选,确定哪些实例数据需要被缓存。上述步骤S15包括:
步骤A1,获取第一服务与第二服务之间的访问指标,访问指标包括:访问频次和/或访问时间。
步骤A2,当访问指标满足第一预设条件时,将第一服务关系数据缓存入服务关系数据集。
具体地,可由负载均衡装置实时统计各服务之间的访问频次和访问时间。如在每次接收到各服务之间的访问请求时,都记录下本次访问请求的相关信息,如访问方服务、被访问服务及访问时间等等,以便后续对访问指标的统计。其中,访问频次满足第一预设条件包括:访问频次大于或等于第一数值.访问时间满足第一预设条件包括:访问时间与当前时间之间的时间间隔小于或等于预设时间间隔。
可选的,上述步骤A1中的访问指标,可以由服务关系存储状态进行统计,在反馈服务关系时,一并将服务之间的访问指标反馈给负载均衡装置。负载均衡装置无需存储访问频次较低,或者上一次访问时间比较久的实例数据。这样,可以减少负载均衡装置缓存的数据量,降低其资源占用,保证负载均衡装置性能的稳定。
在另一可选实施例中,负载均衡装置还可以基于其能够缓存的数据条数或数据量来确定是否缓存实例数据。上述步骤S15包括:当服务关系数据集中的数据条数小于预设条数,和/或服务关系数据集的数据量小于预设容量时,将第一服务关系数据缓存入服务关系数据集。
为保证负载均衡装置的正常运行,负载均衡装置可设置缓存实例数据的最大条数和/或最大缓存容量,在缓存实例数据时,不能超出最大条数和/或最大缓存容量,从而,可以控制负载均衡装置缓存的数据量,避免其资源被过度占用,保证负载均衡装置性能的稳定。
下面以一个具体实例对本申请上述方法进行详细说明。
图5为本申请另一实施例提供的一种访问请求处理方法的交互流程图,如图5所示,该方法包括以下步骤:
步骤S701,负载均衡装置接收到第一访问请求RequestA;
步骤S702,负载均衡装置通过RequestA的属性信息识别其所需访问的服务A;
步骤S703,负载均衡装置向服务关系存储装置发送服务查询请求Search1,来查询服务A的关联服务;
步骤S704,服务关系存储装置根据服务查询请求,查询到服务A的关联服务列表,关联服务列表中包括服务B、C;
步骤S705,服务关系存储装置将关联服务列表反馈给负载均衡装置;
步骤S706,负载均衡装置向服务中心发送实例查询请求,查询服务A、B、C对应的实例数据;
步骤S707,服务中心将查询到的服务A、B、C对应的实例数据InstanceA、InstanceB、InstanceC反馈给负载均衡装置;
步骤S708,负载均衡装置缓存服务A、B、C的实例数据InstanceA、InstanceB、InstanceC;
步骤S709,负载均衡装置将RequestA发送到InstanceA对应的服务器RSA;
步骤S710,服务器RSA在提供服务A的过程中确定需要调用服务B;
步骤S711,服务器RSA发送第二访问请求RequestB到负载均衡装置;
步骤S712,负载均衡装置命中缓存的服务B的实例数据InstanceB;
步骤S713,负载均衡装置将RequestB发送到InstanceB对应的服务器RSB;
步骤S714,服务器RSB在提供服务B的过程中确定需要调用服务C;
步骤S715,服务器RSB发送第二访问请求RequestC到负载均衡装置;
步骤S716,负载均衡装置命中缓存的服务C的实例数据InstanceC;
步骤S717,负载均衡装置将RequestC发送到InstanceC对应的服务器RSC。
举例来说,在上述实施例中的服务A可以为商品列表服务,服务B是订单服务,服务C是库存服务。通过服务A向用户展示商品,通过服务B下单,下单前要去通过服务C查询库存是否可以下单。
在上述具体实例中,当接收到对负载均衡集群中一个服务的访问请求时,将该服务及其关联服务对应的实例数据均缓存到负载均衡装置本地,这样,当关联服务被调用时,从缓存的服务关系数据中查询关联服务的实例数据,直接将访问请求转发至该实例数据对应的服务器上。从而无需每次访问请求时都去服务中心获取服务对应的实例数据,提高负载均衡装置的缓存命中率,大大减少负载均衡装置与服务中心之间的通信次数,降低服务调用请求的处理时延,提高服务调用的及时性。同时,减少了负载均衡装置与服务中心之间的通信次数,降低内存对实例数据的缓存压力,从而避免缓存抖动的问题,提高整个服务器集群的性能。
下述为本申请装置实施例,可以用于执行本申请方法实施例。
图6为本申请实施例提供的一种访问请求处理装置的框图,该装置可以通过软件、硬件或者两者的结合实现成为电子设备的部分或者全部。如图6所示,该访问请求处理装置应用于负载均衡装置,包括:
获取模块81,用于确定第一访问请求对应的第一服务,获取第一服务对应的第一实例数据;
传输模块82,用于将第一访问请求发送到第一实例数据对应的第一服务器;
查询模块83,用于当传输模块接收到来自于第一服务器的对第二服务的第二访问请求时,从缓存的服务关系数据集中查询得到第二服务对应的第二实例数据,服务关系数据集中包括与第一服务关联的第二服务及第二服务对应的第二实例数据;
确定模块84,用于根据实例数据确定第二访问请求对应第二服务器;
传输模块82,用于将第二访问请求发送到第二服务器。
可选的,获取模块81,用于从所述第一访问请求中提取所述第一属性信息;根据所述第一属性信息确定所述第一访问请求对应的第一服务;根据所述第一属性信息查询与所述第一服务关联的至少一个第二服务;获取所述第一服务与所述第二服务的第一服务关系数据,所述第一服务关系数据包括所述第一服务对应的第一实例数据及所述第二服务对应的第二实例数据;将所述第一服务关系数据缓存入所述服务关系数据集。
图7为本申请实施例提供的一种访问请求处理***的框图,如图7所示,该***包括:负载均衡装置101、服务关系存储装置102及服务中心103;
服务关系存储装置102,用于存储关联服务之间的服务关系数据;
服务中心103,用于存储服务对应的实例数据;
负载均衡装置101,用于接收对第一服务的第一访问请求;从第一访问请求中提取第一属性信息;在服务关系存储装置102中,根据第一属性信息查询与第一服务关联的至少一个第二服务;从服务中心103中,查询第一服务与第二服务的第一服务关系数据,第一服务关系数据包括所述第一服务对应的第一实例数据及所述第二服务对应的第二实例数据;将第一服务关系数据缓存入服务关系数据集;
负载均衡装置101,还用于确定第一访问请求对应的第一服务,从服务关系数据集中查询第一服务对应的第一实例数据;将第一访问请求发送到第一实例数据对应的第一服务器104a;访问请求当接收到来自于第一服务器104a的访问第二服务的第二访问请求时,从服务关系数据集中查询得到第二服务对应的第二实例数据;根据第二实例数据确定第二访问请求对应第二服务器104b;将第二访问请求发送到第二服务器104b。
可选的,负载均衡装置101,用于获取第一服务与第二服务之间的访问指标,访问指标包括:访问频次和/或访问时间;当访问指标满足第一预设条件时,将第一服务关系数据缓存入服务关系数据集。
可选的,服务关系存储装置102,还可用于从负载均衡装置101获取第一服务与第二服务之间的访问指标,访问指标包括:访问频次和/或访问时间;当访问指标满足第一预设条件时,将第一服务关系数据发送至负载均衡装置101。在可选实施例中,由负载均衡装置101统计第一服务与所述第二服务之间的访问指标,基于访问指标对服务关系数据中实例数据进行筛选,无需存储访问频次较低,或者上一次访问时间比较久的实例数据。或者,也可以由服务关系存储装置102直接基于访问指标筛选反馈给负载均衡装置101的服务列表,删除存储访问频次较低,或者上一次访问时间比较久的服务。这样,能够减少负载均衡装置缓存的数据量,降低其资源占用,保证负载均衡装置性能的稳定。
在该***中,可以存着多个负载均衡装置,每个负载均衡装置均可实现上述实施例的功能。
本申请实施例还提供一种电子设备,如图8所示,电子设备可以包括:处理器1501、通信接口1502、存储器1503和通信总线1504,其中,处理器1501,通信接口1502,存储器1503通过通信总线1504完成相互间的通信。
存储器1503,用于存放计算机程序;
处理器1501,用于执行存储器1503上所存放的计算机程序时,实现以下上述方法实施例的步骤。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,P C I)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
本申请还提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述方法实施例的步骤。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。
Claims (7)
1.一种访问请求处理方法,其特征在于,包括:
确定第一访问请求对应的第一服务,获取所述第一服务对应的第一实例数据;
将所述第一访问请求发送到所述第一实例数据对应的第一服务器;
当接收到来自于所述第一服务器的访问第二服务的第二访问请求时,从缓存的服务关系数据集中查询得到所述第二服务对应的第二实例数据,所述服务关系数据集中包括与所述第一服务关联的第二服务及所述第二服务对应的第二实例数据;
根据所述第二实例数据确定所述第二访问请求对应第二服务器;
将所述第二访问请求发送到所述第二服务器;
所述确定第一访问请求对应的第一服务,获取所述第一服务对应的第一实例数据,包括:
从所述第一访问请求中提取第一属性信息;
根据所述第一属性信息确定所述第一访问请求对应的第一服务;
根据所述第一属性信息查询与所述第一服务关联的至少一个第二服务;
获取所述第一服务与所述第二服务的第一服务关系数据,所述第一服务关系数据包括所述第一服务对应的第一实例数据及所述第二服务对应的第二实例数据;
将所述第一服务关系数据缓存入所述服务关系数据集;
所述将所述第一服务关系数据缓存入所述服务关系数据集,包括:
获取所述第一服务与所述第二服务之间的访问指标,所述访问指标包括:访问频次和/或访问时间;
当所述访问指标满足第一预设条件时,将所述第一服务关系数据缓存入所述服务关系数据集;
其中,所述访问频次满足第一预设条件包括:所述访问频次大于或等于第一数值;所述访问时间满足第一预设条件包括:所述访问时间与当前时间之间的时间间隔小于或等于预设时间间隔。
2.根据权利要求1所述的方法,其特征在于,所述从缓存的服务关系数据中查询所述第二服务对应的实例数据,包括:
获取包含所述第二服务的服务关系数据所对应的缓存有效期;
当确定当前时间在所述缓存有效期内时,从包含所述第二服务的服务关系数据中提取所述第二服务对应的实例数据。
3.根据权利要求1所述的方法,其特征在于,所述将所述第一服务关系数据缓存入所述服务关系数据集,包括:
当所述服务关系数据集中的数据条数小于预设条数,和/或所述服务关系数据集的数据量小于预设容量时,将所述第一服务关系数据缓存入所述服务关系数据集。
4.一种访问请求处理装置,其特征在于,包括:
获取模块,用于确定第一访问请求对应的第一服务,获取所述第一服务对应的第一实例数据;
传输模块,用于将所述第一访问请求发送到所述第一实例数据对应的第一服务器;
查询模块,用于当所述传输模块接收到来自于所述第一服务器的访问第二服务的第二访问请求时,从缓存的服务关系数据集中查询得到所述第二服务对应的第二实例数据,所述服务关系数据集中包括与所述第一服务关联的第二服务及所述第二服务对应的第二实例数据;
确定模块,用于根据所述实例数据确定所述第二访问请求对应第二服务器;
所述传输模块,用于将所述第二访问请求发送到所述第二服务器;
所述获取模块,用于从所述第一访问请求中提取第一属性信息;根据所述第一属性信息确定所述第一访问请求对应的第一服务;根据所述第一属性信息查询与所述第一服务关联的至少一个第二服务;获取所述第一服务与所述第二服务的第一服务关系数据,所述第一服务关系数据包括所述第一服务对应的第一实例数据及所述第二服务对应的第二实例数据;将所述第一服务关系数据缓存入所述服务关系数据集;
所述获取模块,还用于获取所述第一服务与所述第二服务之间的访问指标,所述访问指标包括:访问频次和/或访问时间;当所述访问指标满足第一预设条件时,将所述第一服务关系数据缓存入所述服务关系数据集;其中,所述访问频次满足第一预设条件包括:所述访问频次大于或等于第一数值;所述访问时间满足第一预设条件包括:所述访问时间与当前时间之间的时间间隔小于或等于预设时间间隔。
5.一种访问请求处理***,其特征在于,包括:负载均衡装置、服务关系存储装置及服务中心;
所述服务关系存储装置,用于存储关联服务之间的服务关系数据;
所述服务中心,用于存储服务对应的实例数据;
所述负载均衡装置,用于接收对第一服务的第一访问请求;从所述第一访问请求中提取第一属性信息;在所述服务关系存储装置中,根据所述第一属性信息查询与所述第一服务关联的第二服务;从所述服务中心中,查询所述第一服务与第二服务的第一服务关系数据,所述第一服务关系数据包括所述第一服务对应的第一实例数据及所述第二服务对应的第二实例数据;将所述第一服务关系数据缓存入服务关系数据集;
所述负载均衡装置,还用于确定第一访问请求对应的第一服务,从所述服务关系数据集中查询所述第一服务对应的第一实例数据;将所述第一访问请求发送到所述第一实例数据对应的第一服务器;访问请求当接收到来自于所述第一服务器的访问第二服务的第二访问请求时,从所述服务关系数据集中查询得到所述第二服务对应的第二实例数据;根据所述第二实例数据确定所述第二访问请求对应第二服务器;将所述第二访问请求发送到所述第二服务器;
所述负载均衡装置,还用于获取所述第一服务与所述第二服务之间的访问指标,所述访问指标包括:访问频次和/或访问时间;当所述访问指标满足第一预设条件时,将所述第一服务关系数据缓存入所述服务关系数据集;其中,所述访问频次满足第一预设条件包括:所述访问频次大于或等于第一数值;所述访问时间满足第一预设条件包括:所述访问时间与当前时间之间的时间间隔小于或等于预设时间间隔。
6.一种电子设备,其特征在于,包括:处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
所述存储器,用于存放计算机程序;
所述处理器,用于执行所述计算机程序时,实现权利要求1-3任一项所述的方法步骤。
7.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1-3任一项所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011551989.7A CN112667396B (zh) | 2020-12-24 | 2020-12-24 | 一种访问请求处理方法、装置及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011551989.7A CN112667396B (zh) | 2020-12-24 | 2020-12-24 | 一种访问请求处理方法、装置及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112667396A CN112667396A (zh) | 2021-04-16 |
CN112667396B true CN112667396B (zh) | 2023-09-01 |
Family
ID=75409971
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011551989.7A Active CN112667396B (zh) | 2020-12-24 | 2020-12-24 | 一种访问请求处理方法、装置及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112667396B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114338769B (zh) * | 2021-12-22 | 2024-04-12 | 浙江中控技术股份有限公司 | 访问请求的处理方法及装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7616640B1 (en) * | 1998-12-02 | 2009-11-10 | Cisco Technology, Inc. | Load balancing between service component instances |
JP2011118587A (ja) * | 2009-12-02 | 2011-06-16 | Hitachi Ltd | 複数サーバによる連携サービス実行システム |
CN106998370A (zh) * | 2017-06-15 | 2017-08-01 | 北京微影时代科技有限公司 | 访问控制方法、装置以及*** |
CN110297862A (zh) * | 2019-07-04 | 2019-10-01 | 中国联合网络通信集团有限公司 | 数据库访问方法及数据库访问中间件 |
WO2020056550A1 (zh) * | 2018-09-17 | 2020-03-26 | 上海诺基亚贝尔股份有限公司 | 软件定义网络中的服务分配的设备、方法和存储介质 |
CN111212099A (zh) * | 2018-11-22 | 2020-05-29 | 青岛海信智能商用***股份有限公司 | 一种微服务管理方法及装置 |
CN111651488A (zh) * | 2020-05-29 | 2020-09-11 | 泰康保险集团股份有限公司 | 数据库的业务处理方法、装置、介质及电子设备 |
-
2020
- 2020-12-24 CN CN202011551989.7A patent/CN112667396B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7616640B1 (en) * | 1998-12-02 | 2009-11-10 | Cisco Technology, Inc. | Load balancing between service component instances |
JP2011118587A (ja) * | 2009-12-02 | 2011-06-16 | Hitachi Ltd | 複数サーバによる連携サービス実行システム |
CN106998370A (zh) * | 2017-06-15 | 2017-08-01 | 北京微影时代科技有限公司 | 访问控制方法、装置以及*** |
WO2020056550A1 (zh) * | 2018-09-17 | 2020-03-26 | 上海诺基亚贝尔股份有限公司 | 软件定义网络中的服务分配的设备、方法和存储介质 |
CN111212099A (zh) * | 2018-11-22 | 2020-05-29 | 青岛海信智能商用***股份有限公司 | 一种微服务管理方法及装置 |
CN110297862A (zh) * | 2019-07-04 | 2019-10-01 | 中国联合网络通信集团有限公司 | 数据库访问方法及数据库访问中间件 |
CN111651488A (zh) * | 2020-05-29 | 2020-09-11 | 泰康保险集团股份有限公司 | 数据库的业务处理方法、装置、介质及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN112667396A (zh) | 2021-04-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111262795B (zh) | 基于服务接口的限流方法、装置、电子设备及存储介质 | |
CN110830565B (zh) | 资源下载方法、装置、***、电子设备及存储介质 | |
CN110519183B (zh) | 一种节点限速的方法、装置、电子设备及存储介质 | |
CN105337786A (zh) | 一种服务器性能检测方法、装置及设备 | |
CN103607424B (zh) | 一种服务器连接方法及服务器*** | |
CN108647240B (zh) | 一种统计访问量的方法、装置、电子设备及存储介质 | |
CN113343088A (zh) | 数据处理方法、***、装置、设备及存储介质 | |
CN111159219B (zh) | 一种数据管理方法、装置、服务器及存储介质 | |
CN110677684B (zh) | 视频处理、视频访问方法及分布式存储、视频访问*** | |
CN109873855A (zh) | 一种基于区块链网络的资源获取方法和*** | |
CN107819632A (zh) | 一种基于性能监控***和Docker Swarm的动态负载均衡集群*** | |
CN112667396B (zh) | 一种访问请求处理方法、装置及*** | |
CN114528231A (zh) | 一种数据动态存储方法、装置、电子设备及存储介质 | |
CN114090623A (zh) | 一种缓存资源的创建方法、装置、电子设备及存储介质 | |
CN114676074A (zh) | 一种访问请求处理方法、装置、电子设备及存储介质 | |
CN114003337A (zh) | 访问请求的分配方法及装置 | |
CN116662022B (zh) | 分布式消息处理方法、***、装置、通信设备及存储介质 | |
CN107707373B (zh) | 一种基于api请求的动态资源访问加速方法 | |
CN117459536A (zh) | 资源分发方法、云服务器、装置、电子设备及存储介质 | |
CN108737493B (zh) | 一种地址分配方法、装置及电子设备 | |
CN112861031A (zh) | Cdn中url刷新方法、装置、设备以及cdn节点 | |
CN115277588B (zh) | 一种基于中台***的熔断限流*** | |
CN113873302B (zh) | 内容分发方法、装置、存储介质和电子设备 | |
CN110535853B (zh) | 一种视频请求调度方法、装置、服务器及存储介质 | |
CN114185681A (zh) | 一种自动化限流处理方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |