天文数据传输方法及装置

摘要: 本发明涉及天文数据传输,更具体涉及一种天文数据传输方法及装置。背景技术:1、在大规模科学数据传输场景中(如射电望远镜观测数据的多站点归档、分布式存储系统的数据同...
天文数据传输方法及装置

本发明涉及天文数据传输,更具体涉及一种天文数据传输方法及装置。

背景技术:

1、在大规模科学数据传输场景中(如射电望远镜观测数据的多站点归档、分布式存储系统的数据同步等),需要将海量观测数据从数据源发布端高速、可靠分发至多个异地接收节点,完成多站点数据归档与协同处理。该类天文数据传输场景具备严苛的业务特征:其一,数据体量巨大,单份天文观测文件可达数gb至数十gb,单次传输任务需批量处理海量文件数据;其二,传输吞吐要求高,需依托有限网络资源实现持续高速数据传输,保障观测数据实时归档;其三,传输可靠性标准严苛,需规避网络波动、节点进程故障等问题,杜绝数据丢失、损坏与失真;其四,支持多目的地分发,同一组天文观测数据需同步推送至多个异地分布式接收节点;其五,传输网络环境复杂,跨广域网的多节点传输存在延迟高、网络状态动态波动等问题。

2、传统消息中间件传输架构难以适配该场景需求,常规小文件直传模式受单条消息长度限制,无法承载超大文件传输;通用大文件传输方案缺乏针对性的分片调度、完整性校验与多节点同步机制,易出现分片丢失、归档不一致、吞吐利用率低等问题,难以满足天文观测数据高速、高可靠、多站点同步的传输需求。

3、因此,亟需一种适配天文大数据特性的高效、稳定的数据传输方法。

技术实现思路

1、本发明的目的在于提供一种天文数据传输方法及装置,以实现天文数据的高效、稳定地传输。

2、基于上述目的,本发明一方面提供一种天文数据传输方法,其应用于天文数据传输系统,所述天文数据传输系统包括第一设备、第二设备、第一消息中间件和第二消息中间件,所述第一消息中间件包括第一生产端、第一服务端和第一消费端,所述第二消息中间件包括第二生产端、第二服务端和第二消费端;所述第一生产端部署于所述第一设备,所述第一服务端和所述第一消费端部署于所述第二设备;所述第二生产端部署于所述第二设备,所述第二服务端和所述第二消费端部署于所述第一设备;所述方法应用于所述第一设备,且包括:

3、将待传输天文数据文件拆分为多个分片文件,并生成分片描述信息,分片描述信息包括分片文件总数量、每个分片文件的标识和序号;

4、调用所述第一生产端,将所述分片描述信息封装成分片描述信息消息,将各分片文件封装为各分片文件消息,并依次将分片描述信息消息和各分片文件消息依次发送至第二设备;以使所述第二设备通过所述第一服务端和所述第一消费端接收和消费分片描述信息消息和各分片文件消息,并在满足预设条件时生成反馈消息,然后调用第二生产端将反馈消息发送至第一设备;其中,反馈消息为用于表征所有分片文件均已归档的正向确认消息或用于表征存在缺失分片文件并携带缺失分片文件信息的反向确认消息;

5、通过第二服务端接收所述反馈消息并将所述反馈消息存入第二消息队列;

6、通过第二消费端从所述第二消息队列中消费所述反馈消息;

7、当所述反馈消息为所述反向确认消息时,根据所述反向确认消息中的缺失分片文件信息,调用第一生产端,将缺失的分片文件重新封装为分片文件消息并将其发送至第二设备。

8、可选地,还包括:

9、记录最后一条分片文件消息的发送时间;

10、从最后一条分片文件消息的发送时间开始,若在预设时间内没有收到所述反馈消息,则调用第一生产端重新将分片描述信息消息和各分片文件消息发送至第二设备。

11、本发明另一方面提供一种天文数据传输方法,其应用于天文数据传输系统,所述天文数据传输系统包括第一设备、第二设备、第一消息中间件和第二消息中间件,所述第一消息中间件包括第一生产端、第一服务端和第一消费端,所述第二消息中间件包括第二生产端、第二服务端和第二消费端;所述第一生产端部署于所述第一设备,所述第一服务端和所述第一消费端部署于所述第二设备;所述第二生产端部署于所述第二设备,所述第二服务端和所述第二消费端部署于所述第一设备;所述方法应用于所述第二设备,且包括:

12、通过第一服务端接收所述第一设备调用所述第一生产端依次发送的分片描述信息消息和各分片文件消息,并将所述分片描述信息消息和各分片文件消息存入第一消息队列;其中分片描述信息消息是将分片描述信息进行封装后得到的,各分片文件消息是分别将各分片文件进行封装后得到的,各分片文件是对待传输天文数据文件进行拆分后得到,所述分片描述信息包括分片文件总数量、每个分片文件的标识和序号;

13、通过所述第一消费端对所述第一消息队列中的消息进行消费;

14、在满足预设条件时,生成反馈消息;其中,所述反馈消息为用于表征所有分片文件均已归档的正向确认消息或用于表征存在缺失分片文件未被归档并携带缺失分片文件信息的反向确认消息;

15、调用第二生产端,将所述反馈消息发送至第一设备;以使所述第一设备通过所述第二服务端接收所述反馈消息,并在所述反馈消息为反向确认消息时调用第一生产端重新将缺失的分片文件消息发送至第二设备;

16、在所述反馈消息为反向确认消息时,通过第一服务端和第一消费端重新接收和消费所述第一设备调用所述第一生产端发送的缺失的分片文件消息,并重新生成反馈消息;

17、在所述反馈消息为正向确认消息时,对已归档的所有分片文件进行重组,得到重组后的文件。

18、可选地,对所述第一消息队列中的消息进行消费,具体包括:

19、从所述第一消息队列中获取分片描述信息消息和各分片文件消息;

20、根据所述分片描述信息消息获取分片描述信息,并将所述分片描述信息归档;

21、针对每个分片文件消息,根据该分片文件消息获取该分片文件,并将该分片文件进行归档。

22、可选地,生成反馈消息,具体包括:

23、根据已归档的分片描述信息对已归档的各分片文件进行完整性校验,以判断所述分片描述信息中记载的各分片文件是否均已归档,若是,则生成正向确认消息;若否,则获取缺失分片文件的数量和标识作为缺失分片文件信息,并基于所述缺失分片文件信息生成反向确认消息。

24、本发明又一方面提供一种天文数据传输装置,其应用于天文数据传输系统,所述天文数据传输系统包括第一设备、第二设备、第一消息中间件和第二消息中间件,所述第一消息中间件包括第一生产端、第一服务端和第一消费端,所述第二消息中间件包括第二生产端、第二服务端和第二消费端;所述第一生产端部署于所述第一设备,所述第一服务端和所述第一消费端部署于所述第二设备;所述第二生产端部署于所述第二设备,所述第二服务端和所述第二消费端部署于所述第一设备;所述装置应用于所述第一设备,且包括:

25、拆分模块,用于将待传输天文数据文件拆分为多个分片文件,并生成分片描述信息,分片描述信息包括分片文件总数量、每个分片文件的标识和序号;

26、第一发送模块,用于调用所述第一生产端,将所述分片描述信息封装成分片描述信息消息,将各分片文件封装为各分片文件消息,并依次将分片描述信息消息和各分片文件消息依次发送至第二设备;以使所述第二设备通过所述第一服务端和所述第一消费端接收和消费分片描述信息消息和各分片文件消息,并在满足预设条件时生成反馈消息,然后调用第二生产端将反馈消息发送至第一设备;其中,反馈消息为用于表征所有分片文件均已归档的正向确认消息或用于表征存在缺失分片文件并携带缺失分片文件信息的反向确认消息;

27、第一接收模块,用于通过第二服务端接收所述反馈消息并将所述反馈消息存入第二消息队列;

28、第一消费模块,用于通过第二消费端从所述第二消息队列中消费所述反馈消息;

29、缺失重传模块,用于在所述反馈消息为所述反向确认消息时,根据所述反向确认消息中的缺失分片文件信息,调用第一生产端,将缺失的分片文件重新封装为分片文件消息并将其发送至第二设备。

30、可选地,还包括超时重传模块,所述超时重传模块具体设置为:

31、记录最后一条分片文件消息的发送时间;

32、从最后一条分片文件消息的发送时间开始,若在预设时间内没有收到所述反馈消息,则调用第一生产端重新将分片描述信息消息和各分片文件消息发送至第二设备。

33、本发明又一方面提供一种天文数据传输装置,其应用于天文数据传输系统,所述天文数据传输系统包括第一设备、第二设备、第一消息中间件和第二消息中间件,所述第一消息中间件包括第一生产端、第一服务端和第一消费端,所述第二消息中间件包括第二生产端、第二服务端和第二消费端;所述第一生产端部署于所述第一设备,所述第一服务端和所述第一消费端部署于所述第二设备;所述第二生产端部署于所述第二设备,所述第二服务端和所述第二消费端部署于所述第一设备;所述装置应用于所述第二设备,且包括:

34、第二接收模块,用于通过第一服务端接收所述第一设备调用所述第一生产端依次发送的分片描述信息消息和各分片文件消息,并将所述分片描述信息消息和各分片文件消息存入第一消息队列;其中分片描述信息消息是将分片描述信息进行封装后得到的,各分片文件消息是分别将各分片文件进行封装后得到的,各分片文件是对待传输天文数据文件进行拆分后得到,所述分片描述信息包括分片文件总数量、每个分片文件的标识和序号;

35、第二消费模块,用于通过所述第一消费端对所述第一消息队列中的消息进行消费;

36、生成模块,用于在满足预设条件时,生成反馈消息;其中,所述反馈消息为用于表征所有分片文件均已归档的正向确认消息或用于表征存在缺失分片文件未被归档并携带缺失分片文件信息的反向确认消息;

37、第二发送模块,用于调用第二生产端,将所述反馈消息发送至第一设备;以使所述第一设备通过所述第二服务端接收所述反馈消息,并在所述反馈消息为反向确认消息时调用第一生产端重新将缺失的分片文件消息发送至第二设备;

38、重新接收模块,用于在所述反馈消息为反向确认消息时,通过第一服务端和第一消费端重新接收和消费所述第一设备调用所述第一生产端发送的缺失的分片文件消息,并重新生成反馈消息;

39、重组模块,用于在所述反馈消息为正向确认消息时,对已归档的所有分片文件进行重组,得到重组后的文件。

40、可选地,对所述第一消息队列中的消息进行消费,具体包括:

41、从所述第一消息队列中获取分片描述信息消息和各分片文件消息;

42、根据所述分片描述信息消息获取分片描述信息,并将所述分片描述信息归档;

43、针对每个分片文件消息,根据该分片文件消息获取该分片文件,并将该分片文件进行归档。

44、可选地,生成反馈消息,具体包括:

45、根据已归档的分片描述信息对已归档的各分片文件进行完整性校验,以判断所述分片描述信息中记载的各分片文件是否均已归档,若是,则生成正向确认消息;若否,则获取缺失分片文件的数量和标识作为缺失分片文件信息,并基于所述缺失分片文件信息生成反向确认消息。