掌桥专利:专业的专利平台
掌桥专利
首页

数据在线分发方法、装置、设备、介质及产品

文献发布时间:2024-04-18 19:52:40


数据在线分发方法、装置、设备、介质及产品

技术领域

本申请涉及数据处理领域,尤其涉及一种数据在线分发方法、相应的装置、数据在线分发设备、计算机可读存储介质以及计算机程序产品。

背景技术

在一些业务场景中,数据量庞大且对时效性的要求比较高,服务器需要在线处理庞大的数据量并保证一定的实时性,当服务器处理庞大的数据量时,常常会因服务器性能不足或网络阻塞等原因导致服务器单点故障,而服务器出现单点故障时可能导致用户无法正常地进行功能操作和影响信息交互的实时性,无论用户是通过何种渠道进入站点使用服务,这都会大大降低相应服务的用户体验。

目前,当服务器出现单点故障时,一般将数据依次加入延迟队列分批进行处理或对数据进行离线处理,这虽然可以减缓服务器的压力,但却损失了数据的时效性,无法保证业务的实时性,业务存在很高的延迟性。

综上,为了解决大型数据引起服务器单点故障而影响数据的实时性等问题,本申请人出于解决该问题的考虑做出相应的探索。

发明内容

本申请的目的在于解决上述问题而提供一种分布式数据的在线分发方法、相应的装置、数据在线分发设备、计算机可读存储介质以及计算机程序产品。

根据本申请的一个方面,提供一种数据在线分发方法,包括如下步骤:

当前服务器节点接收数据处理请求,将所述数据处理请求相对应的待处理数据作为待分发数据;

获取所述当前服务器节点以及与所述当前服务器节点处于同一服务器集群的各个服务器节点的负载信息;

根据所述各个服务器节点的负载信息切分所述待分发数据,得到所述各个服务器节点的数据分发量;

将所述各个服务器节点的数据分发量相对应的待分发数据,对应分发至所述各个服务器节点。

根据本申请的另一方面,提供一种数据在线分发装置,包括:

数据接收模块,设置为当前服务器节点接收数据处理请求,将所述数据处理请求相对应的待处理数据作为待分发数据;

负载信息获取模块,设置为获取所述当前服务器节点以及与所述当前服务器节点处于同一服务器集群的各个服务器节点的负载信息;

数据切分模块,设置为根据所述各个服务器节点的负载信息切分所述待分发数据,得到所述各个服务器节点的数据分发量;

数据分发模块,设置为将所述各个服务器节点的数据分发量相对应的待分发数据,对应分发至所述各个服务器节点。

根据本申请的另一方面,提供一种数据在线分发设备,包括中央处理器和存储器,其特征在于,所述中央处理器用于调用运行存储于所述存储器中的计算机程序以执行本申请所述数据在线分发方法的步骤。

根据本申请的另一方面,提供一种计算机可读存储介质,其以计算机可读指令的形式存储有依据所述数据在线分发方法所实现的计算机程序,该计算机程序被计算机调用运行时,执行相应的方法所包括的步骤。

根据本申请的另一方面,提供一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现本申请所述数据在线分发方法的步骤。

相对于现有技术,本申请避免大型数据引起服务器单点故障而影响数据的实时性等问题,实时获取服务器集群内各个服务器节点的负载信息,当大型数据需要被处理时,根据各个服务器节点的负载信息动态合理地切分需要处理的大型数据,将适应各个服务器节点的负载信息相应的数据分发至各个服务器节点,当服务器集群内的服务器节点越多,服务器单点处理的数据量就越小,避免大型数据引起服务器单点故障,根据服务器集群内各个服务器节点合理分配相应的数据量,无需增加服务器成本,在避免大型数据引起服务器单点故障和无需增加服务器成本的基础上,保证了业务的实时性和低延迟性,根据各个服务器节点实时的负载信息动态分发大型数据至各个服务器节点,充分利用各个服务器节点的空闲负载空间,提高各个服务器节点的负载资源利用率,使服务器集群内各个服务器节点负载均衡,保证服务器集群的健康度。

