数据分发网络的实现方法、装置和系统与流程

文档序号:16246387发布日期:2018-12-11 23:37阅读:314来源:国知局
数据分发网络的实现方法、装置和系统与流程

本申请涉及互联网领域,具体而言,涉及一种数据分发网络的实现方法、装置和系统。

背景技术

网络数据传输中间件位于客户端和服务器之间,可以实现负载均衡,以及保护服务器不受攻击。目前,现有的网络数据传输中间件存在如下几点不足:

(1)公司内部专用,无法让社会享受其资源;

(2)业务依赖严重,无法普适其他公司、个人的研发产品;

(3)硬件设备依赖集中,现有的中间件通常集中部署在固定区域内,以将其余的数据流量传入到该区域再进行分发,限制了其扩展的瓶颈。

针对上述现有的网络传输中间件依赖业务严重、导致通用性差的问题,目前尚未提出有效的解决方案。



技术实现要素:

本申请实施例提供了一种数据分发网络的实现方法、装置和系统,以至少解决现有的网络传输中间件依赖业务严重、导致通用性差的技术问题。

根据本申请实施例的一个方面,提供了一种数据分发网络的实现方法,包括:部署多个接入节点,其中,每个接入节点对应多种业务类型;每个接入节点接收来自相应客户端的业务数据请求;每个接入节点将业务数据请求转发至相应业务服务器;每个接入节点接收相应业务服务器返回的响应数据,并转发至相应客户端。

进一步地,每个接入节点与相应客户端之间建立tcp连接,每个接入节点与相应业务服务器之间建立http连接。

进一步地,在每个接入节点接收来自相应客户端的业务数据请求之前,方法还包括:获取客户端的链路信息;根据链路信息,为客户端生成一个唯一标识;基于唯一标识,建立客户端与相应接入点的连接。

进一步地,唯一标识为令牌token。

进一步地,在每个接入节点接收来自相应客户端的业务数据请求之后,方法还包括:采集每个接入节点的如下至少一种指标:健康维度数据和业务维度数据,其中,健康维度数据包括如下至少之一:cpu使用率、内存占用率、输入输出、负载量、入网数据字节数、出网数据字节数、tcp连接数、进程总数;业务维度数据包括如下至少之一:预设周期内的活跃用户数、预设周期内的活跃设备数。

进一步地,数据分发网络的实现方法采用容器化部署方式,容器的配置文件包括:多个接入节点的标识信息、多个接入节点所在宿主机的网络地址、多个接入节点所在宿主机的端口号。

根据本申请实施例的另一方面,还提供了一种数据分发网络的实现方法,包括:部署多个接入节点,其中,每个接入节点对应多种业务类型;每个接入节点接收来自相应业务服务器的广播数据;每个接入节点将广播数据转发至相应客户端。

根据本申请实施例的另一方面,还提供了一种数据分发网络的实现系统,包括:客户端,用于发送业务数据请求;多个接入节点,与客户端通信,用于接收来自相应客户端的业务数据请求,其中,每个接入节点对应多种业务类型;业务服务器,与多个接入节点通信,用于接收每个接入节点转发的业务数据请求,并根据业务数据请求返回响应数据;其中,多个接入节点还用于将业务服务器返回的响应数据返回客户端。

进一步地,系统还包括:数据分发中心,用于部署多个接入节点。

根据本申请实施例的另一方面,还提供了一种数据分发网络的实现装置,其特征在于,包括:部署单元,用于部署多个接入节点,其中,每个接入节点对应多种业务类型;接收单元,用于每个接入节点接收来自相应客户端的业务数据请求;第一转发单元,用于每个接入节点将业务数据请求转发至相应业务服务器;第二转发单元,用于每个接入节点接收相应业务服务器返回的响应数据,并转发至相应客户端。

在本申请实施例中,通过部署多个接入节点,使得每个接入节点对应多种业务类型,在接收到来自客户端的业务数据请求后,将接收到业务请求转发至相应的业务服务器,并接收该业务服务器返回的相应数据,转发至相应的客户端。由于只负责数据传输,不关心数据的具体业务处理,达到了提供不依赖于业务的数据分发网络的目的,从实现了提高网络数据传输中间件的通用性的技术效果,进而解决了现有的网络传输中间件依赖业务严重、导致通用性差的技术问题。

附图说明

此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1是根据本申请实施例的一种数据分发网络的实现方法流程图;

图2是根据本申请实施例的一种可选的客户端业务数据转发流程示意图;

