欢迎光临小豌豆知识网!
当前位置:首页 > 电学技术 > 电通讯技术> 一种业务数据转发方法及服务器独创技术19372字

一种业务数据转发方法及服务器

2021-03-30 17:38:02

一种业务数据转发方法及服务器

  技术领域

  本发明涉及数据通信技术领域,尤其涉及一种业务数据转发方法及服务器。

  背景技术

  当前物联网技术已经广泛地应用到各个应用场景中,在这些应用场景中,传感器数据(业务数据)的传输起到了至关重要的作用。但对于同一个发送方(如客户端)的数据源,不同的接收方都会有特定通信协议和数据格式要求,同时发送方为了减少上行流量,数据源只会往专一的服务器发送业务数据,故需要服务器根据配置项将业务数据进行不同方式处理并转发至目标接收方。随着互联网技术的快速发展,用户数量迅速增长,相应地在多种应用场景下需要主机(如服务器)实现业务数据的转发,服务器需要处理的业务数据也随之激增,这必然导致服务器的压力超过其所能承受的范围。

  现有技术中的解决方案是由服务器构成服务器集群,并在该服务器集群前部署负载均衡(LB,Balance),LB主要负责分发设备的连接以及向服务器发送消息,以提高服务器集群的可用性、实现负载平衡以及动态扩容。每个服务器需要集成多个转发模块,同时转发业务数据至不同需求接收方,以此缓解业务数据转发的压力。

  然而,受制于服务器的处理能力和服务器资源,容易出现业务数据转发中断而造成网络丢包(如数据丢失),导致业务数据反复发送,进而影响了业务数据的处理效率。若服务器集群中某台服务器出现转发堵塞,将会使得服务器集群中其他服务器压力激增,导致服务器集群出现异常。可见,现有方案难以保证业务数据转发的完整性。

  发明内容

  本发明的目的是提供一种业务数据转发方法及服务器,能够保证业务数据转发的完整性。

  第一方面,本发明实施例提供一种业务数据转发方法,包括:

  接收发送端发送的待转发的业务数据;

  将所述业务数据落盘至文件队列中,所述文件队列位于外部存储设备上;

  将所述文件队列中的所述业务数据转发至接收端。

  可选地,所述将所述业务数据落盘至文件队列中,包括:

  将所述业务数据按照定时或指定大小的方式生成数据文件;

  将所述数据文件落盘至预设的文件存储路径文件夹,并更新预设的文件记录数索引。

  可选地,所述将所述文件队列中的所述业务数据转发至接收端,包括:

  读取最后派发日期、最后的派发文件队列序号以及转发索引文件,以确定所述文件队列的记录位置;

  基于所述文件队列的记录位置对所述文件队列中的所述业务数据进行批量读取并转发至接收端。

  可选地,所述基于所述文件队列的记录位置对所述文件队列中的所述业务数据进行批量读取并转发至接收端,之后包括:

  若所述文件队列中的所述业务数据成功转发至所述接收端,则更新所述转发索引文件;

  若所述文件队列中的所述业务数据未成功转发至所述接收端,则进行重试转发。

  可选地,所述方法还包括:

  若所述文件队列中的所述业务数据转发完毕,则自动删除所述文件队列,跳转至下一个文件队列并更新所述转发索引文件。

  可选地,所述方法还包括:

  生成文件存储路径文件夹以及文件记录数索引,其中,所述文件夹生成规则为:年/月/日,以及隔天自动生成新存储路径;

  设置所述文件队列的存储超时时间、所述队列文件的大小以及派发所述队列文件的等待超时。

  可选地,所述接收发送端发送的待转发的业务数据,之后包括:

  对所述业务数据进行预处理操作,所述预处理操作包括数据校验。

  第二方面,本发明实施例提供一种服务器,包括:

  接收模块,用于接收发送端发送的待转发的业务数据;

  落盘模块,用于将所述业务数据落盘至文件队列中,所述文件队列位于外部存储设备上;

  转发模块,用于将所述文件队列中的所述业务数据转发至接收端。

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

  第四方面,本发明实施例提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述方法。

  本发明实施例提供的业务数据转发方法及服务器,由于文件队列位于外部存储设备上,而外部存储设备具有缓存功能,从而能够保证当业务数据转发异常或堵塞时也不会出现数据丢失,保证了业务数据转发的完整性。

  附图说明

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

  图1为本发明实施例提供的一种业务数据转发方法流程图;

  图2为本发明实施例提供的一种单台多服务队列的业务数据转发方法示意图;

  图3为本发明实施例提供的一种服务器结构示意图;

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

  具体实施方式

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

  请参阅图1,本发明实施例公开了一种业务数据转发方法方法,包括:

  101、接收发送端发送的待转发的业务数据;

  发送端(如客户端)确定待转发的业务数据后,将待转发的业务数据发送给服务器,从而服务器接收到客户端发送的待转发的业务数据。

  服务器可以包括接收服务;其中,接收服务可以只接收客户端发送的业务数据,做数据校验等预处理操作,不做其他的额外处理,以提升单台服务器的数据接收能力。

  102、将所述业务数据落盘至文件队列中,所述文件队列位于外部存储设备上;

  服务器还可以包括文件队列服务;其中,文件队列服务可以接收接收服务发送过来的业务数据,并将接收的业务数据落盘至文件队列中,文件队列位于外部存储设备上,比如磁盘、硬盘等。由于业务数据会落盘在外部存储设备后再进行转发操作,从而保证了即使服务程序出现堵塞或异常,也不会出现数据丢失的情况。

  103、将所述文件队列中的所述业务数据转发至接收端。

  服务器还可以包括转发服务;其中转发服务可以实时加载文件队列中的业务数据,并可以进行数据组包转发操作。

  本发明实施例提供的业务数据转发方法,由于文件队列位于外部存储设备上,而外部存储设备具有缓存功能,从而能够保证当业务数据转发异常或堵塞时也不会出现数据丢失,保证了业务数据转发的完整性。

  在前述方法实施例的基础上,步骤102中将所述业务数据落盘至文件队列中,包括:

  将所述业务数据按照定时或指定大小的方式生成数据文件;

  将所述数据文件落盘至预设的文件存储路径文件夹,并更新预设的文件记录数索引。

  具体地,服务器可以将待转发的业务数据按照定时或指定大小的方式,生成数据文件,并落盘至预设的文件存储路径文件夹,以及更新预设的文件记录数索引。例如,在生成数据文件后,服务器可以将数据文件落盘至指定路径,如按年/月/日生成路径,数据文件的文件名如:0001.dq,0002.dq,0003.dq等。需要说明的是,上述文件记录数索引又称文件存储索引,用于存储当前文件队列的文件号。

  进一步地,服务器需要预先设置或生成文件存储路径文件夹以及文件记录数索引。从而所述方法还包括:生成文件存储路径文件夹以及文件记录数索引,其中,所述文件夹生成规则为:年/月/日,以及隔天自动生成新存储路径;设置所述文件队列的存储超时时间、所述队列文件的大小以及派发所述队列文件的等待超时。

  例如,在服务器启动文件队列服务后,文件队列服务将自动生成当天缓存文件存储路径文件夹及文件记录数索引,进一步设置队列文件的存储超时时间阈值、队列文件的大小阈值以及派发所述队列文件的等待超时阈值。进一步地,在文件队列服务接收到业务数据后,在当前队列文件下,若接收到的业务数据的大小大于当前队列文件的大小阈值,或接收到的业务数据的接收时间大于当前队列文件的存储超时时间阈值,则可以采用多服务队列方式自动将接收到的业务数据刷写至其他的队列文件,即自动将接收到的业务数据刷写至其他的存储路径文件夹,并更新相应的文件记录数索引。

  在前述方法实施例的基础上,步骤103中将所述文件队列中的所述业务数据转发至接收端,包括:

  读取最后派发日期、最后的派发文件队列序号以及转发索引文件,以确定所述文件队列的记录位置;

  基于所述文件队列的记录位置对所述文件队列中的所述业务数据进行批量读取并转发至接收端。

  进一步地,所述基于所述文件队列的记录位置对所述文件队列中的所述业务数据进行批量读取并转发至接收端,之后包括:

  若所述文件队列中的所述业务数据成功转发至所述接收端,则更新所述转发索引文件;

  若所述文件队列中的所述业务数据未成功转发至所述接收端,则进行重试转发。

  具体地,在进行重试转发的同时,还可以中断后续其他业务数据的转发,直至当前业务数据转发成功。

  更进一步地,所述方法还包括:

  若所述文件队列中的所述业务数据转发完毕,则自动删除所述文件队列,跳转至下一个文件队列并更新所述转发索引文件。

  例如,在服务器启动转发服务后,加载或读取最后派发日期及最后的派发队列文件序号,加载对应派发日期目录下的转发索引文件,确定待转发文件队列的记录位置。然后启动并发派发线程进行数据批量读取及转发,转发成功后将更新转发索引文件,若转发时报将一直进行重试发送。待当前的文件队列转发完毕后,服务器将自动删除该文件队列,并跳转至下一个文件队列继续进行业务数据加载及转发。需要说明的是,转发索引文件又称文件分发索引,用于存储当前待分发队列(文件队列)文件号及每个发送端设备在该文件分发索引中分发完成的记录位置(二叉树索引位置)。

  服务器不仅可以提供单台单服务队列转发服务,为了减少平均响应时间,服务器还可以提供单台多服务队列转发服务,如服务器可以提供多个文件队列服务。具体地,图2为本发明实施例提供的一种单台多服务队列的业务数据转发方法示意图,下面通过图2对本发明实施例的业务数据转发方法进行补充说明:

  接收服务启动后,将接收到的业务数据分别发送至相应的M个文件队列服务中,如文件队列服务1...文件队列服务N...文件队列服务M。每个文件队列服务将接收到的业务数据落盘至相应的队列中,如文件队列服务1将接收到的业务数据落盘至队列1中,文件队列服务N将接收到的业务数据落盘至队列N中,文件队列服务M将接收到的业务数据落盘至队列M中。每个队列对应一个转发服务,转发服务加载相应的队列中的业务数据,并转发至接收端,如转发服务1对应队列1,转发服务1加载队列1中的业务数据,并转发至接收端;转发服务N对应队列N,转发服务N加载队列N中的业务数据,并转发至接收端;转发服务M对应队列M,转发服务M加载队列M中的业务数据,并转发至接收端。如下表1所示,表1为本发明实施例提供的一种转发模式性能对比表,即转发模式(方案)分别为单台单服务队列转发和单台多服务队列转发性能对比表。

  

  

  表1

  从表1中可以看出,采用单台多服务队列转发方式,相对于采用单台单服务转发方式,能够减少平均响应时间。

  在前述方法实施例的基础上,在步骤101接收发送端发送的待转发的业务数据,之后包括:

  对所述业务数据进行预处理操作,所述预处理操作包括数据校验。

  例如,在服务器启动接收服务后,接收服务使用I/0多路复用技术提高业务数据接收能力。自动连接需要业务数据转发的对应文件队列服务,接收客户端的传感器数据,并进行数据校验拆包后发送至文件队列服务。

  综上可见,本发明实施例提供的业务数据转发方法,首先适用于物联网环境下大量传感器数据的透传或者传输协议转换等相关的应用,能够在一台服务器上同时承担数据接收器与数据转发器的功能。

  其次,极大提高了单台服务器数据接收能力及转发处理能力。

  再次,对于不同的转发需求,只需对文件队列进行改动即可,避免了重复开发的时间。

  最后,因数据会落盘在外部存储设备后再进行转发操作,保证了即使服务程序出现堵塞或异常,也不会出现数据丢失情况。

  基于上述实施例的内容,本发明实施例提供了一种服务器,该服务器用于执行上述方法实施例中提供的业务数据转发方法。参见图3,该装置包括:

  接收模块301,用于接收发送端发送的待转发的业务数据;

  落盘模块302,用于将所述业务数据落盘至文件队列中,所述文件队列位于外部存储设备上;

  转发模块303,用于将所述文件队列中的所述业务数据转发至接收端。

  本发明实施例提供的服务器,由于文件队列位于外部存储设备上,而外部存储设备具有缓存功能,从而能够保证当业务数据转发异常或堵塞时也不会出现数据丢失,保证了业务数据转发的完整性。

  本发明实施例的服务器,可以用于执行前述方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。

  图4示例了一种电子设备的实体结构示意图,如图4所示,该电子设备可以包括:处理器(processor)401、通信接口(Communications Interface)402、存储器(memory)403和通信总线404,其中,处理器401,通信接口402,存储器403通过通信总线404完成相互间的通信。处理器401可以调用存储器403中的逻辑指令,以执行如下方法:接收发送端发送的待转发的业务数据;将所述业务数据落盘至文件队列中,所述文件队列位于外部存储设备上;将所述文件队列中的所述业务数据转发至接收端。

  此外,上述的存储器403中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

  另一方面,本发明实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的方法,例如包括:接收发送端发送的待转发的业务数据;将所述业务数据落盘至文件队列中,所述文件队列位于外部存储设备上;将所述文件队列中的所述业务数据转发至接收端。

  以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

  通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。

  最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

《一种业务数据转发方法及服务器.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式(或pdf格式)