[发明专利]基于消息队列高可用性的数据同步方法有效
申请号: | 202011631693.6 | 申请日: | 2020-12-31 |
公开(公告)号: | CN112667418B | 公开(公告)日: | 2023-07-18 |
发明(设计)人: | 甘露 | 申请(专利权)人: | 重庆富民银行股份有限公司 |
主分类号: | G06F9/54 | 分类号: | G06F9/54;G06F16/27;G06N3/0442;G06N3/08 |
代理公司: | 重庆强大凯创专利代理事务所(普通合伙) 50217 | 代理人: | 赵玉乾 |
地址: | 401121 重庆市渝*** | 国省代码: | 重庆;50 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 消息 队列 可用性 数据 同步 方法 | ||
本发明涉及数据同步技术领域,具体为基于消息队列高可用性的数据同步方法,包括以下内容:S100:消息发布端向消息队列服务器发送一阶段准备消息;S200:消息队列服务接收一阶段准备消息;S300:消息发布端执行本地数据事务;S400:消息发布端根据本地数据事务执行结果向消息队列服务器发送二阶段消息;S500:消息队列服务器接收消息发布端发布的二阶段消息,若二阶段消息为二阶段提交消息,则将消息下发给消息消费端;若二阶段消息为二阶段撤回消息,则清除一阶段准备消息。本申请的基于消息队列高可用性的数据同步方法,能够提供高可用性的消息队列服务,确保生产端发送的数据同步到消费端。
技术领域
本发明涉及数据同步技术领域,具体为基于消息队列高可用性的数据同步方法。
背景技术
不同应用系统之前的数据同步,一般会使用消息队列,将耦合性降至最低,对消息队列要求必须是高可用、高可靠、高吞吐以及低延时。
在此,当发送消息的客户端或者是消息存储的服务端不可用时,系统间的数据同步就会造成影响。如何解决数据在消息队列受到影响的情况下后续依然能正常同步到下游,是消息队列服务的技术难点。
发明内容
本发明意在提供基于消息队列高可用性的数据同步方法,能够提供高可用性的消息队列服务,确保生产端发送的数据同步到消费端。
本申请提供如下技术方案:
基于消息队列高可用性的数据同步方法,包括以下内容:
S100:消息发布端根据本地数据事务生成一阶段准备消息并发送至消息队列服务器;
S200:消息队列服务接收一阶段准备消息并反馈成功信息;
S300:消息发布端接收到消息队列服务器的反馈信息执行本地数据事务;
S400:消息发布端根据本地数据事务执行结果向消息队列服务器发送二阶段消息;若本地数据事务执行成功则向消息队列服务器发送二阶段提交消息;若本地数据事务执行失败则向消息队列服务器发送二阶段撤回消息;
S500:消息队列服务器接收消息发布端发布的二阶段消息,若二阶段消息为二阶段提交消息,则将消息下发给消息消费端;若二阶段消息为二阶段撤回消息,则清除一阶段准备消息。
进一步,S400中,若本地数据事务执行无响应,则启动定时任务定时查询本地数据事务执行结果,根据定时任务的查询结果重复执行S400。
进一步,系统存储有数据同步状态表,所述本地数据事务执行时会根据执行结果修改数据同步状态表,所述S400中根据数据同步状态表判断本地数据事务的执行结果。
进一步,S500还包括:
S510:若消息队列服务器超时未收到消息发布端发送的二阶段消息,则向消息发布端发送核查请求;
还包括:
S600:消息发布端接收到核查请求后,执行S400。
进一步,所述S300中,若消息发布端未接收到消息队列服务器的反馈信息则重新向消息队列服务器发送一阶段准备消息。
进一步,还包括:
S700:消息消费端消费消息队列服务器下发的消息,并通过回调反馈消费成功信息;
S800:消息队列服务器接收消费成功信息,确认消息消费成功。
进一步,S800还包括:
S810:消息队列服务器未接收到消费成功信息,延时预设时间后重新进行消息下发。
本发明技术方案的有益效果为:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于重庆富民银行股份有限公司,未经重庆富民银行股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011631693.6/2.html,转载请声明来源钻瓜专利网。