图3是根据本申请实施例提供的一种可选的接入节点的健康维度数据健康示意图;

图4是根据本申请实施例提供的一种可选的数据分发网络的实现系统交互示意图;

图5是根据本申请实施例提供的一种可选的接入节点的正常生命周期示意图;

图6是根据本申请实施例提供的一种可选的用户事件处理示意图;

图7是根据本申请实施例提供的一种可选的数据分发网络的实现方法流程图;

图8是根据本申请实施例的一种可选的业务服务器广播数据转发流程示意图;

图9是根据本发明实施例提供的一种数据分发网络的实现系统示意图;以及

图10是根据本发明实施例提供的一种数据分发网络的实现装置示意图。

具体实施方式

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

需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。

目前,很多企业的核心业务主要通过如下两种方式进行构建:

(1)采用http的方式进行构建的核心服务。这种方式在业务需要做水平扩展时,只能依赖nginx,apache等反向代理组件做负载均衡处理。由于http为tcp/ip协议中的应用层协议,依赖于协议层中的tcp协议实施,相对于tcp协议,存在包头数据大且不可做可变包头处理、短链接的通信方式(即每次请求都需要先经过tcp协议的三次握手建立连接,接着发送数据,然后断开连接)的缺点。

(2)采用tcp(udp)的方式进行构建的核心服务。这种方式存在开发调试难、异常定位难、数据包兼容性问题等缺点,且需要针对业务配套进行水平扩展的方案处理,可复用性较低。

针对上述两个场景,本申请提供了一种数据分发网络,主要包括如下三部分:接入节点、核心服务和性能监控插件。

其中,接入节点,监听tcp和http的端口,tcp端口供客户端以tcp的方式建立长连接,http的端口供业务服务器采用restful的方式进行推送方式的数据定向发送。

核心服务,该服务用于维护节点集群,定制节点的分配策略,加密方式,以及数据化展示节点健康指标,节点繁忙指标。

性能监控插件,该插件收集接入节点的健康纬度指标,业务纬度指标。定期发送到核心服务进行数据清洗入库。

需要说明的是,上述核心服务为采用http方式通信的无状态服务,可以采用docker进行容器化部署。上述接入节点也可以采用docker进行容器化部署,在配置文件上输入在核心服务上创建的接入节点id以及接入节点容器所在宿主机的ip、端口属性,以完成接入节点的部署。

容易注意的是,采用docker进行虚拟容器化部署,可以将核心服务和接入节点快速部署在全球各个地区。无需集中处理引入的流量,突破单区域瓶颈。

根据本申请实施例,提供了一种数据分发网络的实现方法实施例,可以实现将客户端的业务数据转发至业务服务器。

图1是根据本申请实施例的一种数据分发网络的实现方法流程图,如图1所示,该方法包括如下步骤:

步骤s101,部署多个接入节点,其中,每个接入节点对应多种业务类型。

具体地,上述接入节点可以是位于客户端与业务服务器之间的网络数据传输中间件,其类型可以是共享的,也可以是独立的。针对不同的业务类型部署相应的接入节点,以实现相应客户端与服务器之间的网络数据转发服务,可以实现不依赖于业务的数据分发网络。

可选地,每个接入节点与客户端之间建立tcp连接,与业务服务器之间建立http连接。

步骤s102,每个接入节点接收来自相应客户端的业务数据请求。

具体地,上述业务数据请求可以是客户端向相应业务服务器发送的数据请求。在部署完不同业务类型的接入节点后,通过每个接入节点与相应客户端之间通信连接(例如,tcp长连接),使得每个接入节点接收相应客户端的业务数据请求。

步骤s103,每个接入节点将业务数据请求转发至相应业务服务器。

具体地,每个接入节点通过与客户端的tcp长连接接收到业务数据请求后,采用http协议与业务服务器通信,以将接收到的业务数据请求转发至相应的业务服务器。

步骤s104,每个接入节点接收相应业务服务器返回的响应数据,并转发至相应客户端。

具体地,每个接入节点在将相应客户端的业务数据请求转发至相应业务服务器后,可以接收业务服务器返回的响应数据,并转发至客户端。

作为一种可选的实施方式,图2是根据本申请实施例的一种可选的客户端业务数据转发流程示意图。

