一种流量分发控制方法、装置、电子设备及存储介质与流程

文档序号:25584557发布日期:2021-06-22 16:52阅读:56来源:国知局
一种流量分发控制方法、装置、电子设备及存储介质与流程

本发明涉及计算机技术领域,尤其涉及一种流量分发控制方法、装置、电子设备及存储介质。



背景技术:

目前,随着业务系统的拓展,单台机器难以有效应对高并发、高可用的业务场景,需要通过在多台机器上部署多个服务实例,组成一个服务集群,把流量负载均衡到各个服务实例上。但在集群化环境里,必须通过有效的方式,来解决服务实例之间的高流量数据同步问题。现有的解决方式是通过在数据模型层建立数据库集群,来保证高流量数据之间的一致性。但是在某些复杂场景下,服务集群内的数据存储模型非常多,如果对每一种数据存储模型都建立数据库集群,不仅成本高,还会增加业务系统的横向扩展难度。可见,现有技术中,对于流量分发存在成本高、横向扩展难度大的问题。



技术实现要素:

本发明实施例提供一种流量分发控制方法,能够降低成本,并且便于横向扩展,有利于提高流量分发的响应效率。

第一方面,本发明实施例提供一种流量分发控制方法,所述方法包括以下步骤:

获取待处理数据信息,对所述待处理数据信息的数据类型进行判断;

若所述待处理数据信息的数据类型为第一数据类型,则通过请求转发服务将所述待处理数据信息转发至主节点;

当接收到所述主节点返回的第一响应信息,通过所述请求转发服务将所述待处理数据信息添加到服务器集群的请求队列中,所述服务器集群中包括多个从节点;

若请求消费服务接收到所述从节点返回的第二响应信息,则通过所述请求消费服务将所述从节点在所述请求队列中的消费偏移量作为最大消费偏移量更新到存储区中。

第二方面,本发明实施例还提供一种流量分发控制装置,包括:

判断模块,用于获取待处理数据信息,对所述待处理数据信息的数据类型进行判断;

转发模块,用于若所述待处理数据信息的数据类型为第一数据类型,则通过请求转发服务将所述待处理数据信息转发至主节点;

添加模块,用于当接收到所述主节点返回的第一响应信息,通过所述请求转发服务将所述待处理数据信息添加到服务器集群的请求队列中,所述服务器集群中包括多个从节点;

更新模块,用于若请求消费服务接收到所述从节点返回的第二响应信息,则通过所述请求消费服务将所述从节点在所述请求队列中的消费偏移量作为最大消费偏移量更新到存储区中。

第三方面,本发明实施例还提供一种电子设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现所述实施例提供的流量分发控制方法中的步骤。

第四方面,一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现所述实施例提供的流量分发控制方法中的步骤。

本发明实施例中,获取待处理数据信息,对所述待处理数据信息的数据类型进行判断;若所述待处理数据信息的数据类型为第一数据类型,则通过请求转发服务将所述待处理数据信息转发至主节点;当接收到所述主节点返回的第一响应信息,通过所述请求转发服务将所述待处理数据信息添加到服务器集群的请求队列中;若请求消费服务接收到所述从节点返回的第二响应信息,则通过所述请求消费服务将所述从节点在所述请求队列中的消费偏移量作为最大消费偏移量更新到存储区中。本发明实施例通过对获取到的待处理数据信息的数据类型进行判断,当数据类型为第一数据类型时,会通过请求转发服务将待处理数据信息转发至主节点,并接收主节点的第一响应信息,得到响应后通过请求转发服务将待处理数据信息转发至服务器集群的请求队列,当请求消费服务接收到服务器集群中从节点对待处理数据信息的第二响应信息,便可以将从节点在请求队列中的消费偏移量作为最大偏移量更新到存储区中;通过在系统中引入一个请求转发服务实现对待处理数据信息的转发,对资源进行合理化部署,控制了成本;并且引入请求消费服务,在高流量并发的情况下,将流量分发各个从节点,实现负载均衡,从而保证高并发性能,有利于提高流量分发的响应效率。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的一种流量分发控制方法的流程图;

图2是本发明实施例提供的另一种流量分发控制方法的流程图;

图3是本发明实施例提供的另一种流量分发控制方法的流程图;

图4是本发明实施例提供的另一种流量分发控制方法的流程图;

图5是本发明实施例提供的一种流量分发控制装置的结构示意图;

图6是本发明实施例提供的另一种流量分发控制装置的结构示意图;