附图说明

本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:

图1为本申请网络直播场景中网络直播服务所采用的示例性的网络架构;

图2为本申请实施例中数据在线分发方法的流程示意图;

图3为本申请实施例中获取服务器集群内服务器节点的负载信息的流程示意图;

图4为本申请实施例中根据CPU使用率和网络指标确定各个服务器节点的权重的流程示意图;

图5为本申请实施例中根据各个服务器节点的负载信息切分待分发数据得到各个服务器节点的数据分发量的流程示意图;

图6为本申请实施例中将数据处理请求相对应的待处理数据作为待分发数据的流程示意图;

图7为本申请实施例获取二度人脉用户的流程示意图;

图8为本申请实施例中数据在线分发装置的原理框图;

图9为本申请实施例中的一种数据在线分发设备的结构示意图。

具体实施方式

请参阅图1,本申请相关技术方案实施时所需的硬件基础可以按图中所示的架构进行部署。本申请所称服务器80部署在云端,作为一个在线服务器,其可以负责进一步连接起相关数据服务器以及其他提供相关支持的服务器等,以此构成逻辑上相关联的服务器集群,来为相关的终端设备例如图中所示的智能手机81和个人计算机82或者第三方服务器提供服务。所述的智能手机和个人计算机均可通过公知的网络接入方式接入互联网,与云端的服务器80建立数据通信链路,以便运行所述服务器所提供的服务相关的终端应用程序,例如,智能手机81和个人计算机82一般运行应用程序以显示目标直播间的预览窗口或直播间界面的终端设备,而服务器80可向所述终端设备提供目标直播间的业务数据流,包括视频数据流和其他业务数据流等。

本申请所称的“服务器”,同理也可扩展到适用于服务集群的情况。依据本领域技术人员所理解的网络部署原理,所述各服务器应是逻辑上的划分,在物理空间上,这些服务器既可以是互相独立但可通过接口调用的,也可以是集成到一台物理计算机或一套计算机机群的。本领域技术人员应当理解这一变通,而不应以此约束本申请的网络部署方式的实施方式。

在参考以上示例性场景的基础上,请参阅图2,本申请的数据在线分发方法在其一个实施例中,包括如下步骤:

步骤S1100、当前服务器节点接收数据处理请求,将所述数据处理请求相对应的待处理数据作为待分发数据;

需要通过本申请的技术方案进行数据分发的请求数据,可以视为本申请的所述待分发数据。所述待分发数据的类型及来源,根据实际应用场景而定,例如:在网络直播处理的场景中,所述待分发数据可以是大量用户进入一个或多个直播间的观看请求所对应的各种业务数据(流),例如,可以是视频数据流、消息数据流等,也可以是用户在网络直播间提交的点赞指令、关注指令、刷礼物指令或弹幕指令等所对应需处理的业务数据(流);在线上商品限时抢购的场景,所述待分发数据可以是用户提交的购物清单或付款订单等。诸如此类,视具体应用场景不同,可以按需确定所述待分发数据。当某一个请求或指令被响应时,需要获取相应的业务数据(流),这些业务数据(流)属于待处理数据,由于处在大量数据处理的场景中,所以,这些待处理数据可以作为待分发数据,通过触发相应的数据处理请求,由本申请的技术方案做进一步的处理。当前服务器节点可以是需要处理大量数据的服务器集群中的服务器节点,不难理解,也可以是海量用户访问的数据库集群中的数据库节点,在此不做限定。