由上可知,在本申请上述实施例中,通过部署多个接入节点,使得每个接入节点对应多种业务类型,在接收到来自客户端的业务数据请求后,将接收到业务请求转发至相应的业务服务器,并接收该业务服务器返回的相应数据,转发至相应的客户端。由于只负责数据传输,不关心数据的具体业务处理,达到了提供不依赖于业务的数据分发网络的目的,从实现了提高网络数据传输中间件的通用性的技术效果,进而解决了现有的网络传输中间件依赖业务严重、导致通用性差的技术问题。

在一种可选的实施例中,在每个接入节点接收来自相应客户端的业务数据请求之前,上述方法还可以包括:获取客户端的链路信息;根据链路信息,为客户端生成一个唯一标识;基于唯一标识,建立客户端与相应接入点的连接。

可选地,上述唯一标识为令牌token。token是服务端生成的一串字符串,以作客户端进行请求的一个令牌,当第一次登录后,服务器生成一个token便将此token返回给客户端,以后客户端只需带上这个token前来请求数据即可,无需再次带上用户名和密码。通过token建立连接,可以减轻服务器的压力,减少频繁的查询数据库,使服务器更加健壮。

在一种可选的实施例中,在每个接入节点接收来自相应客户端的业务数据请求之后,上述方法还可以包括:采集每个接入节点的如下至少一种指标:健康维度数据和业务维度数据,其中,健康维度数据包括如下至少之一:cpu使用率、内存占用率、输入输出、负载量、入网数据字节数、出网数据字节数、tcp连接数、进程总数;业务维度数据包括如下至少之一:预设周期内的活跃用户数、预设周期内的活跃设备数。

具体地,可以通过部署在每个接入节点上的性能监控插件来采集每个接入节点的健康维度数据和业务维度数据,供使用方以及服务方观察。其中,健康维度数据用于体现服务器,以及服务器上的进程是否良好运行的可视化数据展示,健康维度数据包括但不限于:cpu使用率,内存使用率,磁盘io,服务器负载值,入网、出网数据字节数,tcp连接数,进程总数等等。业务维度数据是针对产品的运营目标设立的数据可视化展示名称,包括但不限于:日活跃用户,月活跃用户,日活跃设备,月活跃设备等等。例如,图3是根据本申请实施例提供的一种可选的接入节点的健康维度数据健康示意图。

基于上述任意一种实施例提供的数据分发网络的实现方法开发的网络数据传输中间件可以采用容器化部署方式,容器的配置文件可以包括:多个接入节点的标识信息、多个接入节点所在宿主机的网络地址、多个接入节点所在宿主机的端口号。

作为一种优选的实施例,本申请提供的数据分发网络的实现方法,可以作为一个数据分发网络服务平台(例如,可以是一个应用服务app),首先需要部署核心服务,提供一个用户可操作接入节点、自身相关app信息的后台管理控制台。该数据分发网络服务平台需要提供一个服务方官方管理后台,用于维护不同类型的接入节点(如:共享,独立)。接着获取接入节点的id信息部署多个接入节点,供app绑定的客户端建立tcp长连接,并进行数据转发服务。作为使用方(客户),首先在管理控制台注册账户登录进行使用。创建app,并将接入节点挂在到app上(包括共享的,独立的,私有的)。接下来,使用方的客户端填入app对应的appkey信息后即可链接到对应的接入节点上。

图4是根据本申请实施例提供的一种可选的数据分发网络的实现系统交互示意图,如图4所示,客户端通过向核心服务发送应用程序的标识(例如,appid)以及用户密钥,以向核心服务器请求相应的令牌token;核心服务向客户端返回相应的令牌token;基于该令牌token,获取接入节点的地址信息,以在客户端与接入节点之间建立tcp长连接,在接入节点与业务服务器之间建立http连接。当接入节点接收到来自客户端的业务数据请求的情况下,接入节点将接收到业务数据请求转发至相应的业务服务器,并接收该业务服务器的响应数据,返回至客户端。图5是根据本申请实施例提供的一种可选的接入节点的正常生命周期示意图,图6是根据本申请实施例提供的一种可选的用户事件处理示意图。

根据本申请实施例,还提供了一种数据分发网络的实现方法实施例,可以用于业务服务器向客户端推送数据的场景。

图7是根据本申请实施例提供的一种可选的数据分发网络的实现方法流程图,如图7所示,该方法包括如下步骤:

步骤s701,部署多个接入节点,其中,每个接入节点对应多种业务类型;

步骤s702,每个接入节点接收来自相应业务服务器的广播数据;

步骤s703,每个接入节点将广播数据转发至相应客户端。

作为一种可选的实施方式,图8是根据本申请实施例的一种可选的业务服务器广播数据转发流程示意图。