图7是本发明实施例提供的另一种流量分发控制装置的结构示意图;

图8是本发明实施例提供的另一种流量分发控制装置的结构示意图;

图9是本发明实施例提供的另一种流量分发控制装置的结构示意图;

图10是本发明实施例提供的另一种流量分发控制装置的结构示意图;

图11是本发明实施例提供的一种电子设备的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本申请的说明书和权利要求书及附图说明中的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。本申请的说明书和权利要求书或附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。

如图1所示,图1是本发明实施例提供的一种流量分发控制方法的流程图,该流量分发控制方法包括以下步骤:

101、获取待处理数据信息,对待处理数据信息的数据类型进行判断。

在本实施例中,上述流量分发控制方法运行于其上的电子设备可以通过有线连接方式或者无线连接方式获取待处理数据信息。当用户通过移动终端发出数据请求后,可以对该数据请求进行解析,提取该请求中包含的待处理数据信息。上述无线连接方式可以包括但不限于3g/4g连接、wifi(wireless-fidelity)连接、蓝牙连接、wimax(worldwideinteroperabilityformicrowaveaccess)连接、zigbee(低功耗局域网协议,又称紫峰协议)连接、uwb(ultrawideband)连接、以及其他现在已知或将来开发的无线连接方式。

其中,待处理数据信息中可以包括但不限于查询数据、增加数据、修改数据、删除数据、统计数据等。且待处理数据信息可以是档案数据信息、图像数据信息等。待处理数据信息可以是用户通过调用方发起数据请求,对该数据请求进行解析得到的信息,系统可以根据待处理数据信息做出相应的响应,并将响应结果返回到调用方。上述调用方可以是指终端设备,该终端设备可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、电子书阅读器、播放器、膝上型便携计算机和台式计算机等等。终端设备也可以称为终端、移动终端、用户端、客户端等。

上述的待处理数据信息的数据类型可以是第一数据类型或者第二数据类型,在发出请求前,可以预设数据类型的种类包括第一数据类型与第二数据类型,并分类存储到系统中,当接收到请求时可以直接进行数据类型的比对。其中,第一数据类型可以包括对数据进行新增、修改、删除等操作的api(applicationprogramminginterface,应用程序的编程接口)请求对应的数据类型。上述的第二数据类型可以是指对数据进行查询、统计等操作的api请求对应的数据类型。对待处理数据信息的数据类型进行判断,可以对应执行不同的操作,得到与调用方发出的数据请求对应的响应结果。

102、若待处理数据信息的数据类型为第一数据类型,则通过请求转发服务将待处理数据信息转发至主节点。

其中,主节点可以是主服务器,主要用于对调用方发出的数据请求进行响应,并通过请求转发服务(ngx_lua插件)将响应后的数据返回到调用方。当提取出待处理数据信息的数据类型,将待处理数据信息的数据类型与预设在系统中的数据类型进行比较后,可以得到待处理数据信息的数据类型为预设的第一数据类型。

具体的,当判断待处理数据信息的数据类型为预设的第一数据类型后,请求转发服务会将待处理数据信息转发到主服务器,并且等待主服务器的调用接口应答,返回处理结果,该处理结果可以包括主节点对数据请求响应成功对应的信息,也可以包括响应失败对应的信息,若响应失败,则不再响应,并会通过转发代理服务返回响应失败的信息,例如:没有找到对应的数据、页面错误、当前处于繁忙状态等等。

103、当接收到主节点返回的第一响应信息,通过请求转发服务将待处理数据信息添加到服务器集群的请求队列中,服务器集群中包括多个从节点。

其中,第一响应信息可以是指主节点对待处理数据信息响应成功的信息。服务器集群可以是指将很多服务器集中起来,一起进行同一种服务,在客户端看来就像是只有一个服务器。服务器集群可以利用多个计算机进行并行计算,从而具有较高的并行速度,且还可以用多个计算机做备份,从而使得任何一个机器坏了,整个系统还是能正常运行。上述服务器集群中的多个服务器可以指上述的从节点。上述服务器集群可以是kafka集群,kafka集群是一个分布式消息系统,具有高水平扩展和高吞吐量的特点。在kafka集群中,所有的节点都是对等的。

上述的从节点相对于上述主服务器而言,可以是从服务器,从服务器可以用于对加载到请求队列中的待处理数据信息进行处理的节点,例如:调用方发出的数据请求中,需要增加数据请求中包括的数据信息,从服务器则可以将数据请求的数据信息加载到系统中的数据库或者其他存储区中。上述从服务器的数量可以是预先设置多个,且可以根据需求进行调整,在本发明实施例中,对从节点的数据不做具体限定。

