一种异地多活架构下的数据存储方法和装置制造方法及图纸

技术编号:33440674 阅读:17 留言:0更新日期:2022-05-19 00:27
本发明专利技术公开了一种异地多活架构下的数据存储方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括:根据数据库的操作日志生成消息,所述消息包括数据标识;根据搜索引擎个数对所述消息进行复制,得到与所述搜索引擎个数相等份数的消息;对每份消息进行解析以得到所述每份消息对应的数据标识,并使用远程调用接口从所述数据库中查询所述数据标识对应的最新数据;将所述最新数据存储到对应的搜索引擎中。该实施方式可以保证异地多活架构下的数据存储的一致性,进而有效提升业务的连续性和数据的完整性,在发生容灾故障时,可以将用户的流量调度到其他正常的搜索引擎上,以保证业务可以正常访问数据,提升了业务系统的稳定性和可靠性。定性和可靠性。定性和可靠性。

【技术实现步骤摘要】
一种异地多活架构下的数据存储方法和装置


[0001]本专利技术涉及计算机
,尤其涉及一种异地多活架构下的数据存储方法和装置。

技术介绍

[0002]随着信息化规模的扩大,业务数据的增多,给数据库的存储和查询效率方面带来了巨大的挑战。ES(Elasticsearch)做为一款功能强大的分布式、高扩展、高实时的搜索与数据分析引擎,它能很方便的使大量数据具有搜索、分析和探索的能力,支持实时的存储和搜索数据,高效解决了业务系统数据的存储和搜索的问题。
[0003]在实现本专利技术过程中,专利技术人发现现有技术中存在如下问题:
[0004]在现实应用场景中,通常使用异地多活的架构实现搜索引擎的数据存储,虽然有效解决了因操作失误、硬件故障、网络攻击、断网、断电、自然灾害等带来的系统容灾故障,但是异地多活架构下,数据存储时需要保证数据的一致性,否则会导致业务中断,甚至数据丢失,进而影响正常的业务活动,不能满足业务系统的稳定性和可靠性的要求。因此,如何保证异地多活架构下数据存储的一致性,这是亟待解决的技术问题。

技术实现思路

