发明内容
针对现有技术中的缺陷,本发明提供一种跨系统数据同步方法及装置,本发明能够降低不同系统间的耦合依赖,且能够保证跨系统间数据同步的及时性及准确性。
为实现上述目的,本发明提供以下技术方案:
第一方面,本发明提供了一种跨系统数据同步方法,包括:
在第一系统端,对各种会造成交易单数据变动的动作进行统一异步事件监听,获取发生数据变动的交易单ID,并将该交易单ID和第一系统ID放入至Redis集合中;
在第二系统端,启动定时任务,每隔预设时间段读取一次Redis集合中的数据;在读取数据时,先验证第一系统ID是否有效,若有效,则根据Redis集合中的交易单ID通过HTTP方式请求第一系统端OpenAPI,以获取与所述交易单ID对应的交易单详情数据;
在第一系统端,在接收到请求后对OpenAPI接口进行鉴权,并在接口鉴权通过后,利用OpenAPI将交易单详情数据以统一格式进行返回;
在第二系统端,获取并解析所述交易单详情数据,写入至第二系统端的数据库或者更新缓存Cache。
进一步地,所述第一系统为房产交易系统,所述第二系统为房产交易可视化系统。
进一步地,所述Redis集合每隔5分钟产生一个数据块,以保障数据同步的时效性。
进一步地,所述预设时间段为5分钟。
第二方面,本发明还提供了一种跨系统数据同步装置,包括:
数据监听模块,用于在第一系统端,对各种会造成交易单数据变动的动作进行统一异步事件监听,获取发生数据变动的交易单ID,并将该交易单ID和第一系统ID放入至Redis集合中;
数据读取模块,用于在第二系统端,启动定时任务,每隔预设时间段读取一次Redis集合中的数据;在读取数据时,先验证第一系统ID是否有效,若有效,则根据Redis集合中的交易单ID通过HTTP方式请求第一系统端OpenAPI,以获取与所述交易单ID对应的交易单详情数据;
接口鉴权及数据返回模块,用于在第一系统端,在接收到请求后对OpenAPI接口进行鉴权,并在接口鉴权通过后,利用OpenAPI将交易单详情数据以统一格式进行返回;
数据接收及解析模块,用于在第二系统端,获取并解析所述交易单详情数据,写入至第二系统端的数据库或者更新缓存Cache。
进一步地,所述第一系统为房产交易系统,所述第二系统为房产交易可视化系统。
进一步地,所述Redis集合每隔5分钟产生一个数据块,以保障数据同步的时效性。
进一步地,所述预设时间段为5分钟。
第三方面,本发明还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面所述跨系统数据同步方法的步骤。
第四方面,本发明还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面所述跨系统数据同步方法的步骤。
由上述技术方案可知,本发明提供的跨系统数据同步方法,在第一系统端,对各种会造成交易单数据变动的动作进行统一异步事件监听,获取发生数据变动的交易单ID,并将该交易单ID和第一系统ID放入至Redis集合中;在第二系统端,启动定时任务,每隔预设时间段读取一次Redis集合中的数据;在读取数据时,先验证第一系统ID是否有效,若有效,则根据Redis集合中的交易单ID通过HTTP方式请求第一系统端OpenAPI,以获取与所述交易单ID对应的交易单详情数据;在第一系统端,在接收到请求后对OpenAPI接口进行鉴权,并在接口鉴权通过后,利用OpenAPI将交易单详情数据以统一格式进行返回;在第二系统端,获取并解析所述交易单详情数据,写入至第二系统端的数据库或者更新缓存Cache。可见,本发明提供的跨系统数据同步方法,具有如下优势:①利用对异步事件统一监听,获取数据变动各个情况,变动数据全面采集;②利用Redis集合(Set)方式作为数据同步单元,达到数据自动去重的目的,减少后期数据重复同步,节省系统无效的资源开销;③利用OpenAPI提供标准接口输出格式数据,这样即便第一系统端数据结构变动,在此接口兼容,可以保证数据输出格式不变,从而使得第二系统解析处理逻辑不受影响。可见,本发明降低了不同系统间的耦合依赖,且能够保证跨系统间数据同步的及时性及准确性。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明一实施例提供了一种跨系统数据同步方法,参见图1,该方法包括如下步骤:
步骤101:在第一系统端,对各种会造成交易单数据变动的动作进行统一异步事件监听,获取发生数据变动的交易单ID,并将该交易单ID和第一系统ID放入至Redis集合中。
在本步骤中,第一系统端一般为数据生产端,例如为房产交易系统端(后续简称B端或交易B端),所述第二系统端一般为数据消费端,例如为房产交易可视化系统端(后续简称C端或交易C端)。参见图2,交易B端,对各种造成交易单变动的动作(Act)做统一异步事件(Event)的监听(Listener),解析到交易单ID(交易单唯一标识),同时将交易单ID和系统ID(系统唯一标识)放入到Redis集合(Set)中,达到自动去重的目的。优选地,所述Redis集合每隔5分钟产生一个数据块,以保障数据同步的时效性。
步骤102:在第二系统端,启动定时任务,每隔预设时间段读取一次Redis集合中的数据;在读取数据时,先验证第一系统ID是否有效,若有效,则根据Redis集合中的交易单ID通过HTTP方式请求第一系统端OpenAPI,以获取与所述交易单ID对应的交易单详情数据。
在本步骤中,参见图2,交易C端启动定时任务,例如每隔5分钟消费一次Redis集合(Set)数据。消费数据时,验证系统ID有效后,根据交易单ID通过HTTP方式请求交易B端OpenAPI,来获取交易单详情数据。
步骤103:在第一系统端,在接收到请求后对OpenAPI接口进行鉴权,并在接口鉴权通过后,利用OpenAPI将交易单详情数据以统一格式进行返回。
在本步骤中,参见图2,交易B端通过接口鉴权后,利用OpenAPI整理统一格式的交易单详情数据返回。
步骤104:在第二系统端,获取并解析所述交易单详情数据,写入至第二系统端的数据库或者更新缓存Cache。
在本步骤中,参见图2,C端获取并按预设规则解析交易单数据,写入C端数据库DB或者更新缓存Cache,这样C端就可以从B端同步获取到这些交易单流程数据,并同步展示在交易C端APP上,让用户可以直观查看自身相关业务的办理进度详情及注意事项。
根据图2展示内容可知,本实施例提供的跨系统数据同步方法,其数据影响面覆盖比较全面,针对需要同步数据做变动Listener监听埋点,全面收集交易单变动涉及场景的操作动作,且将监听到的交易单变动数据,根据交易单唯一标示ID,写入Redis Set集合里面,自动去重重复的交易单ID。在本实施例中,交易B端与交易C端系统数据与服务相对独立,通过OpenAPI输出统一格式的交易单详情数据,交易B端数据结构变动不会影响交易C端的解析功能,单独系统故障对对方影响不大。
根据上面分析可知,本实施例提供的跨系统数据同步方法,在第一系统端,对各种会造成交易单数据变动的动作进行统一异步事件监听,获取发生数据变动的交易单ID,并将该交易单ID和第一系统ID放入至Redis集合中;在第二系统端,启动定时任务,每隔预设时间段读取一次Redis集合中的数据;在读取数据时,先验证第一系统ID是否有效,若有效,则根据Redis集合中的交易单ID通过HTTP方式请求第一系统端OpenAPI,以获取与所述交易单ID对应的交易单详情数据;在第一系统端,在接收到请求后对OpenAPI接口进行鉴权,并在接口鉴权通过后,利用OpenAPI将交易单详情数据以统一格式进行返回;在第二系统端,获取并解析所述交易单详情数据,写入至第二系统端的数据库或者更新缓存Cache。可见,本实施例提供的跨系统数据同步方法,具有如下优势:①利用对异步事件统一监听,获取数据变动各个情况,变动数据全面采集;②利用Redis集合(Set)方式作为数据同步单元,达到数据自动去重的目的,减少后期数据重复同步,节省系统无效的资源开销;③利用OpenAPI提供标准接口输出格式数据,这样即便第一系统端数据结构变动,在此接口兼容,可以保证数据输出格式不变,从而使得第二系统解析处理逻辑不受影响。可见,本实施例降低了不同系统间的耦合依赖,且能够保证跨系统间数据同步的及时性及准确性。
本发明另一实施例提供了一种跨系统数据同步装置,参见图3,该装置包括:数据监听模块21、数据读取模块22、接口鉴权及数据返回模块23和数据接收及解析模块24,其中:
数据监听模块21,用于在第一系统端,对各种会造成交易单数据变动的动作进行统一异步事件监听,获取发生数据变动的交易单ID,并将该交易单ID和第一系统ID放入至Redis集合中;
数据读取模块22,用于在第二系统端,启动定时任务,每隔预设时间段读取一次Redis集合中的数据;在读取数据时,先验证第一系统ID是否有效,若有效,则根据Redis集合中的交易单ID通过HTTP方式请求第一系统端OpenAPI,以获取与所述交易单ID对应的交易单详情数据;
接口鉴权及数据返回模块23,用于在第一系统端,在接收到请求后对OpenAPI接口进行鉴权,并在接口鉴权通过后,利用OpenAPI将交易单详情数据以统一格式进行返回;
数据接收及解析模块24,用于在第二系统端,获取并解析所述交易单详情数据,写入至第二系统端的数据库或者更新缓存Cache。
在一种优选实施方式中,所述第一系统为房产交易系统,所述第二系统为房产交易可视化系统。
在一种优选实施方式中,所述Redis集合每隔5分钟产生一个数据块,以保障数据同步的时效性。
在一种优选实施方式中,所述预设时间段为5分钟。
需要说明的是,本实施例所给出的多个优选实施方式,在逻辑或结构相互不冲突的前提下,可以自由组合,本发明对此不做限定。
本发明实施例提供的跨系统数据同步装置可以用于执行上述实施例所述的跨系统数据同步方法,其工作原理和有益效果类似,此处不再详述。
基于相同的发明构思,本发明又一实施例提供了一种电子设备,参见图4,所述电子设备具体包括如下内容:处理器701、存储器702、通信接口703和总线704;
其中,所述处理器701、存储器702、通信接口703通过所述总线704完成相互间的通信;所述通信接口703用于实现各建模软件及智能制造装备模块库等相关设备之间的信息传输;
所述处理器701用于调用所述存储器702中的计算机程序,所述处理器执行所述计算机程序时实现上述实施例一中的全部步骤,例如,所述处理器执行所述计算机程序时实现下述步骤:
步骤101:在第一系统端,对各种会造成交易单数据变动的动作进行统一异步事件监听,获取发生数据变动的交易单ID,并将该交易单ID和第一系统ID放入至Redis集合中。
步骤102:在第二系统端,启动定时任务,每隔预设时间段读取一次Redis集合中的数据;在读取数据时,先验证第一系统ID是否有效,若有效,则根据Redis集合中的交易单ID通过HTTP方式请求第一系统端OpenAPI,以获取与所述交易单ID对应的交易单详情数据。
步骤103:在第一系统端,在接收到请求后对OpenAPI接口进行鉴权,并在接口鉴权通过后,利用OpenAPI将交易单详情数据以统一格式进行返回。
步骤104:在第二系统端,获取并解析所述交易单详情数据,写入至第二系统端的数据库或者更新缓存Cache。
基于相同的发明构思,本发明又一实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例一的全部步骤,例如,所述处理器执行所述计算机程序时实现下述步骤:
步骤101:在第一系统端,对各种会造成交易单数据变动的动作进行统一异步事件监听,获取发生数据变动的交易单ID,并将该交易单ID和第一系统ID放入至Redis集合中。
步骤102:在第二系统端,启动定时任务,每隔预设时间段读取一次Redis集合中的数据;在读取数据时,先验证第一系统ID是否有效,若有效,则根据Redis集合中的交易单ID通过HTTP方式请求第一系统端OpenAPI,以获取与所述交易单ID对应的交易单详情数据。
步骤103:在第一系统端,在接收到请求后对OpenAPI接口进行鉴权,并在接口鉴权通过后,利用OpenAPI将交易单详情数据以统一格式进行返回。
步骤104:在第二系统端,获取并解析所述交易单详情数据,写入至第二系统端的数据库或者更新缓存Cache。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上实施例仅用于说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。