在一些实施例中,当直播间的主播用户启动网络直播后,可以实施直播带货、唱歌、舞蹈等直播活动,当用户与主播之间进行互动时,用户可以操作直播显示界面,由各个用户客户端产生刷礼物指令或弹幕指令,进而触发相应的数据处理请求,将大量数据处理请求对应的业务数据交由服务器进行处理,所述大量数据处理请求对应的业务数据经服务器处理后发送至各个客户端,以使各个客户端根据接收到的经服务器处理后的数据处理请求对应的业务数据生成交互响应并进行显示。其中,服务器可以接收多个客户端发送的数据处理请求对应的业务数据作为待处理数据,当前服务器节点接收到各个客户端发送的数据处理请求对应的待处理数据的数据量比较庞大时,判断所述待处理数据是否超过当前服务器节点的预设阈值,当所述数据处理请求对应的待处理数据超过当前服务器节点的预设阈值,将所述待处理数据作为待分发数据,以便将其分发到服务集群中的其他服务器节点进行协作处理。

步骤S1200、获取所述当前服务器节点以及与所述当前服务器节点处于同一服务器集群的各个服务器节点的负载信息;

所述服务器集群的各个服务器节点都具有数据分发的能力,当服务器集群内的某个服务器节点所接收的待处理数据的数据量超过该服务器节点的预设阈值,获取服务器集群的各个服务器节点的负载信息,所述负载信息包括CPU使用率和至少一个网络指标,所述网络指标包括网络传输时延、丢包率、带宽等任意之一或任意多个,当请求方的数据处理请求对应的待处理数据超过当前服务器节点的预设阈值,表明所述数据处理请求对应的待处理数据量越庞大,如果当前服务器节点的待处理数据的数据量过大,容易造成当前服务器节点待处理数据的堆积,从而引起服务器单点故障,请求方无法实时展示交互响应。因此,获取所述当前服务器节点以及与所述当前服务器节点处于同一服务器集群的各个服务器节点的负载信息尤为重要,所述负载信息直接反映各个服务器节点对请求方的数据处理请求对应的业务数据的处理能力,根据服务集群中各个服务器节点的CPU使用率、网络指标等,动态适当地将请求方的数据处理请求对应的庞大业务数据分发到各个服务器节点,便可为当前服务器节点分流待处理数据,避免服务器集群的各个服务器节点的负载失衡,避免单台服务器节点负载过高,保证所述服务器集群内各个服务器节点的负载均衡。

在一些实施例中,网络直播中大量观众同时进入直播间,由各个请求方产生因进入直播间而触发的数据处理请求,将所述数据处理请求对应的业务数据交由服务器进行处理,由于同时进入直播间的人数过多,当前服务器节点检测到对用户进入直播间的请求处理对应的业务数据超过预设阈值,实时获取所述当前服务器节点以及与所述当前服务器节点处于同一服务器集群的各个服务器节点的负载信息,做好数据分发的准备,不难理解,当前服务器节点无法对突然激增的进入直播间的数据处理请求对应的业务数据进行全部处理,因此,需要进行数据处理请求对应的业务数据的数据分发,而各个服务器节点的负载信息是动态更新的,根据所述负载信息能很好地评估各个服务器节点的数据处理能力,从而可以确定出能够处理所述待分发数据的服务器节点。

步骤S1300、根据所述各个服务器节点的负载信息切分所述待分发数据,得到所述各个服务器节点的数据分发量;

在网络直播中,所述待分发数据包括待处理直播数据,所述待处理直播数据可以是用户在网络直播间提交的点赞指令、关注指令、刷礼物指令或弹幕指令对应的业务数据等,服务器可以直接接收直播应用程序发送的当前直播间产生的待处理直播数据,当前服务器节点无法对所述待处理直播数据进行全部处理,因此需要对接收到的待处理直播数据进行数据分发,把所述待处理直播数据作为待分发数据分发至各个服务器节点,而每个服务器节点对数据的处理能力各不相同,不难理解,服务器节点负载越多,即其闲置处理能力越弱,这时分发至这些服务器节点的数据量就越少,例如:服务器节点的CPU使用率越高或带宽越小,分发至所述服务器节点的数据量就越少,根据这个调度原则,基于各个服务器节点的负载信息可以实时地确定每个服务器节点的数据处理量,也就是对应的数据分发量,根据所述各个服务器节点的负载信息切分所述待分发数据,进一步地,在一个实施例中,可以同时采用非线性加权的方式合理地在服务集群的各个服务器节点之间确定各个服务器节点的数据分发量,按照各个服务器节点各自的数据分发量分发所述待处理直播数据,对各个服务器节点分发的数据量进行实时调整,使整个服务器集群更加健康。