上述的请求队列可以是指需要排队等待上述从节点进行响应的队列,在请求队列中可以暂存有多个数据请求对应的待处理数据信息,且请求队列可以是一个先进先出的队列。将待处理数据信息依次放入请求队列中等待上述从节点处理,可以让响应有序进行,使得资源合理规划,提高服务的稳定性。请求队列可以是kafka队列,kafka中可将消息分类,每一类的消息称为一个topic,消费者可以对不同的topic进行不同的处理。

具体的,若待处理数据信息的数据类型为第一数据类型,主节点会对该待处理数据信息进行响应,响应成功便会反馈第一响应信息到请求转发服务。若请求转发服务接收到第一响应信息,便会将待处理数据信息转发到服务器集群的请求队列中,等待服务器集群中的从节点对待处理数据信息进行响应,并返回第二响应信息到请求消费服务,其中,第二响应信息可以表示从节点对待处理数据信息响应成功的信息,请求消费服务可以用于接收从节点的响应以及获取从节点的消费偏移量。

104、若请求消费服务接收到从节点返回的第二响应信息,则通过请求消费服务将从节点在请求队列中的消费偏移量作为最大消费偏移量更新到存储区中。

其中,消费偏移量可以是指待处理数据信息在请求队列中的序号,因在请求队列中,当前被响应的待处理数据信息的消费偏移量总是序号最大的消费偏移量,例如:与a从节点对应的a待处理数据信息在请求队列中的序号为10,则在请求队列中,位于a待处理数据信息前一个数据信息的序号为9。因此,每次有新的数据请求进入等待队列,得到对应的从节点响应后,都会产生一个消费偏移量,每次得到的消费偏移量都可以最为当前的最大消费偏移量。

上述的存储区可以是指一个redis集群,redis是一个高性能的key-value数据库。当请求消费服务接收到从节点返回的第二响应信息,便会对待处理数据信息在请求队列中的消费偏移量进行提取,并将提取出来的消费偏移量最为最大消费偏移量,对存储在存储区中的最大偏移量进行更新。当然,若没有接收到从节点对上述待处理数据信息的第二响应信息,则会重新等待服务器集群中的从节点对待处理数据信息进行响应。

本发明实施例中,通过对获取到的待处理数据信息的数据类型进行判断,当数据类型为第一数据类型时,会通过请求转发服务将待处理数据信息转发至主节点,并接收主节点的第一响应信息,得到响应后通过请求转发服务将待处理数据信息转发至服务器集群的请求队列,当请求消费服务接收到服务器集群中从节点对待处理数据信息的第二响应信息,便可以将从节点在请求队列中的消费偏移量作为最大偏移量更新到存储区中;通过在系统中引入一个请求转发服务实现对待处理数据信息的转发,对资源进行合理化部署,控制了成本;并且引入请求消费服务,在高流量并发的情况下,将流量分发各个从节点,实现负载均衡,从而保证高并发性能,有利于提高流量分发的响应效率。

如图2所示,图2是本发明实施例提供的另一种方法流程图,包括以下步骤:

201、获取待处理数据信息。

202、判断待处理数据信息的数据类型是否为第一数据类型。

203、若待处理数据信息的数据类型为第一数据类型,则通过请求转发服务将待处理数据信息转发至主节点。

204、当接收到主节点返回的第一响应信息,则通过请求转发服务将待处理数据信息添加到服务器集群的请求队列中,服务器集群中包括多个从节点。

205、若请求消费服务接收到从节点返回的第二响应信息,则通过请求消费服务将从节点在请求队列中的消费偏移量作为最大消费偏移量更新到存储区中。

206、若是,则通过请求转发服务获取存储区中的最大偏移量以及从节点的消费偏移量,并判断从节点的消费偏移量是否等于存储区中的最大偏移量。

其中,上述判断待处理数据信息的数据类型为第二数据类型表示对应的数据请求是对存储区中的数据进行提取,例如:执行查询操作、统计操作等。并且在存储区中,存储有多个从节点对应的消费偏移量以及更新进来的最大偏移量,若有n个从节点,则存储区中与从节点对应的消费偏移量也有n个,且存储区中还包括一个最大偏移量。因此,存储区中总的消费偏移量的数量为n+1个。可以向存储区发出关于获取最大数据偏移量以及所有从节点的消费偏移量的请求,当存储区对该请求进行响应后,会返回存储区中的最大数据偏移量以及所有从节点的消费偏移量。在请求消费服务中可以依次判断各个从节点的消费偏移量是否等于最大偏移量。

