一种异地多活架构下数据处理方法及系统技术方案

技术编号:23101948 阅读:35 留言:0更新日期:2020-01-14 21:09
本公开是关于一种异地多活架构下数据处理方法及系统。该方法包括:获取由全局负载均衡模块转发的交易请求并进行分片;检查本地消息队列消费情况;在本地消息队列消费完成后,将与所述交易请求对应的积分交易写入数据库;将与交易请求对应的积分账户信息和积分交易明细数据写入本地消息队列;根据写入数据库和写入本地消息队列都成功,向数据库提交事务并向用户返回交易结果。本公开的方案,能满足交易过程的强一致性保障要求。

A data processing method and system based on multi Activity Architecture in different places

【技术实现步骤摘要】
一种异地多活架构下数据处理方法及系统
本公开涉及计算机
,尤其涉及一种异地多活架构下数据处理方法及系统。
技术介绍
目前,随着社交网络、云计算等技术不断融入人们的生活,以及现有的计算能力、存储空间、网络带宽等高速发展,人类积累的数据在互联网、通信、金融、商业等诸多领域不断地增长和累积。相关技术中,需要对各种各样的数据例如交易数据进行处理,其中涉及到不同数据中心的数据一致性保障的问题。目前市场上存在不同的异地多活架构数据处理方法。所谓异地多活,一般是指在不同城市建立独立的数据中心,异地主要是指地理位置上不同的地方,多活就指不同地理位置上的系统都能够提供业务服务。在异地多活的架构中,如何保证数据的一致性成为一个非常重要的问题。为了解决该问题,在当前一些互联网系统中,在数据一致性、系统的可用性和用户体验感这三个重要指标上进行取舍。有的系统为了保证系统数据的一致性,牺牲了用户体验感,让所有用户的请求都访问某一个机房内的资源,这会影响部分用户的访问体验。有的系统为了保障数据一致性,在某些场景下,牺牲了系统的可用性,在分布式架构下,某些功能只有一个机房对用户提供服务,当这个机房系统出现不可用状况时,系统的部分功能无法对用户提供服务。有的系统为了保障用户的体验感和系统的可用性,牺牲了数据的一致性,多个机房同时对用户提供服务,极有可能造成数据的冲突,从而造成数据的不一致。相关技术中,例如某互联网公司的异地多活数据处理方法,是采用全局强一致性,按业务维度对流量进行切分,例如按骑手、商户或用户等维度对流量进行切分,读写都是在本地机房进行,正常情况下只需要本地机房的数据,对其它机房数据无依赖,跨机房数据延时无影响,同时控制使用数据库自增主键,在数据中增加毫秒级的时间戳,方便判断数据有效性。另外也考虑区域划分因素,对于不能按区域划分、写入量比较小的业务,进行跨机房读写,容忍一定程度跨机房延时。但是,上述相关技术中的异地多活数据处理方法,只是一种最终一致性的数据保障,无法满足交易过程的强一致性保障要求。
技术实现思路
为克服相关技术中存在的问题,本公开提供一种异地多活架构下数据处理方法及系统,能满足交易过程的强一致性保障要求。根据本公开实施例的第一方面,提供一种异地多活架构下数据处理方法,包括:获取由全局负载均衡模块转发的交易请求并进行分片;检查本地消息队列消费情况;在本地消息队列消费完成后,将与所述交易请求对应的积分交易写入数据库;将与交易请求对应的积分账户信息和积分交易明细数据写入本地消息队列;根据写入数据库和写入本地消息队列都成功,向数据库提交事务并向用户返回交易结果。优选的,所述获取由全局负载均衡模块转发的交易请求并进行分片,包括:通过数据中心的API路由器获取由全局负载均衡模块转发的交易请求,按用户账户进行数据分片。优选的,所述检查本地消息队列消费情况,包括:通过数据中心的本地交易微服务模块,检查本地消息队列中的积分账户消息和积分交易明细的消费情况。优选的,所述在本地消息队列消费完成后,将与所述交易请求对应的积分交易写入数据库,包括:在本地消息队列消费完成后,通过数据中心的虚拟IP模块将与交易请求对应的积分交易写入关联的数据库。优选的,所述方法还包括:通过本地的数据中心的中间件组件模块,将本地的数据中心的本地消息队列通过消息复制方式同步到另一数据中心进行数据同步。优选的,所述方法还包括:通过设置单笔最大交易额和一次切换最大允许损失额控制交易的损失。优选的,所述方法还包括:在数据中心的本地消息队列消费完积分账户消息后再切换数据库,然后再切换流量;和/或,在数据中心的数据库异常切换后,非本地分片账户等待本地消息队列的积分账户消息消费完后,进行积分交易。根据本公开实施例的第二方面,提供一种异地多活架构下数据处理系统,包括全局负载均衡模块和至少两个以上数据中心;其中,全局负载均衡模块,用于接收交易请求,并转发给不同的数据中心;数据中心,用于获取由全局负载均衡模块转发的交易请求并进行分片,检查本地消息队列消费情况,在本地消息队列消费完成后,将与所述交易请求对应的积分交易写入数据库,将与交易请求对应的积分账户信息和积分交易明细数据写入本地消息队列,根据写入数据库和写入本地消息队列都成功,向数据库提交事务并向用户返回交易结果。优选的,所述数据中心包括API路由器、本地交易微服务模块、虚拟IP模块;所述API路由器,获取由全局负载均衡模块转发的交易请求,按用户账户进行数据分片,并分发给本地交易微服务模块;所述本地交易微服务模块,检查本地消息队列中的积分账户消息和积分交易明细的消费情况,在虚拟IP模块将与交易请求对应的积分交易写入关联的数据库后,将与交易请求对应的积分账户信息和积分交易明细数据写入本地消息队列,根据虚拟IP模块写入数据库和本地交易微服务模块写入本地消息队列都成功,向数据库提交事务并向用户返回交易结果;所述虚拟IP模块,在所述本地交易微服务模块检查本地消息队列消费完成后,将与交易请求对应的积分交易写入关联的数据库。优选的,所述数据中心还包括中间件组件模块:所述中间件组件模块,将本地的数据中心的本地消息队列通过消息复制方式同步到另一数据中心进行数据同步。本公开的实施例提供的技术方案,包括以下有益效果:本公开的异地多活架构下数据处理方法,是获取到交易请求并进行分片后,先检查本地消息队列消费情况,在本地消息队列消费完成后,才将与所述交易请求对应的积分交易写入数据库,将与交易请求对应的积分账户信息和积分交易明细数据写入本地消息队列,最后是根据写入数据库和写入本地消息队列都成功,才向数据库提交事务并向用户返回交易结果。通过上述处理,帐户交易只有在数据库和消息队列都写入成功时才提交事务,可以保障交易事务的强一致性,另外也通过消息队列的方式结合数据分片方式保障数据一致性。本公开的实施例,消息队列可以通过复制方式进行数据同步,可以通过本地的数据中心的中间件组件模块,将本地的数据中心的本地消息队列通过消息复制方式同步到另一数据中心进行数据同步;在正常情况下的本地读写只需要在本地完成后即可,在异常切换时非本地分片账户在完成消息队列的消费后再进行积分交易本公开的实施例,可以通过设置单笔最大交易额和一次切换最大允许损失额来控制交易的损失范围动态调整,从而可以将业务损失在可控范围内。应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。附图说明通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。图1是本公开根据一示例性实施例示出的一种异地多活架构下数据处理方法的流程图;图2是本公开根据一示例性实本文档来自技高网
...