在一些实施例中,主播通过直播应用程序打开直播终端的音视频采集设备采集直播画面,主播可以在直播间进行唱歌、跳舞、健身等直播活动,随着主播直播活动越精彩,观众加入直播间、与主播进行线上互动的人数也会激增,如果大量观众涌入直播间或在直播间进行疯狂点赞、关注、刷礼物等,当前服务器节点将面临极大的业务数据处理压力,无法对当前庞大的待处理直播数据进行处理,容易造成直播间卡顿、不流畅或网络延迟等不良现象,直接影响主播与观众的线上互动,为了保证直播流畅播放、观众与主播互动的实时性,使各个服务器节点能够负载均衡,需要根据所述各个服务器节点的负载信息切分所述待处理直播数据,所述待处理直播数据可以直接均匀切分成若干份,根据所述各个服务器节点的负载信息分发至各个服务器节点,也可以根据CPU使用率或网络传输时延之类的网络指标进行实时切分,控制所述服务器节点的CPU使用率越高或网络传输时延越大,其服务器节点的数据分发量就越小;以及所述服务器节点的CPU使用率越低或网络传输时延越小,其服务器节点的数据分发量就大,避免某个服务器节点数据处理量太大而导致单点故障,从而得到所述各个服务器节点合理的数据分发量。

步骤S1400、将所述各个服务器节点的数据分发量相对应的待分发数据,对应分发至所述各个服务器节点。

所述各个服务器节点的数据分发量与其负载信息是实时对应的,可以预先设置为实时或定时地获取各个服务器节点的负载信息,以便根据所述各个服务器节点的负载信息动态确定各个服务器节点的数据分发量。

示例性的一种实施例中,为了确定各个服务器节点的数据分发量,先接收所述待处理直播数据的当前服务器节点会获取服务器集群内每个服务器节点的CPU使用率load

根据权重ω

所述各个服务器节点接收到数据分发量data

在其他实施例中,所述网络传输时算也可以替换为带宽、丢包率等网络指标以计算各个服务器节点的相应权重,或者,也可以同时关联CPU使用率、网络传输时延、带宽、丢包率中的任意多个数值来确定各个服务器节点的权重,并不受以上示例所限。

由上述实施例可知,本申请避免大型数据引起服务器单点故障而影响数据的实时性等问题,实时获取服务器集群内各个服务器节点的负载信息,当大型数据需要被处理时,根据各个服务器节点的负载信息动态合理地切分需要处理的大型数据,将适应各个服务器节点的负载信息相应的数据分发至各个服务器节点,当服务器集群内的服务器节点越多,服务器单点处理的数据量就越小,避免大型数据引起服务器单点故障,根据服务器集群内各个服务器节点合理分配相应的数据量,无需增加服务器成本,在避免大型数据引起服务器单点故障和无需增加服务器成本的基础上,保证了业务的实时性和低延迟性,根据各个服务器节点实时的负载信息动态分发大型数据至各个服务器节点,充分利用各个服务器节点的空闲负载空间,提高各个服务器节点的负载资源利用率,使服务器集群内各个服务器节点负载均衡,保证服务器集群的健康度。

在本申请任意实施例的基础上,请参阅图3,获取所述当前服务器节点以及与所述当前服务器节点处于同一服务器集群的各个服务器节点的负载信息的步骤,包括如下步骤:

步骤S1201、响应定时触发事件获取所述各个服务器节点的负载信息,所述负载信息包括CPU使用率和至少一个网络指标;