207、若从节点的消费偏移量等于存储区中的最大偏移量,则把从节点作为目标从节点,将数据类型为第二数据类型的待处理数据信息转发至目标从节点,并对目标从节点返回的处理结果转发至调用方。

其中,将最大数据偏移量与所有从节点的消费偏移量依次进行比较,判断出所有的从节点的消费偏移量中有一个或者多个等于最大偏移量时,可以选取出消费偏移量等于上述最大偏移量的从节点作为目标从节点。目标从节点可以表示作为接收第二数据类型的待处理数据信息的节点,且该目标从节点可以对上述的第二数据类型的待处理数据信息进行响应,例如:待处理数据信息为统计b数据的数据量,则请求消费服务会将包含有统计b数据的数据量的数据请求转发到目标从节点h,目标从节点h会对系统中b数据的数据量进行统计,并将包含有b数据的数据量的统计结果返回到请求消费服务。

当请求消费服务接收到目标从节点返回的处理结果后,可以将该处理结果转发到调用方,以响应调用方发出的数据请求,例如:数据请求中请求查询系统与数据c相似度达到90%的数据,则从节点查询到相似度达到90%的数据之后将其作为查询结果返回给调用方;或者数据请求中请求统计系统数据c的数据量,则从节点将数据c的数据量进行统计,且数据量为2万,则数据量为2万将会作为统计结果返回给调用方。

可选的,上述步骤207的步骤包括:

通过请求转发服务将待处理数据信息转发至目标从节点;接收目标从节点返回的处理结果,通过请求转发服务将处理结果转发至调用方。

作为一种可能的实施例方式,查找目标从节点时,需要对所有从节点的消费偏移量与最大偏移量进行依次比较,这个过程中可能会产生多个消费偏移量等于最大偏移量的从节点。而所有的从节点都在执行同一种服务,因此,在选取到满足消费偏移量等于存储区中的最大偏移量的从节点后,可能会有多个从节点的消费偏移量均满足存储区中的最大偏移量,此时只需要从中任意选取一个从节点作为目标从节点,对待处理数据信息进行响应即可。可以不用让消费偏移量等于最大偏移量的所有从节点都对待处理数据信息进行响应,实现资源的有效利用,降低系统的数据计算量。

具体的,在确定好目标从节点后,可以通过请求转发服务将待处理数据信息转发至上述选取出的目标从节点,等待该目标从节点对待处理数据信息进行数据处理,并接收目标从节点返回的处理结果,基于请求转发服务将该处理结果返回到调用方,以响应调用方发出的数据请求。

在本发明实施例中,通过获取待处理数据信息,对待处理数据信息的数据类型进行判断,当判断出数据类型为第二数据类型时,会对存储区中的最大偏移量以及所有从节点的消费偏移量进行提取,并判断所有的从节点的消费偏移量中,是否有等于最大偏移量的消费偏移量,若有,则选取所有从节点中,第一个消费偏移量等于最大消费偏移量的从节点作为目标从节点,通过请求消费服务将待处理数据信息转发至该目标从节点,通过目标从节点对待处理数据信息进行响应,并返回处理结果到请求消费服务,将处理结果转发到调用方。通过在系统中引入一个请求转发服务实现对待处理数据信息的转发,对资源进行合理化部署,控制了成本;并且引入请求消费服务,在高流量并发的情况下,将流量分发至多个节点,实现负载均衡,从而保证高并发性能,有利于提高流量分发的响应效率;而且,当数据类型为第二数据类型时,只需要从众多的从节点中选取一个从节点作为目标从节点对待处理数据信息进行处理,无需调用每个从节点对待处理数据信息进行处理,可以降低系统的数据计算量,合理利用资源。

如图3所示,图3为本发明实施提供的另一种流量分发控制方法的流程图,具体包括以下步骤:

301、获取待处理数据信息,将待处理数据信息均衡到多个预处理节点。

其中,获取待处理数据信息可以是通过nginx服务器获取,上述的预处理节点可以是nginx服务器中部署的各个nginx节点。nginx(enginex)是一个高性能的http和反向代理web服务器,同时也提供了imap/pop3/smtp服务,其占有内存少,并发能力强,上述各个nginx节点也可以是多个服务器。在nginx服务器中可以配置有备用服务主节点,且nginx服务器中有服务主节点以及多个服务从节点。可以通过服务主节点将待处理数据信息分发到各个服务从节点,若服务主节点出现宕机的情况下,可以自动切换到备用服务主节点,从而保证系统的高可用性。

