数据传输方法及系统
技术领域
本发明涉及数据处理技术,尤其涉及一种数据传输方法及系统。
背景技术
目前的数据传输通常采用logsys(日志系统)方案,logsys即传统的数据上报系统,通过将业务上报的数据汇总到一台处理机器上,然后再统一入库。当客户端调用logsys的API(Application Programming Interface,应用程序接口)写本地文件时,本地客户端上的Agent程序定时将本地文件发送到logserver(logsys系统的服务器)集群。采用logsys进行数据传输时,同一地区所有客户端的Agent程序将logAPI(logsys的API)调用的所有数据发送到统一的logserver集群,且各客户端上的Agent程序按照各客户端对应的IP来选取对应的路由路径,即选取由客户端Agent程序到logserver的数据传输通道;由于各客户端根据自己的IP来自由选取对应的数据传输通道,因此上述数据传输方式存在各数据传输通道负载不均衡的问题。
发明内容
鉴于此,有必要提供一种数据传输方法及系统,旨在解决数据传输过程中出现的数据传输通道负载不均衡的问题。
本发明实施例公开了一种数据传输方法,包括以下步骤:
客户端获取本机调用系统应用程序数据接口所产生的上报数据;
客户端识别所述上报数据的标识信息;
根据所述标识信息,客户端查找已存储的标识信息与数据中转机IP地址映射关系的路由表,获取所述上报数据对应的数据中转机的IP地址;
根据获取的所述数据中转机的IP地址,客户端将所述上报数据发送至对应的数据中转机。
本发明实施例还公开了一种数据传输系统,包括客户端;
所述客户端用于:
获取本机调用系统应用程序数据接口所产生的上报数据;
识别所述上报数据的标识信息;
根据所述标识信息,查找已存储的标识信息与数据中转机IP地址映射关系的路由表,获取所述上报数据对应的数据中转机的IP地址;
根据获取的所述数据中转机的IP地址,将所述上报数据发送至对应的数据中转机。
本发明实施例通过客户端获取本机调用系统应用程序数据接口所产生的上报数据,识别所述上报数据的标识信息;根据所述标识信息,查找已存储的标识信息与数据中转机IP地址映射关系的路由表,获取所述上报数据对应的数据中转机的IP地址;根据获取的所述数据中转机的IP地址,客户端将所述上报数据发送至对应的数据中转机;相较于现有技术中,由客户端根据自身的IP地址随意选取对应的数据中转机的方法,本发明实施例实现了各数据传输通道上负载均衡的有益效果;进一步地,当数据中转机出现变更时,各客户端也能及时获悉,并对应调整上报数据的传输通道,提高了数据传输的效率和系统的稳定性,保证传输的数据不会丢失;另外,数据中转机能够根据上报数据的标识信息将该上报数据转发至对应的目标数据库,具有自动将上报数据进行分拣的有益效果,满足业务需求,提高了系统的智能性。
附图说明
图1是本发明数据传输方法第一实施例流程示意图;
图2是本发明数据传输方法中路由表一具体表现形式示意图;
图3是本发明数据传输方法第二实施例流程示意图;
图4是实施本发明数据传输方法的系统一实施例整体架构示意图;
图5是本发明数据传输方法中系统控制器提供的配置界面一具体表现形式示意图;
图6是本发明数据传输系统第一实施例功能模块示意图;
图7是本发明数据传输系统第二实施例功能模块示意图;
图8是本发明数据传输系统第三实施例功能模块示意图。
本发明实施例目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
以下结合说明书附图及具体实施例进一步说明本发明的技术方案。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
图1是本发明数据传输方法第一实施例流程示意图;如图1所示,本发明数据传输方法包括以下步骤:
步骤S01、获取本机调用系统应用程序数据接口所产生的上报数据;
客户端接收本机所有调用系统应用程序数据接口进行数据上报的进程发来的上报数据,比如,用户的行为数据、客户端上调用应用程序数据接口的其他程序或者进程所产生的数据,均由客户端本机上进行数据上报的进程发送至客户端。
本实施例中,可以在客户端上部署一进程,用于接收客户端本机所有调用了应用程序数据接口进行数据上报的进程发来的数据,该应用程序可以为Agent。Agent是一个具有自适应性和智能性的软件实体,能代表用户或其它程序,以主动服务的方式完成一项工作。Agent至少应具备以下几方面的关键属性:①自主性:Agent具有属于其自身的计算资源和局部于自身行为控制的机制,能在无外界直接操纵的情况下,根据其内部状态和感知到的(外部)环境信息,决定和控制自身的行为。②交互性:能与其他Agent进行多种形式的交互,能有效地与其他Agent协同工作。③反应性:能感知所处的环境,并对相关事件做出适时反应。④主动性:能遵循承诺采取主动行动,表现出面向目标的行为。⑤推理和规划能力:Agent具有学习知识和经验及进行相关的推理和智能计算的能力。
为了便于描述,本实施例均以Agent为例进行后续的描述。
步骤S02、识别所述上报数据的标识信息;
步骤S03、根据所述标识信息,查找已存储的标识信息与数据中转机IP地址映射关系的路由表,获取所述上报数据对应的数据中转机的IP地址;
Agent接收到上报数据后,识别上报数据的标识信息;根据客户端存储的路由表,查询这条上报数据的标识信息所对应数据中转机的IP地址。
本实施例中,上报数据中存在一个必填的字段logname(标识),该logname字段标识这条上报数据所属的配置信息;Agent接收到这条上报数据后,获取这条数据的标识信息,并根据客户端内存中的路由表来查询这条数据的logname标识所对应的数据中转机的IP地址。所述路由表存储的是上报数据的标识信息与数据中转机的IP地址的映射关系,因此,根据某条上报数据的标识信息,通过查询存储的路由表即可获取传输这条上报数据所对应的数据中转机的IP地址,从而在客户端的Agent与对应的数据中转机之间建立数据传输通道。
客户端本机存储的标识信息与数据中转机IP地址映射关系的路由表的一种具体表现方式请图2,图2是本发明数据传输方法中路由表一具体表现形式示意图。该表中IP地址即为数据中转机对应的IP地址,logname即上报数据的标识信息;Agent根据上报数据中标识信息,通过查询路由表即可获取该标识信息对应的IP地址,从而将该条上报数据发送至IP地址对应的数据中转机。
步骤S04、根据获取的所述数据中转机的IP地址,将所述上报数据发送至对应的数据中转机。
客户端的Agent根据获取的数据中转机的IP地址,基于Agent与该数据中转机之间的数据传输通道,将接收到这条上报数据传输给对应的数据中转机。
在一优选的实施例中,考虑到数据传输通道的容灾和平行扩展,系统可以设置某一条标识信息对应多个不同IP地址的数据中转机。当客户端的Agent根据上报数据的标识信息获取到对应的数据中转机的IP地址有多个时,即Agent可以与多个数据中转机建立不同的数据传输通道以传输上报数据时,Agent可以采用轮询的方式将标识信息相同的各条上报数据依次发送至各IP地址对应的数据中转机。
本发明实施例通过客户端获取本机调用系统应用程序数据接口所产生的上报数据,识别所述上报数据的标识信息;根据所述标识信息,查找已存储的标识信息与数据中转机IP地址映射关系的路由表,获取所述上报数据对应的数据中转机的IP地址;根据获取的所述数据中转机的IP地址,客户端将所述上报数据发送至对应的数据中转机,实现了各数据传输通道上负载均衡的有益效果。
图3是本发明数据传输方法第二实施例流程示意图;基于图1所述实施例的具体描述,图3在步骤S04、所述根据获取的所述数据中转机的IP地址,客户端将所述上报数据发送至对应的数据中转机,之后还包括:
步骤S05、数据中转机根据所述上报数据中的标识信息,将接收到的所述上报数据转发至对应的目标数据库。
本实施例仅对步骤S05进行具体描述,有关本发明数据传输方法所涉及的其他步骤请参照图1所述实施例的具体描述,在此不再赘述。
本实施例中,数据中转机接收到客户端传输过来的上报数据时,根据上报数据所包含的标识信息,将接收的上报数据转发至该上报数据标识信息对应的目标数据库。
本实施例中,系统可以根据具体业务需求来配置不同的数据中转集群。在上述的路由表中,上报数据的标识信息标识了对应的数据中转机;即数据中转机专门收集哪些标识信息的上报数据。
继续参照图2所示的路由表,同样地,通过该路由表,所述上报数据中的标识信息也标识对应IP地址的数据中转机能够收集哪些标识信息的上报数据。上表中,logname对应的类型为all时,表示该IP地址对应的数据中转机为通用集群,接收没有特定路由的所有数据。
比如,Agent查找到标识信息对应的IP地址的格式如下:
logname1 : ip1,ip2,ip3
logname2: ip1,ip2,ip3
all: ip4,ip5,ip6
Agent读取到这个路由表之后,就会对客户端本机调用应用程序数据接口的进程发来的上报数据中的logname进行分类;对于标识信息为logname1的上报数据,Agent会路由到ip1~ip3对应的数据中转机,对于标识信息为logname2的上报数据,Agent会路由到ip1~ip3对应的数据中转机, 而标识信息为其他logname的上报数据,Agent都会转发到 ip4 ~ip6对应的数据中转机,由此便实现了按照业务类型转发到不同的集群的功能,再由数据中转机发送至对应的目标数据库。
本实施例数据中转机能够根据上报数据的标识信息将该上报数据转发至对应的目标数据库,具有自动将上报数据进行分拣的有益效果,满足各类业务的不同需求,提高了系统的智能性。
图4是实施本发明数据传输方法的系统一实施例整体架构示意图;在具体的应用场景中,客户端上部署的Agent、数据中转机及对应的业务集群可以部署为图4所示的场景;图4中Proxy具备本发明数据传输方法实施例中数据中转机的所有功能,管理server和管理DB(Data Base,数据库)具备本发明数据传输方法实施例中系统控制器的所有功能,安全平台、分析平台、监控平台以及CLOG集群具备本发明数据传输方法实施例中目标数据库的所有功能,其中调试server可以理解为后台维护人员对整个系统的操作机。
基于图1和图3所述实施例的具体描述,图4中,Agent按照预设时长向管理server发送获取所述路由表的请求信息,从管理server拉取最新的路由信息即路由表,并将最新的路由表保存在客户端本地的文件中;一旦Agent发生重启,或者由于管理server故障而无法提供路由信息,造成客户端本机无路由信息,则客户端会优先根据本地存储的最新路由表进行恢复,从而获取上报数据的标识信息所对应的数据中转机的IP地址,保证Agent总能够将一条上报数据正确地转发给对应的proxy。
系统控制器根据数据中转机按照预设周期上报的通信状态,更新所述路由表。系统控制器在预设个数的周期内均未接收到数据中转机上报的正常通信状态,则将所述数据中转机对应的IP地址设置为不可用,并删掉所述路由表中存储的所述数据中转机对应的IP地址。在获取的所述数据中转机的IP地址不可用时,客户端根据所述上报数据的标识信息,尝试将所述上报数据发送至其他正常的数据中转机。
系统控制器接收到新增加的数据中转机上报的正常通信状态,或者接收到已故障的数据中转机重新上报的正常通信状态时,获取所述数据中转机对应的IP地址,并将获取的IP地址记录在所述路由表中。
图4所示的具体部署场景中,在路由功能上,管理server接收每台Agent定时发送的路由表请求数据,并将最新的路由表返回给Agent,以保证整个数据传输系统中数据流的正确走向。图4中的proxy是数据传输系统中的数据中转环节,所有数据均需通过proxy来转向最终的目标数据库。proxy通过定时上报心跳的方式,告知管理server,自己是一台proxy,并且现在数据存活状态,管理server收到了proxy的心跳就会将这个proxy的IP地址添加到路由表,并对应更新路由表;在接收下一轮Agent请求路由表的请求信息时,管理server便将更新后的路由表返回给Agent,如此Agent便会根据路由表中与该IP地址对应的上报数据发送到这台proxy上。
当proxy出现故障后,proxy心跳将无法正常上报至管理server,管理server在几个心跳周期都没有收到这台proxy的心跳后,就认为这台proxy已经故障,则管理server自动更新数据库中的路由配置,将这台proxy对应的IP地址置为不可用,并自动清理掉路由表中的故障IP。在下一轮Agent请求路由表的过程中,管理server将更新后的路由表发送至Agent,Agent得到新的路由表,将对应的上报数据全部转发到其他IP地址对应的proxy,故障IP地址对应的proxy接收到的上报数据则越来越少,直至没有。对于这期间发送到故障IP地址对应的proxy失败的数据包,Agent也会尝试重发给其他正常的proxy,从而保证数据不会丢失。
当有新的proxy机器环境准备好之后,启动proxy进程,新proxy将会开始向管理server上报心跳,这时管理server将该proxy对应的IP地址的状态设置为“心跳上报”中,管理server向管理员提供的配置界面的一种具体实现方式请参照图5,图5是本发明数据传输方法中系统控制器提供的配置界面一具体表现形式示意图;基于图5所示的配置界面,当管理员确认这个IP地址可以上线时,管理server根据管理员触发的操作指令,在配置页面将该IP地址的状态变更为“运营”。此时管理server将会把新的proxy对应的新的IP地址加入路由表,在下一轮Agent请求路由表的过程中,管理server将更新后的路由表提供给Agent,Agent也会根据上报数据的标识信息,将对应的上报数据传输到新扩容的IP地址对应的proxy上。
本实施例当数据中转机出现变更时,各客户端也能及时获悉,并对应调整上报数据的传输通道,提高了数据传输的效率和系统的稳定性,保证传输的数据不会丢失。
图6是本发明数据传输系统第一实施例功能模块示意图;如图6所示,本发明数据传输系统包括:客户端100。
所述客户端100用于:
获取本机调用系统应用程序数据接口所产生的上报数据;
识别所述上报数据的标识信息;
根据所述标识信息,查找已存储的标识信息与数据中转机IP地址映射关系的路由表,获取所述上报数据对应的数据中转机的IP地址;
根据获取的所述数据中转机的IP地址,将所述上报数据发送至对应的数据中转机。
本实施例中,客户端100接收本机所有调用系统应用程序数据接口进行数据上报的进程发来的上报数据,比如,用户的行为数据、客户端100上调用应用程序数据接口的其他程序或者进程所产生的数据,均由客户端100本机上进行数据上报的进程发送至客户端100。
本实施例中,可以在客户端100上部署一进程,用于接收客户端100本机所有调用了应用程序数据接口进行数据上报的进程发来的数据,该应用程序可以为Agent。有关Agent的具体描述请参照相关实施例的具体描述,在此不再赘述。
Agent接收到上报数据后,识别上报数据的标识信息;根据客户端100存储的路由表,查询这条上报数据的标识信息所对应数据中转机的IP地址。
本实施例中,上报数据中存在一个必填的字段logname,该logname字段标识这条上报数据所属的配置信息;Agent接收到这条上报数据后,获取这条数据的标识信息,并根据客户端100内存中的路由表来查询这条数据的logname标识所对应的数据中转机的IP地址。所述路由表存储的是上报数据的标识信息与数据中转机的IP地址的映射关系,因此,根据某条上报数据的标识信息,通过查询存储的路由表即可获取传输这条上报数据所对应的数据中转机的IP地址,从而在客户端100的Agent与对应的数据中转机之间建立数据传输通道。
客户端100本机存储的标识信息与数据中转机IP地址映射关系的路由表的一种具体表现方式请参照图2,图2所示的路由表中IP地址即为数据中转机对应的IP地址,logname即上报数据的标识信息;Agent根据上报数据中标识信息,通过查询路由表即可获取该标识信息对应的IP地址,从而将该条上报数据发送至IP地址对应的数据中转机。
客户端100的Agent根据获取的数据中转机的IP地址,基于Agent与该数据中转机之间的数据传输通道,将接收到这条上报数据传输给对应的数据中转机。
在一优选的实施例中,考虑到数据传输通道的容灾和平行扩展,系统可以设置某一条标识信息对应多个不同IP地址的数据中转机。当客户端100的Agent根据上报数据的标识信息获取到对应的数据中转机的IP地址有多个时,即Agent可以与多个数据中转机建立不同的数据传输通道以传输上报数据时,Agent可以采用轮询的方式将标识信息相同的各条上报数据依次发送至各IP地址对应的数据中转机。
本发明实施例通过客户端获取本机调用系统应用程序数据接口所产生的上报数据,识别所述上报数据的标识信息;根据所述标识信息,查找已存储的标识信息与数据中转机IP地址映射关系的路由表,获取所述上报数据对应的数据中转机的IP地址;根据获取的所述数据中转机的IP地址,客户端将所述上报数据发送至对应的数据中转机,实现了各数据传输通道上负载均衡的有益效果。
图7是本发明数据传输系统第二实施例功能模块示意图;本实施例中,数据传输系统还包括:
数据中转机200,用于根据所述上报数据中的标识信息,将接收到的所述上报数据转发至对应的目标数据库。
本实施例仅对数据中转机200进行具体描述,有关本发明数据传输系统所涉及的客户端100请参照图6所述实施例的具体描述,在此不再赘述。
本实施例中,数据中转机200接收到客户端100传输过来的上报数据时,根据上报数据所包含的标识信息,将接收的上报数据转发至该上报数据标识信息对应的目标数据库。
本实施例中,系统可以根据具体业务需求来配置不同的数据中转集群。在上述的路由表中,上报数据的标识信息标识了对应的数据中转机200;即数据中转机200专门收集哪些标识信息的上报数据。
继续参照图2所示的路由表,同样地,通过该路由表,所述上报数据中的标识信息也标识对应IP地址的数据中转机200能够收集哪些标识信息的上报数据。上表中,logname对应的类型为all时,表示该IP地址对应的数据中转机200为通用集群,接收没有特定路由的所有数据。
比如,Agent查找到标识信息对应的IP地址的格式如下:
logname1 : ip1,ip2,ip3
logname2: ip1,ip2,ip3
all: ip4,ip5,ip6
Agent读取到这个路由表之后,就会对客户端100本机调用应用程序数据接口的进程发来的上报数据中的logname进行分类;对于标识信息为logname1的上报数据,Agent会路由到ip1~ip3对应的数据中转机200,对于标识信息为logname2的上报数据,Agent会路由到ip1~ip3对应的数据中转机200, 而标识信息为其他logname的上报数据,Agent都会转发到 ip4 ~ ip6对应的数据中转机200,由此便实现了按照业务类型转发到不同的集群的功能,再由数据中转机200发送至对应的目标数据库。
本实施例数据中转机能够根据上报数据的标识信息将该上报数据转发至对应的目标数据库,具有自动将上报数据进行分拣的有益效果,满足各类业务的不同需求,提高了系统的智能性。
图8是本发明数据传输系统第三实施例功能模块示意图。本实施例中,数据传输系统还包括:
系统控制器300,用于根据数据中转机按照预设周期上报的通信状态,更新所述路由表。
请一并参照图4和图8,本实施例中,部署在客户端100的Agent按照预设时长向系统控制器300发送获取所述路由表的请求信息,从系统控制器300拉取最新的路由信息即路由表,并将最新的路由表保存在客户端100本地的文件中;一旦Agent发生重启,或者由于系统控制器300故障而无法提供路由信息,造成客户端100本机无路由信息,则客户端100会优先根据本地存储的最新路由表进行恢复,从而获取上报数据的标识信息所对应的数据中转机的IP地址,保证Agent总能够将一条上报数据正确地转发给对应的数据中转机200。
系统控制器100根据数据中转机200按照预设周期上报的通信状态,更新所述路由表。系统控制器100在预设个数的周期内均未接收到数据中转机200上报的正常通信状态,则将所述数据中转机200对应的IP地址设置为不可用,并删掉所述路由表中存储的所述数据中转机200对应的IP地址。在获取的所述数据中转机200的IP地址不可用时,客户端100根据所述上报数据的标识信息,尝试将所述上报数据发送至其他正常的数据中转机200。
系统控制器100接收到新增加的数据中转机200上报的正常通信状态,或者接收到已故障的数据中转机200重新上报的正常通信状态时,获取所述数据中转机200对应的IP地址,并将获取的IP地址记录在所述路由表中。
进一步地,在路由功能上,系统控制器300接收每台客户端100上的Agent定时发送的路由表请求数据,并将最新的路由表返回给Agent,以保证整个数据传输系统中数据流的正确走向。数据中转机200是数据传输系统中的数据中转环节,所有数据均需通过数据中转机200来转向最终的目标数据库。数据中转机200通过定时上报心跳的方式,告知系统控制器300,自己是一台数据中转机200,并且现在数据存活状态,系统控制器300收到了数据中转机200的心跳就会将这个数据中转机200的IP地址添加到路由表,并对应更新路由表;在接收下一轮Agent请求路由表的请求信息时,系统控制器300便将更新后的路由表返回给Agent,如此Agent便会根据路由表中与该IP地址对应的上报数据发送到这台数据中转机200上。
当数据中转机200出现故障后,数据中转机200心跳将无法正常上报至系统控制器300,系统控制器300在几个心跳周期都没有收到这台数据中转机200的心跳后,就认为这台数据中转机200已经故障,则系统控制器300自动更新数据库中的路由配置,将这台数据中转机200对应的IP地址置为不可用,并自动清理掉路由表中的故障IP。在下一轮Agent请求路由表的过程中,系统控制器300将更新后的路由表发送至Agent,Agent得到新的路由表,将对应的上报数据全部转发到其他IP地址对应的数据中转机200,故障IP地址对应的数据中转机200接收到的上报数据则越来越少,直至没有。对于这期间发送到故障IP地址对应的数据中转机200失败的数据包,Agent也会尝试重发给其他正常的数据中转机200,从而保证数据不会丢失。
当有新的数据中转机200机器环境准备好之后,启动数据中转机200进程,新数据中转机200将会开始向系统控制器300上报心跳,这时系统控制器300将该数据中转机200对应的IP地址的状态设置为“心跳上报”中,系统控制器300向管理员提供的配置界面的请继续参照图5,基于图5所示的配置界面,当管理员确认这个IP地址可以上线时,系统控制器300根据管理员触发的操作指令,在配置页面将该IP地址的状态变更为“运营”。此时系统控制器300将会把新的数据中转机200对应的新的IP地址加入路由表,在下一轮Agent请求路由表的过程中,系统控制器300将更新后的路由表提供给Agent,Agent也会根据上报数据的标识信息,将对应的上报数据传输到新扩容的IP地址对应的数据中转机200上。
本实施例当数据中转机出现变更时,各客户端也能及时获悉,并对应调整上报数据的传输通道,提高了数据传输的效率和系统的稳定性,保证传输的数据不会丢失。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质如图3中的管理DB或者图6至图8所示的系统控制器300中,所述计算机软件产品包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)如图6至图8所示的客户端100,或者图6至图8所示的系统控制器300执行本发明各个实施例所述的方法。
以上所述仅为本发明的优选实施例,并非因此限制其专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。