由上可知,在本申请上述实施例中,通过部署多个接入节点,使得每个接入节点对应多种业务类型,在接收到来自业务服务器的广播数据后,将接收到广播数据转发至相应的客户端。由于只负责数据传输,不关心数据的具体业务处理,达到了提供不依赖于业务的数据分发网络的目的,从实现了提高网络数据传输中间件的通用性的技术效果,进而解决了现有的网络传输中间件依赖业务严重、导致通用性差的技术问题。

根据本申请实施例,还提供了一种数据分发网络的实现系统,图9是根据本发明实施例提供的一种数据分发网络的实现系统示意图,如图9所示,包括:多个客户端901(图9中示出了3个)、多个接入节点902(图9中示出了3个)和多个业务服务器903(图9中示出了3个)。

其中,多个客户端901,用于发送业务数据请求;

多个接入节点902,与客户端通信,用于接收来自相应客户端的业务数据请求,其中,每个接入节点对应多种业务类型;

多个业务服务器903,与多个接入节点通信,用于接收每个接入节点转发的业务数据请求,并根据业务数据请求返回响应数据;

其中,多个接入节点还用于将业务服务器返回的响应数据返回客户端。

由上可知,在本申请上述实施例中,通过部署多个接入节点,使得每个接入节点对应多种业务类型,在接收到来自客户端的业务数据请求后,将接收到业务请求转发至相应的业务服务器,并接收该业务服务器返回的相应数据,转发至相应的客户端。由于只负责数据传输,不关心数据的具体业务处理,达到了提供不依赖于业务的数据分发网络的目的,从实现了提高网络数据传输中间件的通用性的技术效果,进而解决了现有的网络传输中间件依赖业务严重、导致通用性差的技术问题。

可选地,上述系统还包括:数据分发中心,用于部署多个接入节点。

根据本申请实施例,还提供了一种数据分发网络的实现装置实施例,图10是根据本发明实施例提供的一种数据分发网络的实现装置示意图,如图10所示,包括:部署单元1001、接收单元1002、第一转发单元1003和第二转发单元1004。

其中,部署单元1001,用于部署多个接入节点,其中,每个接入节点对应多种业务类型;

接收单元1002,用于每个接入节点接收来自相应客户端的业务数据请求;

第一转发单元1003,用于每个接入节点将业务数据请求转发至相应业务服务器;

第二转发单元1004,用于每个接入节点接收相应业务服务器返回的响应数据,并转发至相应客户端。

由上可知,在本申请上述实施例中,通过部署单元部署多个接入节点,使得每个接入节点对应多种业务类型,通过接收单元接收来自客户端的业务数据请求,并通过第一转发单元将接收到业务请求转发至相应的业务服务器,最后通过第二转发单元接收该业务服务器返回的相应数据,转发至相应的客户端。由于只负责数据传输,不关心数据的具体业务处理,达到了提供不依赖于业务的数据分发网络的目的,从实现了提高网络数据传输中间件的通用性的技术效果,进而解决了现有的网络传输中间件依赖业务严重、导致通用性差的技术问题。

此处需要说明的是,上述部署单元1001、接收单元1002、第一转发单元1003和第二转发单元1004对应于方法实施例中的步骤s101至s104,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述方法实施例所公开的内容。需要说明的是,上述模块作为装置的一部分可以在诸如一组计算机可执行指令的计算机系统中执行。

进一步地,每个接入节点与相应客户端之间建立tcp连接,每个接入节点与相应业务服务器之间建立http连接。

进一步地,上述装置还可以包括:获取单元,用于获取客户端的链路信息;生成单元,用于根据链路信息,为客户端生成一个唯一标识;建立单元,用于基于唯一标识,建立客户端与相应接入点的连接。

进一步地,唯一标识为令牌token。

进一步地,上述装置还可以包括:采集单元,用于采集每个接入节点的如下至少一种指标:健康维度数据和业务维度数据,其中,健康维度数据包括如下至少之一:cpu使用率、内存占用率、输入输出、负载量、入网数据字节数、出网数据字节数、tcp连接数、进程总数;业务维度数据包括如下至少之一:预设周期内的活跃用户数、预设周期内的活跃设备数。

进一步地,数据分发网络的实现方法采用容器化部署方式,容器的配置文件包括:多个接入节点的标识信息、多个接入节点所在宿主机的网络地址、多个接入节点所在宿主机的端口号。

上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。

在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

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

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