上述主要以虚拟路由冗余协议(virtualrouterredundancyprotocol,vrrp)协议为实现基础,采用keepalived检测nginx(web)服务器的状态,如果有任何一台web服务器死机,或工作出现故障,keepalived将会检测到,并将有故障的web服务器从系统中剔除。当web服务器工作正常后keepalived自动将web服务器加入到服务器群中。上述这些操作都是自动完成,不需要人工干涉。

通过nginx服务器接收到调用方发出的数据请求后,可以获取数据请求中的待处理数据信息,将待处理数据信息均衡到各个nginx节点上,各个nginx节点针对均衡到自身的待处理数据信息进行解析,获取待处理数据信息中包含的数据类型、处理内容、处理对象等信息。

302、通过预处理节点对待处理数据信息进行预处理,以得到待处理数据信息的数据类型。

其中,通过上述的预处理,可以提取出待处理数据信息中的数据类型,该数据类型可以是第一数据类型,也可以是第二数据类型。若为第一数据类型,则可以对系统进行数据添加,或者对系统中的数据进行修改、替换、删除等操作,若为第二数据类型,则可以对系统中的数据进行查询、比对、统计等操作。提取出数据类型后,可以将待处理数据信息发送到请求转发服务,请求转发服务可以根据数据类型将待处理数据信息进行转发。

303、若待处理数据信息的数据类型为第一数据类型,则通过请求转发服务将待处理数据信息转发至主节点。

304、当接收到主节点返回的第一响应信息,通过请求转发服务将待处理数据信息添加到服务器集群的请求队列中,服务器集群中包括多个从节点。

305、若请求消费服务接收到从节点返回的第二响应信息,则通过请求消费服务将从节点在请求队列中的消费偏移量作为最大消费偏移量更新到存储区中。

在本发明实施例中,通过nginx服务器接收数据请求,并将数据请求中的待处理数据信息分发到各个nginx节点上进行预处理,提取待处理数据信息的数据类型,能够在高流量并发的情况下,对访问的流量进行分发,把负载流量均衡到多个nginx节点,通过将流量进行分发,可以实现负载均衡。当检测到数据为第一数据类型时,可以将待处理数据信息通过请求转发服务转发到主节点,主节点响应成功,便可以将待处理数据信息转发到请求队列,通过请求消费服务将待处理数据信息分发到各个从节点,并根据从节点的响应顺序,将消费偏移量最为最大消费偏移量,对存储区中的对应从节点的消费偏移量进行更新。通过在系统中引入一个请求转发服务实现对待处理数据信息的转发,对资源进行合理化部署;并且引入请求消费服务,在高流量并发的情况下,将流量分发至各个从节点,实现负载均衡,从而保证高并发性能。

如图4所示,图4为本发明实施提供的另一种流量分发控制方法的流程图,具体包括以下步骤:

401、获取待处理数据信息,对待处理数据信息的数据类型进行判断。

402、若待处理数据信息的数据类型为第一数据类型,获取主节点的节点信息,节点信息包括主节点的地址信息。

403、根据主节点的地址信息,通过请求转发服务将待处理数据信息转发到与地址信息对应的主节点。

其中,上述主节点的节点信息可以包括地址信息、主节点的编号信息等。上述的地址信息可以是指与主节点的服务器对接的端口信息,获取到端口信息,请求转发服务可以通过该端口信息对应的主服务器转发待处理数据信息,等待该主服务器对数据类型为第一数据类型的待处理数据信息进行响应,主服务器对响应成功后,便可以将第一响应信息返回请求转发服务。

404、获取主节点返回的第一响应信息,通过请求转发服务将第一响应信息转发至调用方。

请求转发服务接收主服务器返回的第一响应信息,并将第一响应信息转发至调用方,完成对数据请求的应答,其中,第一响应信息为主服务器对待处理数据信息进行响应的信息。

405、当接收到主节点返回的第一响应信息,通过请求转发服务将待处理数据信息添加到服务器集群的请求队列中,服务器集群中包括多个从节点。

406、若请求消费服务接收到从节点返回的第二响应信息,则通过请求消费服务将从节点在请求队列中的消费偏移量作为最大消费偏移量更新到存储区中。

可选的,上述步骤405的步骤包括:

检测第一响应信息是否已经转发到调用方。