在网络直播场景中,其用户请求数据是千变万化的,因此各个服务器节点的负载信息也是实时变化的,为了保证各个服务器节点负载均衡,需要定时获取所述各个服务器节点的负载信息,合理切分待处理直播数据至所述各个服务器节点,根据CPU使用率和至少一个网络指标等评估各个服务器节点的数据请求处理能力。如前所述,所述负载信息可以包括CPU使用率及至少一个网络指标,所述网络指标可以在网络传输时延、丢包率、带宽中按需选定。

步骤S1203、根据所述CPU使用率和所述网络指标确定所述各个服务器节点的权重。

具体地,接收所述待处理直播数据的当前服务器节点会获取服务器集群内每个服务器节点的CPU使用率load

在本申请任意实施例的基础上,请参阅图4,根据所述CPU使用率和所述网络指标确定所述各个服务器节点的权重的步骤,包括如下步骤:

步骤S12031、判断所述各个服务器节点的CPU使用率是否对应预设的最大数值区间,当对应最大数值区间时,将所述各个服务器节点的权重置为0;

所述CPU使用率就是系统运行的程序占用的CPU资源,表示服务器节点在某段时间程序运行的情况,如果所述CPU使用率对应预设的最大数值区间,所述CPU使用率load

所述最大数值区间可以灵活调节,例如,也可以按需设置为[0.5,1]的数值区间,推荐在[0.7,1]之间设定,能够实现较佳的负载均衡效果,例如前述的[0.8,1]。

步骤S12033、当所述各个服务器节点的权重为0时,保持在预设时长范围内不再获取其负载信息;

在一些实施例中,由于服务器集群内的服务器节点,一旦其负载较高,在一定的时长范围内,会忙于处理其当前的数据,因而,可预期一个预设时长范围内,该服务器节点均处于繁忙状态,应尽量避免对这种处理繁忙状态的服务器节点的运行干扰,所以可以在根据负载信息判定一个服务器节点的权重为0,也即共处于繁忙状态的情况下,保持在预设时长范围内,不再获取这个服务器节点的负载信息,等到预设时长范围结束时,再去获取这个服务器节点的负载信息来确定其权重即可。对于权重为0的服务器节点,在所述预设时长范围内,不再对这个服务器节点做数据分发,这样既可以避免干扰这个服务器节点的运行,也可以减小确定数据分发量时的计算量。

步骤S12035、当所述各个服务器节点的CPU使用率小于所述最大数值区间时,应用预设函数将所述各个服务器节点的CPU使用率和网络指标归一化为权重。

由于CPU使用率与网络指标直接体现服务器节点的负载情况,当所述CPU使用率小于所述最大数值区间时,可以将所述CPU使用率与网络传输时延归一化为权重,也可以将所述CPU使用率与网络传输时延、丢包率归一化为权重,还可以将所述CPU使用率与网络传输时延、丢包率、带宽等归一化为权重,在此不做限定。

在本申请任意实施例的基础上,请参阅图5揭示的示例,根据所述各个服务器节点的负载信息切分所述待分发数据,得到所述各个服务器节点的数据分发量的步骤,包括如下步骤:

步骤S1301、求取所述各个服务器节点的权重占所述各个服务器节点的总权重的权重占比;

具体地,根据各个服务器节点的负载信息适应性地将所述待处理直播数据分发至各个服务器节点,以服务器集群内第i个服务器节点为例,其他服务器节点的权重之和表示为

将权重ω

由上述实施例可知,CPU使用率load

步骤S1303、根据所述各个服务器节点的权重占比切分出所述各个服务器节点相对应的数据分发量。

