用于同步数据的方法、装置、电子设备及可读存储介质制造方法及图纸

技术编号:25914858 阅读:28 留言:0更新日期:2020-10-13 10:33
本申请实施例公开了用于同步数据的方法、装置、电子设备及计算机可读存储介质,涉及多集群协同数据处理、数据容灾技术领域。该方法的一具体实施方式包括:查询消息队列中存储的消息,其中,任意集群发起的写操作指令均会经格式转换后以消息的形式被存入消息队列,写操作指令基于面向切面编程AOP技术被识别;响应于消息中包含待同步消息,从消息队列中拉取该待同步消息,并对该待同步消息进行格式转换,得到待执行的写操作指令;执行该写操作指令,以同步与写操作指令对应的待写入数据。该实施方式不仅降低了开发难度和运维难度,还避免了代码耦合所可能导致的一系列那问题,可更加灵活的适用于多种业务场景。

【技术实现步骤摘要】
用于同步数据的方法、装置、电子设备及可读存储介质
本申请实施例涉及数据处理
,具体涉及多集群协同数据处理、数据容灾
,尤其涉及用于同步数据的方法、装置、电子设备及可读存储介质。
技术介绍
为了保证智能客服系统机房级的高可用性(一个机房的出现故障后,另外一个机房可以接替故障机房继续提供服务),需要在机房间进行基础组件的数据同步。ES(Elasticsearch)工具作为全文检索引擎基础组件,需要一个合理的集群数据同步方案,来保证机房间不同的ES集群可以进行高效、稳定、及时的数据同步。现有技术提供了一种通过侵入业务代码的数据同步方案,即将数据同步与存储的功能代码进行耦合。
技术实现思路
本申请实施例提出了一种用于同步数据的方法、装置、电子设备及计算机可读存储介质。第一方面,本申请实施例提出了一种用于同步数据的方法,包括:查询消息队列中存储的消息;其中,任意集群发起的写操作指令均会经格式转换后以所述消息的形式被存入所述消息队列,所述写操作指令基于面向切面编程AOP技术被识别;响应于所述消息中包含待同步消息,从所述消息队列中拉取所述待同步消息,并对所述待同步消息进行格式转换,得到待执行的写操作指令;执行所述写操作指令,以同步与所述写操作指令对应的待写入数据。第二方面,本申请实施例提出了一种用于同步数据的装置,包括:消息查询单元,被配置成查询消息队列中存储的消息;其中,任意集群发起的写操作指令均会经格式转换后以所述消息的形式被存入所述消息队列,所述写操作指令基于面向切面编程AOP技术被识别;待同步消息拉取及写操作指令获取单元,被配置成响应于所述消息中包含待同步消息,从所述消息队列中拉取所述待同步消息,并对所述待同步消息进行格式转换,得到待执行的写操作指令;写操作指令执行及待写入数据同步单元,被配置成执行所述写操作指令,以同步与所述写操作指令对应的待写入数据。第三方面,本申请实施例提供了一种电子设备,该电子设备包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,该指令被至少一个处理器执行,以使至少一个处理器执行时能够实现如第一方面中任一实现方式描述的用于同步数据的方法。第四方面,本申请实施例提供了一种存储有计算机指令的非瞬时计算机可读存储介质,该计算机指令用于使计算机执行时能够实现如第一方面中任一实现方式描述的用于同步数据的方法。本申请实施例提供的用于同步数据的方法、装置、电子设备及计算机可读存储介质,首先,查询消息队列中存储的消息,其中,任意集群发起的写操作指令均会经格式转换后以消息的形式被存入消息队列,写操作指令基于面向切面编程AOP技术被识别;然后,响应于消息中包含待同步消息,从消息队列中拉取该待同步消息,并对该待同步消息进行格式转换,得到待执行的写操作指令;接着,执行该写操作指令,以同步与写操作指令对应的待写入数据。区别于现有技术提供的需要侵入业务代码的数据同步方案,本申请通过使用面向切面编程的技术,可实现在不侵入原有业务代码、不对原有业务代码进行改动的情况下,准确识别到用于表示数据写操作的指令,进而通过消息队列将该写操作指令传达至每一个需要进行同步的集群。不仅降低了开发难度和运维难度,还避免了代码耦合所可能导致的一系列那问题,可更加灵活的适用于多种业务场景。应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。附图说明通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:图1是本申请可以应用于其中的示例性系统架构;图2为本申请实施例提供的一种用于同步数据的方法的流程图;图3为本申请实施例提供的另一种用于同步数据的方法的流程图;图4为本申请实施例提供的一种结合应用场景的用于同步数据的方法的时序图;图5为本申请实施例提供的一种用于同步数据的装置的结构框图;图6为本申请实施例提供的一种适于执行用于同步数据的方法的电子设备的结构示意图。具体实施方式下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关专利技术,而非对该专利技术的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关专利技术相关的部分。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。图1示出了可以应用本申请的用于同步数据的方法、装置、电子设备及计算机可读存储介质的实施例的示例性系统架构100。如图1所示,系统架构100可以包括至少两个服务器集群101、网络102和消息服务器103。网络102用以在服务器集群101和服务器103之间提供通信链路的介质。网络102可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。用户可通过网络102对可访问到的任意服务器集群101发起数据写操作,而任意服务器集群101可将其接收到的数据写操作通过网络103存入负责维护消息队列的消息服务器103,以使其它服务器集群101也可以通过与消息服务器103之间的数据交互完成数据同步。服务器集群101和消息服务器103上可以安装有各种用于实现两者之间进行信息通讯的应用,例如数据同步类应用、信号传输类应用、即时通讯类应用等。服务器集群101和服务器103可以是硬件,也可以是软件。当服务器集群101为硬件时,可以实现成多个服务器组成的分布式服务器集群,也可以实现成单个性能较强的独立服务器;当务器集群101为软件时,其可以实现成多个软件或软件模块,也可以实现成单个软件或软件模块,在此不做具体限定。当消息服务器103为硬件时,同样可以实现成多个服务器组成的分布式服务器集群,也可以实现成单个服务器;服务器为软件时,可以实现成多个软件或软件模块,也可以实现成单个软件或软件模块,在此不做具体限定。服务器集群101通过内置的各种应用可以实现各种业务需求,以可以实现不同集群间数据同步业务的数据同步类应用为例,任意服务器集群101在运行该数据同步类应用时可实现如下效果:首先,通过网络102查询由消息服务器103维护的消息队列中存储的消息,其中,任意集群发起的写操作指令均会经格式转换后以消息的形式被存入消息队列,写操作指令基于面向切面编程AOP技术被识别;然后,若经查询发现消息队列中记录有待同步消息,则从该消息队列中拉取该待同步消息,并对该待同步消息进行格式转换,得到待执行的写操作指令;接着,执行该写操作指令,以同步与该写操作指令对应的待写入数据。即任意服务器集群101通过与消息服务器103之间的数据交互,可完成数据在各集群之间的同步。需要指出的是,消息队列也可以由任意服务器101单独进行维护(例如主服务器集群),或者由所有服务器集群共同维护,在保障各服务器集群均可以访问到消息队本文档来自技高网...