其中,可以实时检测第一响应信息是否已经转发到调用方,若是已经转发到调用方,调用方会返回反馈信息,通知请求转发服务,可以预设时间阈值,当在时间阈值内一直没有接收到来自调用方的反馈信息,则可以表示调用方没有接收到第一响应信息,此时,则不再对上述的待处理数据信息继续处理,并结束处理过程。

若是,则通过请求转发服务将获取到的待处理数据信息添加到服务器集群的请求队列中。

若请求转发服务接收到调用方的反馈信息,则可以将获取到的待处理数据信息转发到服务器集群中的请求队列中。

通过请求消费服务获取服务器集群中的从节点的数量,根据从节点的数量创建相同数量的消费者,通过消费者对请求队列进行监听。

其中,可以通过消费请求服务获取服务器集群中从节点的数量,从节点的数量即从服务器的数量,在配置从服务器时已经确定数量,可以直接获取。根据从节点的数量创建相同数量的消费者,可以通过多个消费者对同一个请求队列进行监听,若请求队列中的待处理数据信息的数量多于消费者的数量,可以通过轮训的当时对多个待处理数据信息进行处理。若是某个消费者处于繁忙状态,也可以将本应该分发给繁忙状态的消费者的待处理数据信息分配给其余处于放松状态的消费者处理。

若检测到消费者接收到待处理数据信息,则通过消费者将待处理数据信息转发至与消费者对应的从节点,等待各个从节点对待处理数据信息进行响应。

其中,因消费者的数量是根据从节点的数量设置,所以一个消费者可以专门针对一个从节点。若某个消费者接受到待处理数据信息,则可通过该消费者将待处理数据信息发送到对应的从节点。当从节点响应后,会返回第二响应信息给请求消费服务。

可选的,上述步骤406的步骤包括:

若与消费者对应的从节点对待处理数据信息进行响应,则接收与消费者对应的从节点返回的第二响应信息。

其中,当有多个消费者都接收到待处理数据信息,且都将待处理数据信息发送到各自对应的从节点上,各个从节点也先后进行了响应,则请求消费服务会接到来自多个从节点的第二响应信息。

通过请求消费服务获取从节点响应的待处理数据信息在请求队列中的消费偏移量,将获取到的消费偏移量作为最大偏移量更新到存储区,消费偏移量为从节点在请求队列中的位置。

其中,每个消费者接收到的待处理数据信息在请求队列中的消费偏移量不同,依次,消费者接收到的待处理数据信息、消费者以及从节点可以是一一对应的关系。上述获取从节点响应的待处理数据信息在请求队列中的消费偏移量,可以是指当前的从节点,将当前从节点响应的待处理数据信息在请求队列中的消费偏移量作为最大偏移量更新到存储区后,存储区中在此之前的最大偏移量将会被当前的最大偏移量替代,也即是实现更新过程。

否则,继续等待消费者接收待处理数据信息。

若是请求消费服务没有接收到待处理数据信息,可以表示当前请求队列中待处理数据信息数量少,处于松弛状态,此时消费者会继续对请求队列进行监听,等待接收待处理数据信息。

本发明实施例中,通过获取待处理数据信息,在判断出待处理数据信息的数据类型为第一数据类型后,会获取主节点的地址信息,根据地址信息将待处理数据信息通过请求转发服务将其转发到主节点,当主节点返回第一响应信息到请求转发服务时,会将第一响应信息转发到调用方,转发到调用方成功后,会将待处理数据信息添加到服务器集群的请求队列中,通过创建与从节点数量相同的消费者对请求队列进行监听,并通过消费者将各自接收到的待处理数据信息发送到对应的从节点对其进行响应,并返回第二响应信息到请求消费服务,然后请求消费服务获取从节点响应的待处理数据信息在请求队列中的消费偏移量作为最大消费偏移量对存储区中的最大消费偏移量进行更新。通过在系统中引入一个请求转发服务实现对待处理数据信息的转发,对资源进行合理化部署;并且通过在系统中引入一个请求转发服务实现对待处理数据信息的转发,对资源进行合理化部署,控制了成本;并且引入请求消费服务,在高流量并发的情况下,将流量分发至各个从节点,实现负载均衡,从而保证高并发性能,有利于提高流量分发的响应效率。

如图5所示,图5是本发明实施例提供的一种流量分发控制装置的结构示意图,流量分发控制装置500包括:

判断模块501,用于获取待处理数据信息,对待处理数据信息的数据类型进行判断;