【技术保护点】
1.一种异地多活架构下数据处理方法,其特征在于,包括:/n获取由全局负载均衡模块转发的交易请求并进行分片;/n检查本地消息队列消费情况;/n在本地消息队列消费完成后,将与所述交易请求对应的积分交易写入数据库;/n将与交易请求对应的积分账户信息和积分交易明细数据写入本地消息队列;/n根据写入数据库和写入本地消息队列都成功,向数据库提交事务并向用户返回交易结果。/n

【技术特征摘要】
1.一种异地多活架构下数据处理方法,其特征在于,包括:
获取由全局负载均衡模块转发的交易请求并进行分片;
检查本地消息队列消费情况;
在本地消息队列消费完成后,将与所述交易请求对应的积分交易写入数据库;
将与交易请求对应的积分账户信息和积分交易明细数据写入本地消息队列;
根据写入数据库和写入本地消息队列都成功,向数据库提交事务并向用户返回交易结果。


2.根据权利要求1所述的方法,其特征在于,所述获取由全局负载均衡模块转发的交易请求并进行分片,包括:
通过数据中心的API路由器获取由全局负载均衡模块转发的交易请求,按用户账户进行数据分片。


3.根据权利要求1所述的方法,其特征在于,所述检查本地消息队列消费情况,包括:
通过数据中心的本地交易微服务模块,检查本地消息队列中的积分账户消息和积分交易明细的消费情况。


4.根据权利要求1所述的方法,其特征在于,所述在本地消息队列消费完成后,将与所述交易请求对应的积分交易写入数据库,包括:
在本地消息队列消费完成后,通过数据中心的虚拟IP模块将与交易请求对应的积分交易写入关联的数据库。


5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
通过本地的数据中心的中间件组件模块,将本地的数据中心的本地消息队列通过消息复制方式同步到另一数据中心进行数据同步。


6.根据权利要求1至5任一项所述的方法,其特征在于,所述方法还包括:
通过设置单笔最大交易额和一次切换最大允许损失额控制交易的损失。


7.根据权利要求2至5任一项所述的方法,其特征在于,所述方法还包括:
在数据中心的本地消息队列消费完积分账户消息后...

【专利技术属性】
技术研发人员:沈大海李毅江有亮罗海珊李磊李政
申请(专利权)人:华润网络深圳有限公司
类型:发明
国别省市:广东;44

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

1