不难理解,所述服务器节点的权重占比越大,代表所述服务器节点负载越健康,即CPU使用率越低或网络状况越良好,其所述服务器节点处理的数据量也越大,根据所述各个服务器节点的权重占比切分出所述各个服务器节点相对应的数据分发量,可以准确地计算出各个服务器节点可以处理的数据量,充分利用各个服务器节点的空闲负载空间,提高各个服务器节点的负载资源利用率,使服务器集群内各个服务器节点负载均衡,保证服务器集群的健康度。

在本申请任意实施例的基础上,请参阅图6,当前服务器节点接收数据处理请求,将所述数据处理请求相对应的待处理数据作为待分发数据的步骤,包括如下步骤:

步骤S1101、接收所述数据处理请求,并获取所述数据处理请求携带的用户标识;

示例而言,所述数据处理请求可以是因应用户对网络视频实施点赞指令而触发的,服务器节点解析所述数据处理请求,获取点赞指令相对应的所述用户的用户标识,不难理解,用户的点赞指令对应触发的每一个数据处理请求,都会携带其用户标识,服务器节点基于所述用户标识进行点赞指令相应的业务数据处理。

步骤S1103、根据所述用户标识获取其相对应的二度人脉用户的用户数据作为待处理数据以确定所述待处理数据的数据量;

示例而言,在根据用户点赞行为进行广告推荐的业务逻辑中,用户对广告视频流即所述网络视频进行点赞操作,服务器节点可以根据所述用户标识获取相对应的二度人脉用户,所述二度人脉用户可以是所述用户关注的好友,也可以是与所述用户互相关注的好友,还可以是以其他方式与所述用户发生过数据交互的其他用户。随着对所述广告视频流点赞用户的激增,用户相对应的二度人脉用户也会激增,不难理解,每一个用户关注或互相关注的好友可能成百上千,服务器节点所需要处理的用户相对应的二度人脉用户的用户数据也会非常庞大,因此需要将相对应的二度人脉用户的用户数据作为待处理数据以确定所述待处理数据的数据量,作好将所述用户数据分发至各个服务器节点的准备。

步骤S1105、判断所述数据量是否超过预设阈值,若超过预设阈值,则将所述待处理数据作为待分发数据,否则,由当前服务节点处理所述待处理数据。

若根据所述用户标识获取其相对应的二度人脉用户的用户数据没有超过当前服务器节点数据处理的预设阈值,由当前服务器节点直接处理,无需进行数据分发,以减少服务器节点的运算量,若根据所述用户标识获取其相对应的二度人脉用户的用户数据超过当前服务器节点数据处理的预设阈值,则需要根据所述各个服务器节点的负载信息切分所述用户标识获取其相对应的二度人脉用户的用户数据,避免某个服务器节点数据处理量太大而导致单点故障,保证各个服务器节点的负载均衡。

由以上示例性的实施例可知,本申请的技术方案可以服务于多种业务场景,对因用户交互而触发的数据处理请求相对应的待处理数据进行分发调度处理,确保复杂大数据场景下的用户交互效率最优化,从而确保用户体验最优。

在本申请任意实施例的基础上,请参阅图7,接收所述数据处理请求,并获取所述数据处理请求携带的用户标识的步骤之前,包括如下步骤:

步骤S11011、响应作用于目标内容的所述数据处理请求,确定触发所述数据处理请求的用户的所述用户标识;

在网络直播场景中,当前服务器节点响应大量用户在直播间进行疯狂点赞操作,获取用户的用户标识,根据所述用户标识进行相应的点赞操作业务数据处理。

示例而言,对于作为目标内容的一个广告视频来说,同一时刻可能有海量的用户进行点赞操作,这个用户的点赞操作都会触发相应的数据处理请求,对于每个数据处理请求来说,如前所述,都可确定其携带的相应用户的用户标识。

步骤S11013、根据所述用户标识获取所述用户的关联用户列表;

对于每个触发数据处理请求的用户来说,根据其用户标识,按照如前所述的方式,便可以确定其关联用户列表,所述关联用户列表中的用户,可以是访问过该用户标识相对应的主页的其他用户,也可以是与该用户标识所指向的用户具有共同兴趣标签的用户等,可以按需确定一个用户标识相对应的关联用户列表,本申请对该关联用户列表中的用户的构成不做具体限定,可由本领域技术人员根据这里揭示的原理灵活获取。