转发模块502,用于若待处理数据信息的数据类型为第一数据类型,则通过请求转发服务将待处理数据信息转发至主节点;

添加模块503,用于当接收到主节点返回的第一响应信息,通过请求转发服务将待处理数据信息添加到服务器集群的请求队列中,服务器集群中包括多个从节点;

更新模块504,用于若请求消费服务接收到从节点返回的第二响应信息,则通过请求消费服务将从节点在请求队列中的消费偏移量作为最大消费偏移量更新到存储区中。

可选的,上述判断模块501还用于判断待处理数据信息的数据类型是否为第二数据类型;

上述判断模块501还用于若是,则通过请求转发服务获取存储区中的最大偏移量以及从节点的消费偏移量,并判断从节点的消费偏移量是否等于存储区中的最大偏移量;

转发模块502还用于若从节点的消费偏移量等于存储区中的最大偏移量,则把从节点作为目标从节点,将数据类型为第二数据类型的待处理数据信息转发至目标从节点,并对目标从节点返回的处理结果转发至调用方。

可选的,如图6所示,图6是本发明实施例提供的另一种流量分发控制装置的结构示意图,转发模块502包括:

第一转发单元5021,用于通过请求转发服务将待处理数据信息转发至目标从节点;

第二转发单元5022,用于接收目标从节点返回的处理结果,通过请求转发服务将处理结果转发至调用方。

可选的,如图7所示,图7是本发明实施例提供的另一种流量分发控制装置的结构示意图,判断模块501包括:

分发单元5011,用于将待处理数据信息均衡到多个预处理节点;

处理单元5012,用于通过预处理节点对待处理数据信息进行预处理,以得到待处理数据信息的数据类型。

可选的,如图8所示,图8是本发明实施例提供的另一种流量分发控制装置的结构示意图,转发模块502包括:

获取单元5024,用于获取主节点的节点信息,节点信息包括主节点的地址信息;

第三转发单元5025,用于根据主节点的地址信息,通过请求转发服务将待处理数据信息转发到与地址信息对应的主节点;

获取单元5024还用于获取主节点返回的第一响应信息,通过请求转发服务将第一响应信息转发至调用方。

可选的,如图9所示,图9是本发明实施例提供的另一种流量分发控制装置的结构示意图,添加模块503包括:

检测单元5031,用于检测第一响应信息是否已经转发到调用方;

添加单元5032,用于若是,则通过请求转发服务将获取到的待处理数据信息添加到服务器集群的请求队列中;

创建单元5033,用于通过请求消费服务获取服务器集群中的从节点的数量,根据从节点的数量创建相同数量的消费者,通过消费者对请求队列进行监听;

等待单元5034,用于若检测到消费者接收到待处理数据信息,则通过消费者将待处理数据信息转发至与消费者对应的从节点,等待各个从节点对待处理数据信息进行响应。

可选的,如图10所示,图10是本发明实施例提供的另一种流量分发控制装置的结构示意图,更新模块504包括:

接收单元5041,用于若与消费者对应的从节点对待处理数据信息进行响应,则接收与消费者对应的从节点返回的第二响应信息;

更新单元5042,用于通过请求消费服务获取从节点响应的待处理数据信息在请求队列中的消费偏移量,将获取到的消费偏移量作为最大偏移量更新到存储区,消费偏移量为从节点在请求队列中的位置;

上述接收单元5041还用于否则,继续等待消费者接收待处理数据信息。

本发明实施例提供的流量分发控制装置能够实现上述方法实施例中流量分发控制方法实现的各个过程且可以达到相同的有益效果,为避免重复,这里不再赘述。

如图11所示,图11是本发明实施例提供的一种电子设备的结构示意图,该电子设备1100包括:存储器1102、处理器1101、网络接口1103及存储在存储器1102上并可在处理器1101上运行的计算机程序,处理器1101执行计算机程序时实现实施例提供的流量分发控制方法中的步骤。

具体的,处理器1101用于执行以下步骤:

获取待处理数据信息,对待处理数据信息的数据类型进行判断;

若待处理数据信息的数据类型为第一数据类型,则通过请求转发服务将待处理数据信息转发至主节点;

当接收到主节点返回的第一响应信息,通过请求转发服务将待处理数据信息添加到服务器集群的请求队列中,服务器集群中包括多个从节点;

若请求消费服务接收到从节点返回的第二响应信息,则通过请求消费服务将从节点在请求队列中的消费偏移量作为最大消费偏移量更新到存储区中。

可选的,处理器1101还用于执行:

