数据传输方法、装置、芯片系统以及可读存储介质与流程
未命名
09-11
阅读:94
评论:0

1.本技术涉及大数据领域,尤其涉及一种数据传输方法、装置、芯片系统以及可读存储介质。
背景技术:
2.目前,客户端可以向服务器发送请求消息以使服务器向另一个服务器发送数据。服务器接收客户端的请求消息,基于该请求消息,可以扫描所有的文件以采集所需传输的数据,并向另一个服务器传输数据。
3.但是,当服务器需要向另一个服务器传输海量数据时,存在数据传输效率低的问题。
技术实现要素:
4.本技术提供了一种数据传输方法、装置、芯片系统以及可读存储介质,有利于提高数据传输效率。
5.第一方面,提供了一种数据传输方法,应用于第一服务器,包括:接收来自客户端的第一请求消息,第一请求消息用于请求第一服务器向第二服务器发送在第一时间段内数据类型为第一数据类型的文件,第一请求消息包括第一路径和第二路径,第一路径为采集文件的路径,第二路径为第二服务器的路径;基于第一请求消息,每隔第二时间段,获取第一路径下的文件更新时间;若这一次获取的文件更新时间与上一次获取的文件更新时间不同,则扫描第一路径下的文件以采集第一时间段内数据类型为第一数据类型的第一文件;基于第二路径向第二服务器发送第一文件。
6.本技术提供的数据传输方法,每次扫描的是第一路径下发生更新的文件,不需要扫描不发生变化的文件,即将全量扫描文件更改为实时监听增量扫描,有利于减少扫描耗时,提高数据传输效率。
7.结合第一方面,在第一方面的某些实现方式中,基于第二路径向第二服务器发送第一文件,包括:获取第一文件的更新时间;若第一文件的文件更新时间与当前时间之差在第三时间段内,则监测第一文件的大小是否发生变化;若第一文件的大小不发生变化,向第二服务器发送第一文件。
8.这种实现方式,第一文件的文件更新时间与当前时间之差在第三时间段内,可以说明更新时间较近,为了避免第一文件正在更新,第一服务器可以监测第一文件的大小是否发生变化,在第一文件的大小不发生变化的情况下,传输第一文件,有利于保证数据传输的准确性,有利于避免传输的文件与第一服务器存储的文件不同。
9.结合第一方面,在第一方面的某些实现方式中,方法还包括:若第一文件的大小发生变化,则进入等待,直至第一文件的大小不发生变化。
10.这种实现方式,在第一文件的大小发生变化的情况下,等待其更新完成,再将传输第一文件,有利于保证数据传输的准确性,有利于避免传输的文件与第一服务器存储的文
件不同。
11.结合第一方面,在第一方面的某些实现方式中,基于第二路径向第二服务器发送第一文件,包括:通过线程基于第二路径向第二服务器发送第一文件,第一文件的数量与线程的数量相同。
12.这种实现方式,每个文件均可以通过一个线程传输,不同的文件可以并行传输,有利于提高文件传输效率。
13.结合第一方面,在第一方面的某些实现方式中,通过线程发送第一文件,包括:将第一文件所包含的数据转换为字符串;通过线程发送字符串。
14.这种实现方式,通过字符串进行传输,有利于提高数据传输效率。
15.结合第一方面,在第一方面的某些实现方式中,在基于第一请求消息,每隔第二时间段,获取第一路径下的文件更新时间之前,方法还包括:通过kerberos对客户端进行鉴权;基于第一请求消息,每隔第二时间段,获取第一路径下的文件更新时间,包括:在鉴权通过的情况下,基于第一请求消息,每隔第二时间段,获取第一路径下的文件更新时间。
16.这种实现方式,通过kerberos对客户端进行鉴权,有利于实现了客户端的安全访问控制和数据的安全共享。
17.结合第一方面,在第一方面的某些实现方式中,方法还包括:若满足以下一个或多个条件,则进行告警:检测到第一文件传输失败;检测到传输的文件个数不满足预设个数;检测到传输的文件所包括的数据量不满足预设数据量;或者,检测到传输的文件所包括的数据的传输次数未超过预设传输次数。
18.这种实现方式,若存在异常,则进行告警,有利于对文件传输进行监控。
19.结合第一方面,在第一方面的某些实现方式中,第一服务器为hadoop集群。
20.第二方面,提供了一种数据传输装置,用于执行上述第一方面中任一种可能的实现方式中的方法。具体地,该装置包括用于执行上述第一方面中任一种可能的实现方式中的方法的模块。
21.第三方面,提供了一种数据传输装置,包括处理器和存储器。该处理器用于读取存储器中存储的指令,以执行上述第一方面中任一种可能实现方式中的方法。
22.可选地,处理器为一个或多个,存储器为一个或多个。
23.可选地,存储器可以与处理器集成在一起,或者存储器与处理器分离设置。
24.在具体实现过程中,存储器可以为非瞬时性(non-transitory)存储器,例如只读存储器(read only memory,rom),其可以与处理器集成在同一块芯片上,也可以分别设置在不同的芯片上,本技术实施例对存储器的类型以及存储器与处理器的设置方式不做限定。
25.上述第三方面中的数据传输装置可以是一个芯片,该处理器可以通过硬件来实现也可以通过软件来实现,当通过硬件实现时,该处理器可以是逻辑电路、集成电路等;当通过软件来实现时,该处理器可以是一个通用处理器,通过读取存储器中存储的软件代码来实现,该存储器可以集成在处理器中,可以位于该处理器之外,独立存在。
26.第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序(也可以称为代码,或指令)当其在计算机上运行时,使得计算机执行上述第一方面中任一种可能实现方式中的方法。
27.第五方面,提供了一种计算机程序产品,计算机程序产品包括:计算机程序(也可以称为代码,或指令),当计算机程序被运行时,使得计算机执行上述第一方面中任一种可能实现方式中的方法。
附图说明
28.图1是本技术实施例适用的一种通信场景的示意图;
29.图2是本技术实施例提供的一种数据传输方法的示意性流程图;
30.图3是本技术实施例提供的一种对文件的扫描采集方法的示意性流程图;
31.图4是本技术实施例提供的另一种数据传输方法的示意性流程图;
32.图5是本技术实施例提供的一种数据传输装置的示意性框图;
33.图6是本技术实施例提供的另一种数据传输装置的示意性框图。
具体实施方式
34.下面将结合附图,对本技术中的技术方案进行描述。
35.目前,客户端可以向服务器发送请求消息以使服务器向另一个服务器发送数据。服务器接收客户端的请求消息,基于该请求消息,可以扫描所有的文件以采集所需传输的数据,并向另一个服务器传输数据。
36.示例性地,图1示出了一种通信场景的示意图。如图1所示,在该通信场景中,客户端可以向服务器1发送请求消息,该请求消息用于请求服务器1向服务器2发送数据。服务器接收该请求消息,可以扫描存储的所有文件,并从所有文件中采集所需传输的数据,并向服务器2发送数据。
37.服务器1可以向服务器2发送海量数据。一般服务器1可以通过文件传输协议(file transfer protocol,ftp)或者安全文件传输协议(secure file transfer protocol,sftp)向服务器2发送海量数据。其中,ftp是基本传输控制协议(transmission control protocol,tcp)的一种文件数据传输方法,sftp是通过安全外壳协议(secure shell,ssh)方式的加密文件传输方法。sftp协议支持大文件传输,比较方便、高效。服务器1可以通过sftp协议将多个文件一次性传输到服务器2。正因为如此,这种传输方式可以节省大量的时间。这种方法比使用电子邮件或云端传输要好得多。服务器1还可以通过sftp协议将文件、表格和关键业务文件直接及时地交换给客户端,数据交换过程中的风险更少。sftp利用了加密、公钥认证、数据完整性、主机认证等技术,所有的数据在传输前都会进行加密,这使得数据在传输过程中无法被破译,除了接收方之外,任何人都无法对数据进行解密。
38.但是,ftp和sftp均需要发送方和接收方均安装ftp服务,使用场景受限,且ftp和sftp的传输效率存在峰值,会导致传输效率受限。服务器1通过ftp或sftp传输数据,需要中转机,即服务器1先将数据传输到中转机,中转机将数据再传输到服务器2,传输过程繁琐,影响传输效率。另外,申请人发现,服务器1需要扫描存储的所有文件,并从所有文件中采集所需传输的数据,会导致扫描的文件较多,导致采集所需数据所用时间较长,影响传输效率。
39.有鉴于此,本技术实施例提供一种数据传输方法、装置、芯片系统以及可读存储介质,将扫描和采集分开执行,即实时扫描存储的发生更新的文件,从更新的文件中采集所需
传输的数据,这样不更新的文件不会重复扫描,可以减少扫描耗时,有利于提高数据传输效率。
40.在介绍本技术实施例提供的方法之前,先做出以下几点说明。
41.第一,在下文示出的实施例中第一、第二以及各种数字编号仅为描述方便进行的区分,并不用来限制本技术实施例的范围。
42.第二,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b的情况,其中a,b可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a、b和c中的至少一项(个),可以表示:a,或b,或c,或a和b,或a和c,或b和c,或a、b和c,其中a,b,c可以是单个,也可以是多个。
43.下面以具体地实施例对本技术的技术方案以及本技术的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本技术的实施例进行描述。
44.图2示出了本技术实施例提供的一种数据传输方法200的示意性流程图。该方法200可以适用于上述图1所示的场景。如图2所示,该方法200包括如下步骤:
45.s201、客户端向第一服务器发送第一请求消息,第一请求消息用于请求第一服务器向第二服务器发送在第一时间段内数据类型为第一数据类型的文件,第一请求消息包括第一路径和第二路径,第一路径为采集文件的路径,第二路径为第二服务器的路径。
46.在上述图1所示的场景中,第一服务器可以为服务器1,第二服务器可以为服务器2。第一服务器和/或第二服务器可以是一个服务器,也可以是多个服务器,本技术实施例对此不作限定。若第一服务器为多个服务器,则第一服务器也可以称为集群或者服务器集群。若第二服务器为多个服务器,则第二服务器也可以称为集群、目标集群或者服务器集群。
47.第一请求消息也可以称为数据获取请求指令,本技术实施例对此不作限定。第一请求消息可以包括第一时间段和第一数据类型以用于请求第一服务器向第二服务器发送在第一时间段内数据类型为第一数据类型的文件,其中,第一时间段可以理解为时间条件,例如,一天,xx月xx日等等,即第一请求消息用于请求第一服务器向第二服务器发送满足时间条件和满足数据类型要求的文件。第一文件为满足时间条件,且满足数据类型要求。第一文件可以包括一个或多个文件,本技术实施例对文件的数量不作限定。
48.第一请求消息还可以包括第一路径和第二路径,第一路径为采集文件的路径,第二路径为第二服务器的路径。第一路径也可以称为目录,本技术实施例对此不作限定。
49.s202、第一服务器基于第一请求消息,每隔第二时间段,获取第一路径下的文件更新时间。
50.第二时间段是预设的,可以为30秒或者60秒等等,本技术实施例对此不作限定。第一路径下的文件可以实时更新,第一服务器可以实时监听第一路径下的文件,当第一路径下的文件发生更新时,第一服务器可以记录文件更新时间。文件更新时间即为文件发生更新时的时间。第一服务器可以基于第一请求消息,每隔第二时间段,获取第一路径下的文件更新时间。
51.s203、若这一次获取的文件更新时间与上一次获取的文件更新时间不同,则第一
服务器扫描第一路径下的文件以采集第一时间段内数据类型为第一数据类型的第一文件。
52.这一次获取的文件更新时间可以理解为最近一次获取的文件更新时间。第一服务器可以将获取的相邻两次的文件更新时间进行对比,若时间相同,可以说明第一路径下的文件未发生变化,可以不对第一路径下的文件进行扫描。若时间不同,可以说明第一路径下的文件发生变化,可以对第一路径下的文件进行扫描,采集满足时间条件,且满足数据类型的文件。第一服务器可以扫描第一路径下的文件,采集第一时间段内数据类型为第一数据类型的第一文件。
53.s204、第一服务器基于第二路径向第二服务器发送第一文件。
54.第一请求消息包括第二路径,第一服务器可以基于第二路径向第二服务器发送第一文件。
55.本技术实施例提供的数据传输方法,每次扫描的是第一路径下发生更新的文件,不需要扫描不发生变化的文件,即将全量扫描文件更改为实时监听增量扫描,有利于减少扫描耗时,提高数据传输效率。
56.作为一个可选的实施例,上述s204、基于第二路径向第二服务器发送第一文件,包括:获取第一文件的更新时间;若第一文件的文件更新时间与当前时间之差在第三时间段内,则监测第一文件的大小是否发生变化;若第一文件的大小不发生变化,则向第二服务器发送第一文件。
57.第一服务器扫描第一路径下的文件,对第一路径下的文件进行过滤和筛选,可以得到第一时间段内数据类型为第一数据类型的第一文件。第一文件为更新的,且满足条件的文件。
58.第三时间段可以是预设的,例如第三时间段可以是3秒或者5秒等等,本技术实施例对此不作限定。若第一文件的文件更新时间与当前时间之差在第三时间段内,可以说明更新时间较近,为了避免第一文件正在更新,第一服务器可以监测第一文件的大小是否发生变化。若第一文件的大小发生变化,可以说明第一文件正在更新;若第一文件的大小未发生变化,可以说明第一文件已更新完成,此时,第一服务器可以向第二服务器发送第一文件。其中,第一文件的大小指的是第一文件所包含的数据量的大小。
59.若第一文件的文件更新时间与当前时间之差不在第三时间段内,可以说明更新时间较远,默认其更新完成,第一服务器可以向第二服务器发送第一文件。
60.这种实现方式,第一文件的文件更新时间与当前时间之差在第三时间段内,可以说明更新时间较近,为了避免第一文件正在更新,第一服务器可以监测第一文件的大小是否发生变化,在第一文件的大小不发生变化的情况下,传输第一文件,有利于保证数据传输的准确性,有利于避免传输的文件与第一服务器存储的文件不同。
61.可选地,上述方法还包括:若第一文件的大小发生变化,则进入等待,直至第一文件的大小不发生变化。
62.若第一文件的大小发生变化,可以说明第一文件正在更新,第一服务器可以等待其更新完成之后,再对其进行传输。
63.这种实现方式,在第一文件的大小发生变化的情况下,等待其更新完成,再将传输第一文件,有利于保证数据传输的准确性,有利于避免传输的文件与第一服务器存储的文件不同。
64.为了更好地理解本技术实施例提供的对文件的扫描采集方法,下面将详细对其进行介绍。
65.图3示出了一种对文件的扫描采集方法300的示意性流程图。该方法300可以由上述第一服务器执行。如图3所示,该方法300可以包括如下步骤:
66.s301、对第一路径下的文件进行递归扫描,记录文件更新时间。
67.第一服务器可以对第一路径下的文件进行递归扫描,在第一路径下的文件发生更新时,记录文件更新时间。可以理解的是,第一服务器可以记录多个文件更新时间。
68.s302、从记录的文件更新时间中,获取最新的文件更新时间。
69.第一服务器可以每隔第二时间段获取一次最新的文件更新时间。可以理解的是,最新的文件更新时间即距离当前时间最近的时间。第一服务器获取的最新的文件更新时间也可以称为这一次获取的文件更新时间。
70.s303、基于最新的文件更新时间和记录的文件更新时间,获取上一次的文件更新时间。
71.上一次的文件更新时间为第一服务器上一次获取的最新的文件更新时间。上一次的文件更新时间也可以称为上一次获取的文件更新时间。
72.s304、判断两次文件更新时间即最新的文件更新时间和上一次的文件更新时间是否相同。
73.第一服务器可以判断这两次的文件更新时间是否相同。若这两次的文件更新时间相同,则继续每隔第二时间段获取一次最新的文件更新时间,即执行s302;若这两次的文件更新时间不同,则扫描第一路径下的文件以采集第一文件,即执行s305。
74.s305、若两次文件更新时间不同,则扫描第一路径下的文件,采集第一文件。
75.若两次文件更新时间不同,可以说明第一路径新增加了更新的文件,故第一服务器可以扫描第一路径下的文件,在这些文件中过滤第一时间段内数据类型为第一类型的文件,得到第一文件。
76.s306、判断第一文件是否在预备队列中。
77.预备队列中的文件为正在更新的文件。第一服务器采集第一文件后,可以判断第一文件是否正在更新。若第一文件在预备队列中,可以说明第一文件在此之前正在更新,则第一服务器可以判断第一文件的大小是否仍发生变化,即执行s311。若第一文件不在预备队列中,可以说明第一文件在此之前未在更新,则第一服务器可以判断第一文件的更新时间是否在预设范围内,即执行s307。
78.s307、若第一文件不在预备队列中,则判断第一文件的文件更新时间是否在预设范围内,即判断第一文件的更新时间与当前时间之差是否在第三时间段内。
79.若第一文件不在预备队列中,可以说明第一文件在此之前未在更新,可以判断此时第一文件是否正在更新,即判断第一文件的更新时间是否在预设范围内,即判断第一文件的更新时间与当前时间之差是否在第三时间段内。
80.若第一文件的文件更新时间在预设范围内,可以说明第一文件的文件更新时间距离当前时间较近,则第一服务器可以判断第一文件的大小是否发生变化,即执行s309,进而更准确地判断第一文件是否正在更新。若第一文件的更新时间未在预设范围内,可以说明第一文件的文件更新时间距离当前时间较远,则第一服务器可以将第一文件存入待传输队
列中,即执行s308。其中,待传输队列中的文件为可以传输的文件。
81.s308、若第一文件的更新时间未在预设范围内,则将第一文件存入待传输队列中。
82.待传输队列中的文件为可以传输的文件。待传输队列也可以称为待传输redis消息队列,本技术实施例对此不作限定。
83.若第一文件的更新时间未在预设范围内,可以说明第一文件的文件更新时间距离当前时间较远,则第一服务器可以将第一文件存入待传输队列中,即后续可以传输第一文件。
84.s309、若第一文件的更新时间在预设范围内,则判断第一文件的大小是否发生变化。
85.若第一文件的文件更新时间在预设范围内,可以说明第一文件的文件更新时间距离当前时间较近,则第一服务器可以判断第一文件的大小是否发生变化,进而更准确地判断第一文件是否正在更新。
86.若第一文件的大小发生变化,可以说明第一文件正在更新,则第一服务器可以将第一文件存入预备队列中,即执行s310。若第一文件的大小未发生变化,可以说明第一文件未在更新,则将第一文件存入待传输队列中,即执行s308。
87.s310、若第一文件的大小发生变化,则将第一文件存入预备队列中。
88.若第一文件的大小发生变化,可以说明第一文件正在更新,则第一服务器可以将第一文件存入预备队列中。
89.s311、若第一文件在预备队列中,则判断第一文件的大小是否发生变化。
90.若第一文件在预备队列中,可以说明第一文件在此之前正在更新,则第一服务器可以判断第一文件的大小是否仍发生变化。若第一文件的大小发生变化,可以说明第一文件仍在更新,则将第一文件仍存入预备队列中,即执行s312。若第一文件的大小未发生变化,可以说明第一文件停止更新,则将第一文件存入待传输队列中,即执行s308。
91.s312、若第一文件的大小发生变化,则将第一文件仍存入预备队列中
92.若第一文件的大小发生变化,可以说明第一文件仍在更新,则将第一文件仍存入预备队列中。可以理解的是,当第一文件更新完成,则第一服务器可以将第一文件存储于待传输队列中。
93.本技术实施例提供的方法,每次只在第一路径下的文件存在更新时采集第一文件,不需要扫描不发生变化的文件,即采用扫描和采集解耦的方式,实时监听增量扫描,有利于减少扫描耗时,例如可以将原来5分钟采集时延降低为1分钟采集时延,简单有效,有利于提高数据传输效率,极大地提升了传输实时性。另外,第一文件的文件更新时间在预设范围内,可以说明更新时间较近,为了避免第一文件正在更新,第一服务器可以监测第一文件的大小是否发生变化,在第一文件的大小不发生变化的情况下,传输第一文件,有利于保证数据传输的准确性,有利于避免传输的文件与第一服务器存储的文件不同。
94.作为一个可选的实施例,上述s204、基于第二路径向第二服务器发送第一文件,包括:通过线程基于第二路径向第二服务器发送第一文件,第一文件的数量与线程的数量相同。
95.第一服务器可以采用分布式部署采集器的方式,一个执行器共享一个线程池,对第一文件进行异步的分布式传输,即一个线程用于传输一个文件,使用多个线程传输多个
文件。若传输第一文件,基于第一文件的数量确定线程的数量,通过线程基于第二路径向第二服务器发送第一文件。
96.当第一文件的数量过大时,为了保证线程的合理运行,第一服务器可以预设有最大线程数,当第一文件的数量小于或等于最大线程数时,通过线程传输第一文件时,线程的数量等于第一文件的数量;当第一文件的数量大于最大线程数时,通过线程传输第一文件时,线程的数量等于最大线程数,传输的文件的数量等于最大线程数,第一文件中的其余的文件等待这些文件传输完成后通过这些线程再次进行传输,即分批进行传输,每批传输的文件数量小于或等于最大线程数。
97.示例性地,对于144核的中央处理器(central processing unit,cpu),第一服务器可以采用72个核心线程,即核心线程数为72,每一个文件可以独享一个线程,核心线程可以一直保持存活。当第一文件的数量小于或等于核心线程数时,第一服务器可以通过核心线程传输第一文件。当第一文件的数量大于核心线程数时,第一服务器可以进行线程扩展,将线程的数量扩展到最大线程数,最大线程数可以为5000个。当第一文件的数量大于核心线程数,且小于或等于最大线程数时,第一服务器可以通过核心线程和扩展的线程传输第一文件。当第一文件的数量超出最大线程数时,超出的文件可以进入等待队列,等上一批文件传输完成后再进行传输。
98.这种实现方式,每个文件均可以通过一个线程传输,不同的文件可以并行传输,有利于提高文件传输效率。
99.可选地,上述通过线程发送第一文件,包括:将第一文件所包含的数据转换为字符串;通过线程发送字符串。
100.第一服务器通过线程传输第一文件时,可以将第一文件所包含的数据转换为字符串,通过字符串传输第一文件所包含的数据。
101.第一服务器在传输字符串时,这些字符串也可以分批进行传输,第一批要传输的字符串可以称为字符输出流,剩余批次的字符串可以称为缓冲字符。缓冲字符可以存储于缓冲区。缓冲区的大小可以是预设的。字符串的传输效率可以达到1g/秒,但本技术实施例对此不作限定。
102.这种实现方式,通过字符串进行传输,有利于提高数据传输效率。
103.可选地,第一服务器传输第一文件之后,还可以将传输完成的文件与传输之前的文件进行校验以判断传输的文件是否正确。
104.传输完成的文件可以称为目标文件,传输之前的文件可以称为源文件,第一服务器可以将目标文件和源文件进行校验,若校验不一致则进行重传,有利于保证文件传输的完整性。
105.示例性地,第一服务器传输第一文件之后,可以将传输完成的文件与传输之前的文件进行信息摘要算法(message-digest algorithm,md5)校验,若校验不一致则进行重传;若校验一致则可以确定第一文件传输成功。
106.作为一个可选的实施例,在上述s202、基于第一请求消息,每隔第二时间段,获取第一路径下的文件更新时间之前,方法200还可以包括:通过kerberos对客户端进行鉴权;基于第一请求消息,每隔第二时间段,获取第一路径下的文件更新时间,包括:在鉴权通过的情况下,基于第一请求消息,每隔第二时间段,获取第一路径下的文件更新时间。
107.第一服务器接收第一请求消息之后,可以先基于第一请求消息,通过kerberos对客户端进行鉴权,在鉴权通过的情况下,在进行后续处理。第一服务器通过kerberos对客户端进行鉴权,也可以说,第一服务器采用kerberos租户代理的方式判断是否数据是否授权给该客户端。其中,kerberos是一种分布式认证协议,用于在分布式系统中验证用户身份。第一服务器加入了kerberos认证,可以提供管理用户身份信息的功能,租户访问第一服务器需要进行用户身份验证和授权。若鉴权不通过,第一服务器可以向客户端返回鉴权失败的指令。
108.示例性地,第一请求消息可以包括租户名。第一服务器基于第一请求消息,可以判断是否存储有第一请求消息中的租户名,若存储有,则通过超级用户的加密令牌访问进入第一服务器,然后将第一请求消息中的租户名代理为普通用户,通过该普通用户去访问第一路径,若鉴权通过,则进行数据传输;若鉴权不通过则向客户端返回鉴权失败指令。
109.这种实现方式,通过kerberos对客户端进行鉴权,有利于实现了客户端的安全访问控制和数据的安全共享。
110.作为一个可选的实施例,上述方法200还可以包括:若满足以下一个或多个条件,则进行告警:检测到第一文件传输失败;检测到传输的文件个数不满足预设个数;检测到传输的文件所包括的数据量不满足预设数据量;或者,检测到传输的文件所包括的数据的传输次数未超过预设传输次数。
111.在传输第一文件的过程中,第一服务器可以记录客户端、第一路径、第二路径、数据类型、传输开始时间、传输结束时间、文件大小、文件个数、文件所包括的数据量、传输次数以及传输状态等信息,并将这些信息存储于数据库。第一服务器可以监测数据库中的传输状态、文件个数、文件所包括的数据量以及传输次数中的一个或多个信息。若检测到异常,例如,检测到传输状态为传输失败,检测到传输的文件个数不满足预设个数;检测到传输的文件所包括的数据量不满足预设数据量;或者,检测到传输的文件所包括的数据的传输次数未超过预设传输次数,则进行告警。其中,预设个数、预设数据量以及预设传输次数是第一服务器中预设的。
112.示例性地,第一服务器将客户端、第一路径、第二路径、数据类型、传输开始时间、传输结束时间、文件大小、文件个数、文件所包括的数据量、传输次数以及传输状态等信息存储于数据库后,可以将其封装为exporter进行prometheus短信邮件告警。
113.这种实现方式,若存在异常,则进行告警,有利于对文件传输进行监控。
114.作为一个可选的实施例,上述第一服务器可以为hadoop集群。
115.第一服务器的数量可以为多个,且支持hadoop,可以称为hadoop集群。
116.示例性地,hadoop集群可以包括指令模块、过滤缓存模块、传输模块以及告警模块。这些模块可以执行上述第一服务器执行的步骤。图4示出了一种数据传输方法400的示意性流程图。该方法400由hadoop集群包括的模块执行。如图4所示,该方法400可以包括如下步骤:
117.s401、指令模块接收来自客户端的第一请求消息。
118.第一请求消息可以包括租户名、第一路径、第二路径、第一时间段以及第一数据类型。第一路径也可以称为hadoop分布式文件系统路径信息,第二路径也可以称为目标集群路径信息,本技术实施例对此不作限定。
119.s402、指令模块基于第一请求消息,通过kerberos对客户端进行鉴权。
120.指令模块基于第一请求消息,可以判断是否存储有第一请求消息中的租户名,若存储有,则通过hadoop超级用户的加密令牌访问进入hadoop集群,然后将第一请求消息中的租户名代理为普通用户,通过该普通用户去访问第一路径,若鉴权通过,则进行文件扫描和采集;若鉴权不通过则向客户端返回鉴权失败指令。
121.s403、若鉴权通过,指令模块向过滤缓存模块发送鉴权通过的指示信息,对应地,过滤缓存模块接收鉴权通过的指示信息。
122.s404、过滤缓存模块基于鉴权通过的指示信息,每隔第二时间段,获取第一路径下的文件更新时间。
123.s404与上述s202相同,此处不再赘述。
124.s405、若这一次获取的文件更新时间与上一次获取的文件更新时间不同,则过滤缓存模块扫描第一路径下的文件以采集第一时间段内数据类型为第一数据类型的第一文件。
125.s405与上述s203相同,此处不再赘述。
126.在一种示例中,过滤缓存模块的具体实现过程可以参考上述方法300。
127.s406、过滤缓存模块向传输模块发送第一文件,对应地,传输模块接收第一文件。
128.s407、传输模块将第一文件所包含的数据转换为字符串。
129.s408、传输模块通过线程发送字符串。
130.s409、传输模块对传输的数据进行校验。
131.传输模块对传输的数据可以进行md 5校验。
132.s410、传输模块将传输过程中的信息写入数据库。
133.传输过程中的信息可以包括客户端、第一路径、第二路径、数据类型、传输开始时间、传输结束时间、文件大小、文件个数、文件所包括的数据量、传输次数以及传输状态等信息。
134.s411、告警模块对数据库中的信息进行监测,若出现异常,则通过prometheus进行告警。
135.告警模块可以监测数据库中的传输状态、文件个数、文件所包括的数据量以及传输次数中的一个或多个信息。若检测到异常,例如,检测到传输状态为传输失败,检测到传输的文件个数不满足预设个数;检测到传输的文件所包括的数据量不满足预设数据量;或者,检测到传输的文件所包括的数据的传输次数未超过预设传输次数,则通过prometheus进行告警。
136.本技术实施例提供的数据传输方法,提出了一整套采集传输系统,综合运用kerberos和prometheus等大数据技术,通过搭建指令模块、扫描采集模块、传输模块、告警模块等,创新性的开发出一套完整的采集传输系统流程,可以应用于实时的传输共享应用中。可以理解是,若该示例中的s404和s405采用上述方法300中的具体实现,该示例还可以运用redis大数据技术。
137.该方法400还可以将这些模块封装为接口,简单方便,执行效率高,有利于实现服务主动调用传输的模式,且有利于在实际的采集传输系统中极大提升了传输效率和完整性。
138.本技术实施例提供的该方法400基于kerberos代理认证和字节流传输方法(即通过字符串进行传输),搭建了一套分布式、低时延、高并发的数据传输共享系统,很好的解决了传输效率的问题,并封装为统一接口,实现客户端自主获取共享数据。
139.应理解,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本技术实施例的实施过程构成任何限定。
140.上文中结合图1至图4,详细描述了本技术实施例的方法,下面将结合5和图6,详细描述本技术实施例的装置。
141.图5示出了本技术实施例提供的一种数据传输装置500的示意性框图。如图5所示,该数据传输装置500包括:收发模块510和处理模块520。其中,收发模块510用于:接收来自客户端的第一请求消息,第一请求消息用于请求第一服务器向第二服务器发送在第一时间段内数据类型为第一数据类型的文件,第一请求消息包括第一路径和第二路径,第一路径为采集文件的路径,第二路径为第二服务器的路径;处理模块520用于:基于第一请求消息,每隔第二时间段,获取第一路径下的文件更新时间;若这一次获取的文件更新时间与上一次获取的文件更新时间不同,则扫描第一路径下的文件以采集第一时间段内数据类型为第一数据类型的第一文件;收发模块510还用于:基于第二路径向第二服务器发送第一文件。
142.可选地,上述处理模块520还用于:获取第一文件的更新时间;若第一文件的文件更新时间与当前时间之差在第三时间段内,则监测第一文件的大小是否发生变化;上述收发模块510还用于:若第一文件的大小不发生变化,向第二服务器发送第一文件。
143.可选地,上述处理模块520还用于:若第一文件的大小发生变化,则进入等待,直至第一文件的大小不发生变化。
144.可选地,上述收发模块510还用于:通过线程基于第二路径向第二服务器发送第一文件,第一文件的数量与线程的数量相同。
145.可选地,上述处理模块520还用于:将第一文件所包含的数据转换为字符串;上述收发模块510还用于:通过线程发送字符串。
146.可选地,上述处理模块520还用于:通过kerberos对客户端进行鉴权;在鉴权通过的情况下,基于第一请求消息,每隔第二时间段,获取第一路径下的文件更新时间。
147.可选地,上述处理模块520还用于:若满足以下一个或多个条件,则进行告警:检测到第一文件传输失败;检测到传输的文件个数不满足预设个数;检测到传输的文件所包括的数据量不满足预设数据量;或者,检测到传输的文件所包括的数据的传输次数未超过预设传输次数。
148.可选地,第一服务器为hadoop集群。
149.应理解,这里的装置500以功能模块的形式体现。这里的术语“模块”可以指应用特有集成电路(application specific integrated circuit,asic)、电子电路、用于执行一个或多个软件或固件程序的处理器(例如共享处理器、专有处理器或组处理器等)和存储器、合并逻辑电路和/或其它支持所描述的功能的合适组件。在一个可选例子中,本领域技术人员可以理解,该装置500可以具体为上述实施例中的第一服务器,或者,上述实施例中第一服务器的功能可以集成在该装置500中,该装置500可以用于执行上述方法实施例中与第一服务器对应的各个流程和/或步骤,为避免重复,在此不再赘述。
150.上述装置500具有实现上述方法200中第一服务器执行的相应步骤的功能;上述功
能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。
151.图6示出了本技术实施例提供的一种数据传输装置600的示意性框图。如图6所示,该装置600包括:处理器610、通信接口620和存储器630。其中,处理器610、通信接口620和存储器630通过内部连接通路互相通信,该存储器630用于存储指令,该处理器610用于执行该存储器630存储的指令,以控制该通信接口620发送信号和/或接收信号。
152.应理解,该装置600可以用于执行上述方法实施例中与第一服务器对应的各个步骤和/或流程。可选地,该存储器630可以包括只读存储器和随机存取存储器,并向处理器610提供指令和数据。存储器630的一部分还可以包括非易失性随机存取存储器。例如,存储器630还可以存储设备类型的信息。该处理器610可以用于执行存储器630中存储的指令,并且当该处理器610执行存储器630中存储的指令时,该处理器610用于执行上述与该第一服务器对应的方法实施例的各个步骤和/或流程。该通信接口620可以包括发射器和接收器,该发射器可以用于实现上述通信接口620对应的用于执行发送动作的各个步骤和/或流程,该接收器可以用于实现上述通信接口620对应的用于执行接收动作的各个步骤和/或流程。
153.应理解,在本技术实施例中,上述装置600的处理器610可以是中央处理单元(central processing unit,cpu),该处理器610还可以是其他通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
154.在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。结合本技术实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件单元组合执行完成。软件单元可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器630,处理器610执行存储器630中的指令,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。
155.本技术提供一种计算机可读存储介质,该计算机可读存储介质用于存储计算机程序,该计算机程序用于实现上述实施例中各种可能的实现方式所示的数据传输方法。
156.本技术提供一种芯片系统,该芯片系统用于支持实施例中各种可能的实现方式所示的上述数据传输方法。
157.本技术提供了一种计算机程序产品,该计算机程序产品包括计算机程序(也可以称为代码,或指令),当该计算机程序在计算机上运行时,该计算机可以执行上述实施例中各种可能的数据传输方法。
158.本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
159.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
160.在本技术所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
161.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
162.另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
163.所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
164.以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以所述权利要求的保护范围为准。
技术特征:
1.一种数据传输方法,其特征在于,应用于第一服务器,包括:接收来自客户端的第一请求消息,所述第一请求消息用于请求所述第一服务器向第二服务器发送在第一时间段内数据类型为第一数据类型的文件,所述第一请求消息包括第一路径和第二路径,所述第一路径为采集文件的路径,所述第二路径为所述第二服务器的路径;基于所述第一请求消息,每隔第二时间段,获取所述第一路径下的文件更新时间;若这一次获取的文件更新时间与上一次获取的文件更新时间不同,则扫描所述第一路径下的文件以采集所述第一时间段内数据类型为所述第一数据类型的第一文件;基于所述第二路径向所述第二服务器发送所述第一文件。2.根据权利要求1所述的方法,其特征在于,所述基于所述第二路径向所述第二服务器发送所述第一文件,包括:获取所述第一文件的更新时间;若所述第一文件的文件更新时间与当前时间之差在第三时间段内,则监测所述第一文件的大小是否发生变化;若所述第一文件的大小不发生变化,向所述第二服务器发送所述第一文件。3.根据权利要求2所述的方法,其特征在于,所述方法还包括:若所述第一文件的大小发生变化,则进入等待,直至所述第一文件的大小不发生变化。4.根据权利要求1所述的方法,其特征在于,所述基于所述第二路径向所述第二服务器发送所述第一文件,包括:通过线程基于所述第二路径向所述第二服务器发送所述第一文件,所述第一文件的数量与所述线程的数量相同。5.根据权利要求4所述的方法,其特征在于,所述通过线程发送所述第一文件,包括:将所述第一文件所包含的数据转换为字符串;通过线程发送所述字符串。6.根据权利要求1所述的方法,其特征在于,在所述基于所述第一请求消息,每隔第二时间段,获取所述第一路径下的文件更新时间之前,所述方法还包括:通过kerberos对所述客户端进行鉴权;所述基于所述第一请求消息,每隔第二时间段,获取所述第一路径下的文件更新时间,包括:在鉴权通过的情况下,基于所述第一请求消息,每隔第二时间段,获取所述第一路径下的文件更新时间。7.根据权利要求1所述的方法,其特征在于,所述方法还包括:若满足以下一个或多个条件,则进行告警:检测到所述第一文件传输失败;检测到传输的文件个数不满足预设个数;检测到传输的文件所包括的数据量不满足预设数据量;或者,检测到传输的文件所包括的数据的传输次数未超过预设传输次数。8.根据权利要求1至7中任一项所述的方法,其特征在于,所述第一服务器为hadoop集群。
9.一种数据传输装置,其特征在于,包括:收发模块,用于接收来自客户端的第一请求消息,所述第一请求消息用于请求第一服务器向第二服务器发送在第一时间段内数据类型为第一数据类型的文件,所述第一请求消息包括第一路径和第二路径,所述第一路径为采集文件的路径,所述第二路径为所述第二服务器的路径;处理模块,用于基于所述第一请求消息,每隔第二时间段,获取所述第一路径下的文件更新时间;若这一次获取的文件更新时间与上一次获取的文件更新时间不同,则扫描所述第一路径下的文件以采集所述第一时间段内数据类型为所述第一数据类型的第一文件;收发模块还用于:基于所述第二路径向所述第二服务器发送所述第一文件。10.一种数据传输装置,其特征在于,包括:处理器,所述处理器与存储器耦合,所述存储器用于存储计算机程序,当所述处理器调用所述计算机程序时,使得所述装置执行权利要求1至8中任一项所述的方法。11.一种芯片系统,其特征在于,包括:处理器,用于从存储器中调用并运行计算机程序,使得安装有所述芯片系统的装置执行权利要求1至8中任一项所述的方法。12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,当所述计算机程序在计算机上运行时,使得所述计算机执行权利要求1至8中任一项所述的方法。
技术总结
本申请提供了一种数据传输方法、装置、芯片系统以及可读存储介质,该方法包括:接收来自客户端的第一请求消息,第一请求消息用于请求第一服务器向第二服务器发送在第一时间段内数据类型为第一数据类型的文件,第一请求消息包括第一路径和第二路径,第一路径为采集文件的路径,第二路径为第二服务器的路径;基于第一请求消息,每隔第二时间段,获取第一路径下的文件更新时间;若这一次获取的文件更新时间与上一次获取的文件更新时间不同,则扫描第一路径下的文件以采集第一时间段内数据类型为第一数据类型的第一文件,基于第二路径向第二服务器发送第一文件。本申请有利于提高数据传输效率。传输效率。传输效率。
技术研发人员:刘金强
受保护的技术使用者:中国联合网络通信集团有限公司
技术研发日:2023.06.26
技术公布日:2023/9/9
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/
上一篇:一种精密阀体挤压成形组合模具的制作方法 下一篇:电池仓及具有电池仓的装置的制作方法