步骤S11015、根据所述目标内容所携带的兴趣标签筛选出所述关联用户列表中携带对应兴趣标签的用户,将所述携带对应兴趣标签的用户作为所述用户标识相对应的二度人脉用户。

不难理解,将目标内容推荐给兴趣相投的用户,更符合广告期望,而每一个用户所携带的兴趣标签是不同的,而且根据不同用户所获取的关联用户列表中的用户的兴趣也各不相同,服务器节点可以对每一个用户标识相对应的关联用户列表中的用户进行过滤,以便筛选出所述关联用户列表中携带与目标内容所携带的兴趣标签相匹配的用户,将这些筛选出的用户作为相应的用户标识所对应的有效的二度人脉用户。要进行这样的处理,数据量的处理非常庞大,而且点赞操作对于时效性要求很高,需要保证低时延性,因此,筛选出所述关联用户列表中携带对应兴趣标签的用户的操作,涉及到大量的业务数据处理,有时候单台服务器节点无法高效处理,可能需要进行数据分发,在这种情况下,便可借助本申请任意一个实施例的技术方案,实时获取服务器集群内各个服务器节点的负载信息,当大量用户的所述关联用户列表所对应的兴趣标签数据需要被处理时,根据各个服务器节点的负载信息实时合理地切分需要处理的大量用户的所述关联用户列表相对应的待处理数据,将这些待处理分发至各个服务器节点来实现对各个用户标识相对应的关联用户列表的筛选处理,以便最终确定出每个用户标识相对应的二度人脉用户。

不难理解,以上过程中,通过对关联用户列表进行筛选,可以确保每个关联用户列表中的用户所携带的兴趣标签都与所述目标内容的兴趣标签相匹配,通过服务集群的数据分发机制的作用,当服务器集群内的服务器节点越多,服务器单点处理的数据量就越小,避免大量用户的所述关联用户列表所对应的兴趣标签数据的处理引起服务器单点故障,根据服务器集群内各个服务器节点合理分配相应的数据量,保证了点赞操作的实时性和低延迟性。

请参阅图8,适应本申请的目的之一而提供的一种数据在线分发装置,包括数据接收模块1100、负载信息获取模块1200、数据切分模块1300、数据分发模块1400。其中,数据接收模块1100,设置为当前服务器节点接收数据处理请求,将所述数据处理请求相对应的待处理数据作为待分发数据;负载信息获取模块1200,设置为获取所述当前服务器节点以及与所述当前服务器节点处于同一服务器集群的各个服务器节点的负载信息;数据切分模块1300,设置为根据所述各个服务器节点的负载信息切分所述待分发数据,得到所述各个服务器节点的数据分发量;数据分发模块1400,设置为将所述各个服务器节点的数据分发量相对应的待分发数据,对应分发至所述各个服务器节点。

在本申请任意实施例的基础上,所述负载信息获取模块1200,包括:定时触发单元,设置为响应定时触发事件获取所述各个服务器节点的负载信息,所述负载信息包括CPU使用率和至少一个网络指标;权重确定单元,设置为根据所述CPU使用率和所述网络指标确定所述各个服务器节点的权重。

在本申请任意实施例的基础上,所述权重确定单元,包括:判断单元,设置为判断所述各个服务器节点的CPU使用率是否对应预设的最大数值区间,当对应最大数值区间时,将所述各个服务器节点的权重置为0;当所述各个服务器节点的权重为0时,保持在预设时长范围内不再获取其负载信息;归一化单元,当所述各个服务器节点的CPU使用率小于所述最大数值区间时,应用预设函数将所述各个服务器节点的CPU使用率和网络指标归一化为权重。