判断待处理数据信息的数据类型是否为第二数据类型;

若是,则通过请求转发服务获取存储区中的最大偏移量以及从节点的消费偏移量,并判断从节点的消费偏移量是否等于存储区中的最大偏移量;

若从节点的消费偏移量等于存储区中的最大偏移量,则把从节点作为目标从节点,将数据类型为第二数据类型的待处理数据信息转发至目标从节点,并对目标从节点返回的处理结果转发至调用方。

可选的,处理器1101执行的将数据类型为第二数据类型的待处理数据信息转发至目标从节点的步骤包括:

通过请求转发服务将待处理数据信息转发至目标从节点;

接收目标从节点返回的处理结果,通过请求转发服务将处理结果转发至调用方。

可选的,处理器1101执行的对待处理数据信息的数据类型进行判断的包括步骤:

将待处理数据信息均衡到多个预处理节点;

通过预处理节点对待处理数据信息进行预处理,以得到待处理数据信息的数据类型。

可选的,处理器1101执行的通过请求转发服务将待处理数据信息转发至主节点,等待主节点对待处理数据信息进行响应的步骤包括:

获取主节点的节点信息,节点信息包括主节点的地址信息;

根据主节点的地址信息,通过请求转发服务将待处理数据信息转发到与地址信息对应的主节点;

获取主节点返回的第一响应信息,通过请求转发服务将第一响应信息转发至调用方。

可选的,处理器1101执行的通过请求转发服务将待处理数据信息添加到服务器集群的请求队列中的步骤包括:

检测第一响应信息是否已经转发到调用方;

若是,则通过请求转发服务将获取到的待处理数据信息添加到服务器集群的请求队列中;

通过请求消费服务获取服务器集群中的从节点的数量,根据从节点的数量创建相同数量的消费者,通过消费者对请求队列进行监听;

若检测到消费者接收到待处理数据信息,则通过消费者将待处理数据信息转发至与消费者对应的从节点,等待各个从节点对待处理数据信息进行响应。

可选的,处理器1101执行的通过请求消费服务将从节点在请求队列中的消费偏移量作为最大消费偏移量更新到存储区中的步骤包括:

若与消费者对应的从节点对待处理数据信息进行响应,则接收与消费者对应的从节点返回的第二响应信息;

通过请求消费服务获取从节点响应的待处理数据信息在请求队列中的消费偏移量,将获取到的消费偏移量作为最大偏移量更新到存储区,消费偏移量为从节点在请求队列中的位置;

否则,继续等待消费者接收待处理数据信息。

本发明实施例还提供一种电子设备1100,能够实现流量分发控制方法实施例中的各个实施方式,以及相应有益效果,为避免重复,这里不再赘述。

需要指出的是,图中仅示出了具有组件的1101-1103,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。其中,本技术领域技术人员可以理解,这里的电子设备1100是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(applicationspecificintegratedcircuit,asic)、可编程门阵列(field-programmablegatearray,fpga)、数字处理器(digitalsignalprocessor,dsp)、嵌入式设备等。

电子设备1100可以是桌上型计算机、笔记本及掌上电脑等计算设备。电子设备1100可以与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互。

存储器1102至少包括一种类型的可读存储介质,可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、随机访问存储器(ram)、静态随机访问存储器(sram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、可编程只读存储器(prom)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器1102可以是电子设备1100的内部存储单元,例如该电子设备1100的硬盘或内存。在另一些实施例中,存储器1102也可以是电子设备1100的外部存储设备,例如该电子设备1100上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。当然,存储器1102还可以既包括电子设备1100的内部存储单元也包括其外部存储设备。本实施例中,存储器1102通常用于存储安装于电子设备1100的操作系统和各类应用软件,例如流量分发控制方法的程序代码等。此外,存储器1102还可以用于暂时地存储已经输出或者将要输出的各类数据。

处理器1101在一些实施例中可以是中央处理器(centralprocessingunit,cpu)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器1101通常用于控制电子设备1100的总体操作。本实施例中,处理器1101用于运行存储器1102中存储的程序代码或者处理数据,例如运行流量分发控制方法的程序代码。

网络接口1103可包括无线网络接口或有线网络接口,该网络接口1103通常用于在电子设备1100与其他电子设备之间建立通信连接。

本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器1101执行时实现实施例提供的流量分发控制方法中的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。

本领域普通技术人员可以理解实现实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如各方法的实施例的流程。其中,存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)或随机存取存储器1102(randomaccessmemory,简称ram)等。

以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。

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