本发明涉及数据处理,具体而言,涉及一种业务数据的同步方法及其装置、电子设备及存储介质。
背景技术:
1、在各业务系统间有大量数据同步的需求时,相关技术往往通过数据文件的方式进行系统间数据的同步,具体为:数据提供方按照约定时间生成数据文件,数据需求方读取数据文件,数据提供方通过联机报文通讯的方式进行送达通知。例如,数据提供方a系统按照约定时间08:00生成文件并存储到指定路径以后,数据需求方b、c、d等系统按照约定时间08:05分进行文件获取。
2、然而,上述数据同步方式存在如下问题:(1)时效性较差,例如,08:00与08:05分之间有5分钟的间隔,数据需求方获取数据有5分钟的延迟;(2)稳定性不高,例如,如果数据提供方a系统生成文件的来源数据量较大,生成文件用时较长,08:06分才能够生成,而数据需求方b、c、d系统并不知道实际生成时间,仍会按照08:05分进行获取,未找到文件会认定失败。并且,如果数据提供方a系统生成文件失败,数据需求方b、c、d系统并不知道文件生成失败,仍会按照08:05分进行获取,未找到文件会认定失败。
3、针对上述的问题,目前尚未提出有效的解决方案。
技术实现思路
1、本发明实施例提供了一种业务数据的同步方法及其装置、电子设备及存储介质,以至少解决相关技术中在系统间进行数据同步时的时效性较差且容易同步失败的技术问题。
2、根据本发明实施例的一个方面,提供了一种业务数据的同步方法,应用于数据生产端,包括:基于待同步业务数据,生成数据文件,其中,所述数据文件对应有生产消息;将所述生产消息发送至预设交换机,其中,所述预设交换机将所述生产消息广播至每个消息队列上,每个所述消息队列对应有一个数据消费端,所述数据消费端在监听到所述消息队列具有所述生产消息的情况下,基于所述生产消息,对所述待同步业务数据进行同步处理。
3、可选地,在基于待同步业务数据,生成数据文件之前,还包括:确定目标交换机架构;基于所述目标交换机架构,采用预设消息队列服务构建所述预设交换机,其中,所述预设交换机对应有交换机地址。
4、可选地,在采用预设消息队列服务构建所述预设交换机之后,还包括:向所述数据消费端发送消息通知请求,其中,所述数据消费端响应所述消息通知请求,并返回响应请求,其中,所述响应请求携带有消费端地址;在接收到所述响应请求的情况下,构建所述消息队列,并将所述消息队列的队列地址与所述交换机地址以及所述消费端地址进行关联;将所述队列地址发送至所述数据消费端,其中,所述数据消费端基于所述队列地址,监听所述消息队列。
5、可选地,基于待同步业务数据,生成数据文件的步骤,包括:获取多个数据源的所述待同步业务数据;对所述待同步业务数据进行分类,得到分类结果;基于所述分类结果,汇总属于同一类型的所述同步业务数据,生成所述数据文件,其中,每个所述数据文件对应一种文件类型,每个所述数据文件对应有文件标识。
6、可选地,在基于待同步业务数据,生成数据文件之后,还包括:确定所述数据文件存储的文件路径;确定将所述数据文件存储到所述文件路径指示的存储空间的送达时间;基于所述文件路径、所述送达时间、所述文件类型以及所述文件标识,生成与所述数据文件对应的所述生产消息。
7、可选地,所述数据消费端在监听到所述消息队列具有所述生产消息的情况下,基于所述生产消息,对所述待同步业务数据进行同步处理的步骤,包括:所述数据消费端解析所述生产消息,得到解析结果,其中,所述解析结果至少包括:与所述生产消息对应的所述数据文件的文件类型、送达时间、文件路径、文件标识;所述数据消费端在所述文件类型符合预设文件类型的情况下,在到达所述送达时间时,从所述文件路径指示的存储空间中获取所述文件标识指示的所述待同步业务数据;所述数据消费端对所述待同步业务数据进行同步处理。
8、可选地,所述同步方法还包括:所述数据消费端在超过第一预设时长阈值没有监听到所述消息队列具有所述生产消息的情况下,向所述消息队列发送心跳检测请求;所述数据消费端在超过第二预设时长阈值没有接收到心跳检测响应的情况下,向所述数据生产端发送消息队列连接请求。
9、根据本发明实施例的另一方面,还提供了一种业务数据的同步装置,应用于数据生产端,包括:生成单元,用于基于待同步业务数据,生成数据文件,其中,所述数据文件对应有生产消息;同步单元,用于将所述生产消息发送至预设交换机,其中,所述预设交换机将所述生产消息广播至每个消息队列上,每个所述消息队列对应有一个数据消费端,所述数据消费端在监听到所述消息队列具有所述生产消息的情况下,基于所述生产消息,对所述待同步业务数据进行同步处理。
10、可选地,所述同步装置还包括:第一确定模块,用于在基于待同步业务数据,生成数据文件之前,确定目标交换机架构;第一构建模块,用于基于所述目标交换机架构,采用预设消息队列服务构建所述预设交换机,其中,所述预设交换机对应有交换机地址。
11、可选地,所述同步装置还包括:第一发送模块,用于在采用预设消息队列服务构建所述预设交换机之后,向所述数据消费端发送消息通知请求,其中,所述数据消费端响应所述消息通知请求,并返回响应请求,其中,所述响应请求携带有消费端地址;第二构建模块,用于在接收到所述响应请求的情况下,构建所述消息队列,并将所述消息队列的队列地址与所述交换机地址以及所述消费端地址进行关联;第二发送模块,用于将所述队列地址发送至所述数据消费端,其中,所述数据消费端基于所述队列地址,监听所述消息队列。
12、可选地,所述生成单元包括:第一获取模块,用于获取多个数据源的所述待同步业务数据;第一分类模块,用于对所述待同步业务数据进行分类,得到分类结果;第一生成模块,用于基于所述分类结果,汇总属于同一类型的所述同步业务数据,生成所述数据文件,其中,每个所述数据文件对应一种文件类型,每个所述数据文件对应有文件标识。
13、可选地,所述同步装置还包括:第二确定模块,用于在基于待同步业务数据,生成数据文件之后,确定所述数据文件存储的文件路径;第三确定模块,用于确定将所述数据文件存储到所述文件路径指示的存储空间的送达时间;第二生成模块,用于基于所述文件路径、所述送达时间、所述文件类型以及所述文件标识,生成与所述数据文件对应的所述生产消息。
14、可选地,所述同步单元包括:第一解析模块,用于所述数据消费端解析所述生产消息,得到解析结果,其中,所述解析结果至少包括:与所述生产消息对应的所述数据文件的文件类型、送达时间、文件路径、文件标识;第二获取模块,用于所述数据消费端在所述文件类型符合预设文件类型的情况下,在到达所述送达时间时,从所述文件路径指示的存储空间中获取所述文件标识指示的所述待同步业务数据;第一同步模块,用于所述数据消费端对所述待同步业务数据进行同步处理。
15、可选地,所述同步装置还包括:第三发送模块,用于所述数据消费端在超过第一预设时长阈值没有监听到所述消息队列具有所述生产消息的情况下,向所述消息队列发送心跳检测请求;第四发送模块,用于所述数据消费端在超过第二预设时长阈值没有接收到心跳检测响应的情况下,向所述数据生产端发送消息队列连接请求。
16、根据本发明实施例的另一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行上述业务数据的同步方法。
17、根据本发明实施例的另一方面,还提供了一种电子设备,包括一个或多个处理器和存储器,所述存储器用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现上述业务数据的同步方法。
18、在本公开中,数据生产端基于待同步业务数据,生成数据文件,将生产消息发送至预设交换机,预设交换机将生产消息广播至每个消息队列上,每个消息队列对应有一个数据消费端,数据消费端在监听到消息队列具有生产消息的情况下,基于生产消息,对待同步业务数据进行同步处理。在本公开中,数据生产端可以先生成数据文件,然后将数据文件对应的生产消息发送至预设交换机,通过预设交换机将生产消息广播至每个消息队列上,当数据消费端监听到相应的消息队列上具有生产消息时,可以根据生产消息对待同步业务数据进行同步处理,能够提高数据同步的时效性以及提升数据同步的稳定性,有效降低了数据同步失败的可能性,进而解决了相关技术中在系统间进行数据同步时的时效性较差且容易同步失败的技术问题。