在本申请任意实施例的基础上,所述数据切分模块1300,包括:权重占比求取单元,设置为求取所述各个服务器节点的权重占所述各个服务器节点的总权重的权重占比;切分单元,设置为根据所述各个服务器节点的权重占比切分出所述各个服务器节点相对应的数据分发量。

在本申请任意实施例的基础上,所述数据接收模块1100,包括:用户标识获取单元,设置为接收所述数据处理请求,并获取所述数据处理请求携带的用户标识;数据量确定单元,设置为根据所述用户标识获取其相对应的二度人脉用户的用户数据作为待处理数据以确定所述待处理数据的数据量;数据量判断单元,设置为判断所述数据量是否超过预设阈值,若超过预设阈值,则将所述待处理数据作为待分发数据,否则,由当前服务节点处理所述待处理数据。

在本申请任意实施例的基础上,所述用户标识获取单元,包括:响应单元,设置为响应作用于目标内容的所述数据处理请求,确定触发所述数据处理请求的用户的所述用户标识;获取单元,设置为根据所述用户标识获取所述用户的关联用户列表;筛选单元,设置为根据所述目标内容所携带的兴趣标签筛选出所述关联用户列表中携带对应兴趣标签的用户,将所述携带对应兴趣标签的用户作为所述用户标识相对应的二度人脉用户。

在本申请任意实施例的基础上,请参阅图9,本申请的另一实施例还提供一种数据在线分发设备。所述数据在线分发设备可由计算机设备实现。该计算机设备包括通过系统总线连接的处理器、计算机可读存储介质、存储器和网络接口。其中,该计算机设备的计算机可读存储介质存储有操作系统、数据库和计算机可读指令,数据库中可存储有控件信息序列,该计算机可读指令被处理器执行时,可使得处理器实现一种数据在线分发方法。该计算机设备的处理器用于提供计算和控制能力,支撑整个计算机设备的运行。该计算机设备的存储器中可存储有计算机可读指令,该计算机可读指令被处理器执行时,可使得处理器执行本申请的数据在线分发方法。该计算机设备的网络接口用于与终端连接通信。本领域技术人员可以理解,图9中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

本实施方式中处理器用于执行图9中的各个模块的具体功能,存储器存储有执行上述模块或子模块所需的程序代码和各类数据。网络接口用于向用户终端或服务器之间的数据传输。本实施方式中的存储器存储有本申请的数据在线分发装置中执行所有模块所需的程序代码及数据,服务器能够调用服务器的程序代码及数据执行所有模块的功能。

本申请还提供一种存储有计算机可读指令存储介质,计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行本申请任一实施例的数据在线分发方法的步骤。

本申请还提供一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被一个或多个处理器执行时实现本申请任一实施例所述数据在线分发方法的步骤。

本领域普通技术人员可以理解实现本申请上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,前述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)等计算机可读存储介质,或随机存储记忆体(Random Access Memory,RAM)等。

以上所述仅是本申请的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。

综上所述,本申请根据各个服务器节点的负载信息动态合理地切分需要处理的大型数据,将适应各个服务器节点的负载信息相应的数据分发至各个服务器节点,充分利用各个服务器节点的空闲负载空间,提高各个服务器节点的负载资源利用率,使服务器集群内各个服务器节点负载均衡,保证服务器集群的健康度。

相关技术
  • 一种数据分发的方法、装置、终端设备及存储介质
  • 产品数据的数据同步方法、装置、计算机设备及存储介质
  • 在线数据流量计费方法、装置、设备及计算机存储介质
  • 产品数据同步方法、装置、计算机设备及存储介质
  • 基于网页标签的产品数据推送方法、装置、设备及介质
  • 数据处理方法、数据传输方法、数据接收方法、设备、代码本、计算机程序产品以及计算机程序分发介质
  • 数据处理方法、数据传输方法、数据接收方法、设备、代码本、计算机程序产品以及计算机程序分发介质
技术分类

06120116330861