[0005]有鉴于此,本专利技术实施例提供一种异地多活架构下的数据存储方法和装置,根据搜索引擎的个数对消息进行复制,以使每个待存储数据的搜索引擎对相同的消息进行解析,根据远程调用接口查询的数据库中的最新数据来进行搜索引擎中数据的更新,从而保证了异地多活架构下各个搜索引擎中数据存储的一致性,进而有效提升业务的连续性,在发生容灾故障时,可以将用户的流量调度到其他正常的搜索引擎上,以保证业务可以正常访问数据,提升了业务系统的稳定性和可靠性。
[0006]为实现所述目的,根据本专利技术实施例的一个方面,提供了一种异地多活架构下的数据存储方法,包括:
[0007]根据数据库的操作日志生成消息,所述消息包括数据标识;
[0008]根据搜索引擎个数对所述消息进行复制,得到与所述搜索引擎个数相等份数的消息;
[0009]对每份消息进行解析以得到所述每份消息对应的数据标识,并使用远程调用接口从所述数据库中查询所述数据标识对应的最新数据;
[0010]将所述最新数据存储到对应的搜索引擎中。
[0011]可选地,对每份消息进行消费解析以得到所述每份消息对应的数据标识包括:对每份消息包括的由不少于一个消息构成的消息列表,循环遍历所述消息列表,得到所述每份消息所对应的数据标识集合。
[0012]可选地,对每份消息进行解析以得到所述每份消息对应的数据标识之前,还包括:根据远程调用接口配置信息,生成每份消息对应的远程调用接口。
[0013]可选地,将所述最新数据存储到对应的搜索引擎中之前,还包括:根据所述最新数据对所述消息进行幂等性验证,并将重复消息丢弃。
[0014]可选地,将所述最新数据存储到对应的搜索引擎中,包括:根据所述数据标识从搜索引擎中查找对应的数据;在所述搜索引擎中不存在所述数据标识的情况下,将所述数据标识和所述最新数据插入到所述搜索引擎中;在所述搜索引擎中存在所述数据标识的情况下,获取所述数据标识对应的数据值,并根据所述最新数据更新所述数据值。
[0015]可选地,所述消息还包括消息类型,所述消息类型包括删除、更新和插入;其中,若所述消息类型为删除,则从所述数据库中查询到的所述数据标识对应的最新数据为空;根据所述最新数据更新所述数据值包括:从所述搜索引擎中删除所述数据标识。
[0016]根据本专利技术实施例的第二方面,提供一种异地多活架构下的数据存储装置,包括:
[0017]消息生成模块,用于根据数据库的操作日志生成消息,所述消息包括数据标识;
[0018]消息复制模块,用于根据搜索引擎个数对所述消息进行复制,得到与所述搜索引擎个数相等份数的消息;
[0019]数据获取模块,用于对每份消息进行解析以得到所述每份消息对应的数据标识,并使用远程调用接口从所述数据库中查询所述数据标识对应的最新数据;
[0020]存储模块,用于将所述最新数据存储到对应的搜索引擎中。
[0021]可选地,所述数据获取模块还用于:对每份消息包括的由不少于一个消息构成的消息列表,循环遍历所述消息列表,得到所述每份消息所对应的数据标识集合。
[0022]根据本专利技术实施例的第三方面,提供一种异地多活架构下的数据存储电子设备,其特征在于,包括:
[0023]一个或多个处理器;
[0024]存储装置,用于存储一个或多个程序,
[0025]当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本专利技术实施例第一方面提供的方法。
[0026]根据本专利技术实施例的第四方面,提供一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本专利技术实施例第一方面提供的方法。
[0027]所述专利技术中的一个实施例具有如下优点或有益效果:通过根据数据库的操作日志生成消息,消息包括数据标识;根据搜索引擎个数对消息进行复制,得到与搜索引擎个数相等份数的消息;对每份消息进行解析以得到每份消息对应的数据标识,并使用远程调用接口从数据库中查询数据标识对应的最新数据;将最新数据存储到对应的搜索引擎中的技术方案,实现了根据搜索引擎的个数对消息进行复制,以使每个待存储数据的搜索引擎对相同的消息进行解析,并根据远程调用接口查询的数据库中的最新数据来进行搜索引擎中数据的更新,从而保证了异地多活架构下各个搜索引擎中数据存储的一致性,进而有效提升业务的连续性,在发生容灾故障时,可以将用户的流量调度到其他正常的搜索引擎上,以保证业务可以正常访问数据,提升了业务系统的稳定性和可靠性。
附图说明
[0028]附图用于更好地理解本专利技术,不构成对本专利技术的不当限定。其中:
[0029]图1是根据本专利技术实施例的异地多活架构下的数据存储方法的主要流程的示意
图;
[0030]图2是本专利技术实施例的ES双集群双写一致性总体设计方案示意图;
[0031]图3是本专利技术实施例的ES双集群双写一致性的主要流程示意图;
[0032]图4是本专利技术实施例的ES双集群双写一致性的消息处理主要流程示意图;
[0033]图5是根据本专利技术实施例的异地多活架构下的数据存储装置的主要模块示意图;
[0034]图6是本专利技术实施例可以应用于其中的示例性系统架构图;
[0035]图7是适于用来实现本专利技术实施例的终端设备或服务器的计算机系统的结构示意图。
具体实施方式
[0036]以下结合附图对本专利技术的示范性实施例做出说明,其中包括本专利技术实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本专利技术的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
[0037]在现实应用场景中,通常使用异地多活的架构实现搜索引擎的数据存储,虽然有效解决了因操作失误、硬件故障本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种异地多活架构下的数据存储方法,其特征在于,包括:根据数据库的操作日志生成消息,所述消息包括数据标识;根据搜索引擎个数对所述消息进行复制,得到与所述搜索引擎个数相等份数的消息;对每份消息进行解析以得到所述每份消息对应的数据标识,并使用远程调用接口从所述数据库中查询所述数据标识对应的最新数据;将所述最新数据存储到对应的搜索引擎中。2.根据权利要求1所述的方法,其特征在于,对每份消息进行消费解析以得到所述每份消息对应的数据标识包括:对每份消息包括的由不少于一个消息构成的消息列表,循环遍历所述消息列表,得到所述每份消息所对应的数据标识集合。3.根据权利要求1所述的方法,其特征在于,对每份消息进行解析以得到所述每份消息对应的数据标识之前,还包括:根据远程调用接口配置信息,生成每份消息对应的远程调用接口。4.根据权利要求1所述的方法,其特征在于,将所述最新数据存储到对应的搜索引擎中之前,还包括:根据所述最新数据对所述消息进行幂等性验证,并将重复消息丢弃。5.根据权利要求1所述的方法,其特征在于,将所述最新数据存储到对应的搜索引擎中,包括:根据所述数据标识从搜索引擎中查找对应的数据;在所述搜索引擎中不存在所述数据标识的情况下,将所述数据标识和所述最新数据插入到所述搜索引擎中;在所述搜索引擎中存在所述数据标识的情况下,获取所述数据标识对应的数据值,并根据所述最新数据更新所述数据值。6.根据权利要求1或5所述...

【专利技术属性】
技术研发人员:赵鹏飞任超超
申请(专利权)人:北京京东拓先科技有限公司
类型:发明
国别省市:

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

1