【技术保护点】
1.一种用于同步数据的方法,包括:/n查询消息队列中存储的消息;其中,任意集群发起的写操作指令均会经格式转换后以所述消息的形式被存入所述消息队列,所述写操作指令基于面向切面编程AOP技术被识别;/n响应于所述消息中包含待同步消息,从所述消息队列中拉取所述待同步消息,并对所述待同步消息进行格式转换,得到待执行的写操作指令;/n执行所述写操作指令,以同步与所述写操作指令对应的待写入数据。/n

【技术特征摘要】
1.一种用于同步数据的方法,包括:
查询消息队列中存储的消息;其中,任意集群发起的写操作指令均会经格式转换后以所述消息的形式被存入所述消息队列,所述写操作指令基于面向切面编程AOP技术被识别;
响应于所述消息中包含待同步消息,从所述消息队列中拉取所述待同步消息,并对所述待同步消息进行格式转换,得到待执行的写操作指令;
执行所述写操作指令,以同步与所述写操作指令对应的待写入数据。


2.根据权利要求1所述的方法,还包括:
利用所述AOP技术为所有用于执行数据写操作的指令附加写标记。


3.根据权利要求2所述的方法,还包括:
接收下发的实际操作指令;
将附加有所述写标记的实际操作指令识别为所述写操作指令;
将所述写操作指令转换为所述消息队列可识别的目标字符串,并将所述目标字符串以所述消息的形式存入所述消息队列。


4.根据权利要求1所述的方法,响应于所述写操作指令由当前集群经格式转换为所述消息的形式,还包括:
在所述消息被存入所述消息队列之前,执行由当前集群发起的写操作指令,以先完成与所述写操作指令对应的待写入数据在当前集群中的存储。


5.根据权利要求1至4任一项所述的方法,还包括:
响应于所述待同步消息未能成功通过格式转换和/或转换后得到的写操作指令未能成功执行,将当前集群上一次从所述消息队列拉取消息的位置确定为目标位置;
拉取所述消息队列中位于所述目标位置以下的新消息;其中,所述消息队列中的各消息按存入时间先后以自上而下的顺序进行存储;
重新执行与所述新消息对应的写操作指令。


6.根据权利要求5所述的方法,还包括:
响应于所述写操作指令执行完成,向所述消息队列返回携带有当前集群对应编号的写操作指令同步完成信号。


7.一种用于同步数据的装置,包括:
消息查询单元,被配置成查询消息队列中存储的消息;其中,任意集群发起的写操作指令均会经格式转换后以所述消息的形式被存入所述消息队列,所述写操作指令基于面向切面编程AOP技术被识别;
待同步消息拉取及写操作指令获取单元,被配置成响应于所述消息中包含待同步消息,从所述消息队列中拉取所述待同步消息,并对所述待同步消息进行格式转换,得到待执行的写操作指令;

【专利技术属性】
技术研发人员:李晓东
申请(专利权)人:北京百度网讯科技有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1