CN112559548B - 消息中间件的数据同步***及方法 - Google Patents
消息中间件的数据同步***及方法 Download PDFInfo
- Publication number
- CN112559548B CN112559548B CN202011571203.8A CN202011571203A CN112559548B CN 112559548 B CN112559548 B CN 112559548B CN 202011571203 A CN202011571203 A CN 202011571203A CN 112559548 B CN112559548 B CN 112559548B
- Authority
- CN
- China
- Prior art keywords
- data
- user system
- database
- synchronization
- module
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
- Hardware Redundancy (AREA)
Abstract
本发明提供一种消息中间件的数据同步***,数据同步***用于第一用户***和第二用户***之间的数据交互,所述第一用户***和所述第二用户***是同一操作的两个不同***,所述第一用户***和所述第二用户***分别有独立的第一数据库和第二数据库用于保存数据,所述数据同步***包括消息模块、数据处理模块和同步模块,本发明对任务数据同步方没有依赖,避免因数据同步方造成的数据缺失;本发明在数据同步失败时,会持续同步直至同步成功;本发明根据最后更新时间进行裁决,从而把最新的数据同步到对方,保证数据的完整性。
Description
技术领域
本发明涉及数据同步技术,尤其涉及一种消息中间件的同步***及方法。
背景技术
随着信息时代的飞速发展,大数据、人工智能的兴起,数据作为一种资源,越来越被一些企业、单位重视,数据产出的经济和社会价值也越来越明显。一个软件或***在不同的客户端修改,修改后的数据由于所涉及的服务器不同或数据库宕机造成数据无法同步,影响数据的最终准确性,因此,如何保证消息中间件的数据同步,提高数据的完整性,是本领域技术人员需要解决的技术问题;例如,中国专利文献CN111026774A公开了一种数据顺序同步方法、装置、计算机设备及存储介质,通过获取数据库的变更记录表,对唯一字段的hash值对所述消息中间件的分区数进行取模运算,判断唯一字段的值不存在,获取所述变更记录表的表名的hash值;本发明为了解决数据同步不及时造成中间数据的缺失提供一种消息中间件的数据同步***及方法。
发明内容
本发明的目的是提供一种消息中间件的数据同步***及方法,基于消息队列,仲裁数据库及时将更新或丢失数据同步到数据缺失方,实现数据的完整性。
为了实现上述目的,本发明提供以下技术方案:
本发明提供一种消息中间件的数据同步***,数据同步***用于第一用户***和第二用户***之间的数据交互,所述第一用户***和所述第二用户***是同一操作的两个不同***,所述第一用户***和所述第二用户***分别有独立的第一数据库和第二数据库用于保存数据和更新数据,所述数据同步***包括消息模块、数据处理模块和同步模块,所述消息模块中含有数据更新仲裁服务,所述数据更新仲裁服务集成了消息中间件RocketMQ,第一用户***和/或第二用户***更新的数据更新成功则投递给所述数据更新仲裁服务,数据更新失败则不投递数据,流程结束;所述数据更新仲裁服务将更新的数据发送到所述数据处理模块,消息中间件RocketMQ监听消费消息即更新的数据,所述数据更新仲裁服务根据消息中间件消费消息时获取的更新数据进行第一用户***和第二用户***的数据库数据比对,根据数据库数据比对的结果投递给同步模块,所述同步模块将更新的数据同步到第一用户***和/或第二用户***,所述同步模块同步不成功则反馈给所述数据处理模块再次处理,直至更新数据同步成功。
进一步地,所述第一用户***包括用第一户信息模块、第一投资偏好信息模块和第一项目信息模块;
所述第二用户***包括第二用户信息模块、第二投资偏好信息模块和第二项目信息模块。
进一步地,所述第一用户***和第二用户***包含的每个模块分别与数据同步***进行数据交互。
进一步地,所述消息模块用于数据更新仲裁服务,准确的、优雅的同步数据。
进一步地,所述数据处理模块用于处理所述第一用户***和/或第二用户***数据库数据获取和所述第一用户***和/或第二用户***数据库数据的比对。
进一步地,所述数据库数据获取是由消息中间件RocketMQ监听消费消息根据所述第一用户***或第二用户***数据更新的数据库数据从另一用户***的数据库查询信息。
进一步地,所述数据库数据的比对包括所述第一用户***和/或第二用户***数据库数据更新的时间比对和所述第一用户***和/或第二用户***数据库数据多少的比对。
进一步地,所述同步模块用于将所述数据处理模块数据库数据比对后,数据量多或更新时间距今日期短的用户端同步到另一用户端的数据库中。
进一步地,一种消息中间件的数据同步方法,包括以下步骤:
(1)用户更新数据到第一用户***或第二用户***;
(2)第一用户***或第二用户***更新数据投递到数据更新仲裁服务;
(3)消息中间件RocketMQ监听消费消息;
(4)数据更新仲裁服务根据消息中间件消费消息时获取消费消息中第一用户***和第二用户***更新的数据;
(5)第一用户***和第二用户***进行更新的数据库数据比对;
(6)数据量多或更新时间距今日期短的用户***数据同步到另一用户***的数据库;如果同步失败则重复步骤(5)。
进一步地,判断更新的数据是否成功根据RocketMQ管理平台查看消息消费结果记录,如果消息消费未完成就数据同步失败,如果消息消费完成数据同步成功。
进一步地,消息队列根据第一用户***和第二用户***监听消费输出消费消息;
本发明具有的有益效果如下:(1)本发明对任务数据同步方没有依赖,避免因数据同步方造成的数据缺失;(2)本发明在数据同步失败时,会持续同步直至同步成功;(3)本发明根据最后更新时间进行裁决,从而把最新的数据同步到对方,保证数据的完整性。
附图说明
图1是本发明***模块示意图。
图2是本发明同步***模块示意图。
图3是本发明实施例具体模块图。
图4是本发明方法流程图。
具体实施方式
以下结合附图对本发明的具体实施方式做详细描述,应当指出的是,实施例只是对本发明的具体阐述,不应视为对本发明的限定,实施例的目的是为了让本领域技术人员更好地理解和再现本发明的技术方案,本发明的保护范围仍应当以权利要求书所限定的范围为准。
下面结合附图与具体实施方式对本发明做进一步的描述:
如图1-3所示,本发明提供一种消息中间件的数据同步***,数据同步***2用于第一用户***1和第二用户***3之间的数据交互,所述第一用户***1和所述第二用户***3是同一操作的两个不同***,所述第一用户***1和所述第二用户***3分别有独立的第一数据库10和第二数据库30用于保存数据和更新数据,所述数据同步***2包括消息模块21、数据处理模块22和同步模块23,所述消息模块21中含有数据更新仲裁服务,所述数据更新仲裁服务集成了消息中间件RocketMQ,第一用户***和/或第二用户***更新的数据更新成功则投递给所述数据更新仲裁服务,数据更新失败则不投递数据,流程结束;所述数据更新仲裁服务将更新的数据发送到所述数据处理模块22,消息中间件RocketMQ监听消费消息即更新的数据,所述数据更新仲裁服务根据消息中间件消费消息时获取的更新数据进行第一用户***1和第二用户***3的数据库数据比对,根据数据库数据比对的结果投递给同步模块23,所述同步模块23将更新的数据同步到第一用户***1和/或第二用户***3,所述同步模块23同步不成功则反馈给所述数据处理模块22再次处理,直至更新数据同步成功。
进一步地,所述第一用户***1包括用第一户信息模块11、第一投资偏好信息模块12和第一项目信息模块13;
所述第二用户***3包括第二用户信息模块31、第二投资偏好信息模块32和第二项目信息模块33。
进一步地,所述第一用户***1和第二用户***3包含的每个模块分别与数据同步***进行数据交互。
进一步地,所述消息模块21用于数据更新仲裁服务,准确的、优雅的同步数据。
进一步地,所述数据处理模块22用于处理所述第一用户***1和/或第二用户***3数据库数据获取和所述第一用户***1和/或第二用户***3数据库数据的比对。
进一步地,所述数据库数据获取是由消息中间件RocketMQ监听消费消息根据所述第一用户***1或第二用户***3数据更新的数据库数据从另一用户***的数据库查询信息。
进一步地,所述数据库数据的比对包括所述第一用户***1和/或第二用户***3数据库数据更新的时间比对和所述第一用户***1和/或第二用户***3数据库数据多少的比对。
进一步地,所述同步模块23用于将所述数据处理模块22数据库数据比对后,数据量多或更新时间距今日期短的用户端同步到另一用户端的数据库中。
如图4所示,一种消息中间件的数据同步方法,包括以下步骤:
(1)用户更新数据到第一用户***或第二用户***;
(2)第一用户***或第二用户***更新数据投递到数据更新仲裁服务;
(3)消息中间件RocketMQ监听消费消息;
(4)数据更新仲裁服务根据消息中间件消费消息时获取消费消息中第一用户***和第二用户***更新的数据;
(5)第一用户***和第二用户***进行更新的数据库数据比对;
(6)数据量多或更新时间距今日期短的用户***数据同步到另一用户***的数据库;如果同步失败则重复步骤(5)。
进一步地,判断更新的数据是否成功根据RocketMQ管理平台查看消息消费结果记录,如果消息消费未完成就数据同步失败,如果消息消费完成数据同步成功;
消息队列根据第一用户***和第二用户***监听消费输出消费消息;
设置所述第一用户***为APP***,所述第二用户***为PC***,以APP***更新的数据为例,数据同步的具体的步骤如下:
S1,APP***更新用户信息;
S2,APP***将更新用户信息投递到数据更新仲裁服务;
S3,消息中间件RocketMQ监听消费消息;
S4,数据更新仲裁服务根据消息中间件消费消息时获取消费消息中APP***的数据库数据;
S5,APP***数据库数据与PC***的数据库比对,
S51,APP***数据库数据存在,PC***的数据库数据不存在,APP***数据库数据同步到PC***的数据库;
S52,APP***数据库数据不存在,PC***的数据库数据存在,PC***数据库数据同步到APP***的数据库;
S53,APP***数据库比PC***的数据库更新时间距今日期短,APP***数据库数据同步到PC***的数据库;
S54,PC***数据库比APP***的数据库更新时间距今日期短,PC***数据库数据同步到APP***的数据库;
S6,如果步骤S51,S52,S53或S54出现失败,则重复步骤S5,直至同步成功。
以PC***更新的数据为例数据同步的具体的步骤如下:
S1,PC***更新用户信息;
S2,PC***将更新用户信息投递到数据更新仲裁服务;
S3,消息中间件RocketMQ监听消费消息;
S4,数据更新仲裁服务根据消息中间件获取消费消息中PC***的数据库数据;
S5,PC***数据库数据与APP***的数据库比对,
S51,APP***数据库数据存在,PC***的数据库数据不存在,APP***数据库数据同步到PC***的数据库;
S52,APP***数据库数据不存在,PC***的数据库数据存在,PC***数据库数据同步到APP***的数据库;
S53,APP***数据库比PC***的数据库更新时间距今日期短,APP***数据库数据同步到PC***的数据库;
S54,PC***数据库比APP***的数据库更新时间距今日期短,PC***数据库数据同步到APP***的数据库;
S6,如果步骤S51,S52,S53或S54出现失败,则重复步骤S5,直至同步成功。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
Claims (7)
1.消息中间件的数据同步***,其特征在于,
数据同步***用于第一用户***和第二用户***之间的数据交互,所述第一用户***和所述第二用户***是同一操作的两个不同***,所述第一用户***和所述第二用户***分别有独立的第一数据库和第二数据库用于保存数据和更新数据,所述数据同步***包括消息模块、数据处理模块和同步模块,所述消息模块中含有数据更新仲裁服务,所述数据更新仲裁服务集成了消息中间件RocketMQ,第一用户***和/或第二用户***更新的数据更新成功则投递给所述数据更新仲裁服务,数据更新失败则不投递数据,流程结束;所述数据更新仲裁服务将更新的数据发送到所述数据处理模块,消息中间件RocketMQ监听消费消息即更新的数据,所述数据更新仲裁服务根据消息中间件消费消息时获取的更新数据进行第一用户***和第二用户***的数据库数据比对,根据数据库数据比对的结果投递给同步模块,所述同步模块将更新的数据同步到第一用户***和/或第二用户***,所述同步模块同步不成功则反馈给所述数据处理模块再次处理,直至更新数据同步成功;
所述数据处理模块用于处理所述第一用户***和/或第二用户***数据库数据获取和所述第一用户***和/或第二用户***数据库数据的比对;
所述数据库数据获取是由消息中间件RocketMQ监听消费消息根据所述第一用户***或第二用户***数据更新的数据库数据从另一用户***的数据库查询信息;
所述数据库数据的比对包括所述第一用户***和/或第二用户***数据库数据更新的时间比对和所述第一用户***和/或第二用户***数据库数据多少的比对。
2.根据权利要求1所述的消息中间件的数据同步***,其特征在于,
所述第一用户***包括用第一户信息模块、第一投资偏好信息模块和第一项目信息模块;
所述第二用户***包括第二用户信息模块、第二投资偏好信息模块和第二项目信息模块。
3.根据权利要求2所述的消息中间件的数据同步***,其特征在于,
所述第一用户***和第二用户***包含的每个模块分别与数据同步***进行数据交互。
4.根据权利要求1所述的消息中间件的数据同步***,其特征在于,
所述消息模块用于数据更新仲裁服务,准确的、优雅的同步数据。
5.根据权利要求1所述的消息中间件的数据同步***,其特征在于,
所述同步模块用于将所述数据处理模块数据库数据比对后,数据量多或更新时间距今日期短的用户端同步到另一用户端的数据库中。
6.一种消息中间件的数据同步方法,其特征在于,
包括以下步骤:
(1)用户更新数据到第一用户***或第二用户***;
(2)第一用户***或第二用户***更新数据投递到数据更新仲裁服务;
(3)消息中间件RocketMQ监听消费消息;
(4)数据更新仲裁服务根据消息中间件消费消息时获取消费消息中第一用户***和第二用户***更新的数据;
(5)第一用户***和第二用户***进行更新的数据库数据比对;
(6)数据量多或更新时间距今日期短的用户***数据同步到另一用户***的数据库;如果同步失败则重复步骤(5)。
7.根据权利要求6所述的一种消息中间件的数据同步的方法,其特征在于,
判断更新的数据是否成功根据RocketMQ管理平台查看消息消费结果记录,如果消息消费未完成就数据同步失败,如果消息消费完成数据同步成功。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011571203.8A CN112559548B (zh) | 2020-12-27 | 2020-12-27 | 消息中间件的数据同步***及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011571203.8A CN112559548B (zh) | 2020-12-27 | 2020-12-27 | 消息中间件的数据同步***及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112559548A CN112559548A (zh) | 2021-03-26 |
CN112559548B true CN112559548B (zh) | 2023-06-16 |
Family
ID=75033302
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011571203.8A Active CN112559548B (zh) | 2020-12-27 | 2020-12-27 | 消息中间件的数据同步***及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112559548B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106682140A (zh) * | 2016-12-20 | 2017-05-17 | 华北计算技术研究所(中国电子科技集团公司第十五研究所) | 一种基于时间戳和映射策略的多***用户增量同步方法 |
CN110351662A (zh) * | 2018-04-04 | 2019-10-18 | 华为技术有限公司 | 一种端云协同的方法、平台和装置 |
CN111597197A (zh) * | 2020-06-29 | 2020-08-28 | 腾讯科技(深圳)有限公司 | 数据库之间的数据对账方法和装置、存储介质及电子设备 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100471567B1 (ko) * | 2000-07-29 | 2005-03-07 | 엘지전자 주식회사 | 이중화 시스템 환경에서 데이터 동기화를 위한 트랜잭션관리 방법 |
US11222001B2 (en) * | 2013-03-15 | 2022-01-11 | Sap Se | Augmenting middleware communication services |
US10447779B2 (en) * | 2016-06-21 | 2019-10-15 | Sap Se | Synchronizing document replication in distributed systems |
KR102333127B1 (ko) * | 2017-05-26 | 2021-11-30 | 삼성전자주식회사 | 사용자 정보를 획득하기 위한 방법 및 그 전자 장치 |
CN109408203B (zh) * | 2018-11-01 | 2019-10-18 | 无锡华云数据技术服务有限公司 | 一种队列消息一致性的实现方法、装置、计算*** |
CN110309161B (zh) * | 2019-06-06 | 2021-10-29 | 新华三大数据技术有限公司 | 一种数据同步方法、装置及服务器 |
CN110704458B (zh) * | 2019-08-15 | 2023-04-18 | 平安科技(深圳)有限公司 | 数据同步方法、装置、计算机设备及存储介质 |
-
2020
- 2020-12-27 CN CN202011571203.8A patent/CN112559548B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106682140A (zh) * | 2016-12-20 | 2017-05-17 | 华北计算技术研究所(中国电子科技集团公司第十五研究所) | 一种基于时间戳和映射策略的多***用户增量同步方法 |
CN110351662A (zh) * | 2018-04-04 | 2019-10-18 | 华为技术有限公司 | 一种端云协同的方法、平台和装置 |
CN111597197A (zh) * | 2020-06-29 | 2020-08-28 | 腾讯科技(深圳)有限公司 | 数据库之间的数据对账方法和装置、存储介质及电子设备 |
Non-Patent Citations (2)
Title |
---|
A Method od Data Synchronization Based on Message Oriented Middleware and Xml in Distributed Heterogeneous Environments;Z.Y.Lu,Z.B.Guo;Proceedings of the 2015 International Conference on Artificial Intelligence and Industrial Engineering;全文 * |
面向数据的实时网络中间件的设计与实现;汤学达等;网络安全技术与应用;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112559548A (zh) | 2021-03-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7650394B2 (en) | Synchronizing email recipient lists using block partition information | |
CN107515874B (zh) | 一种分布式非关系型数据库中同步增量数据的方法与设备 | |
EP2919130A1 (en) | Method and system for synchronizing distributed database | |
CN115599870B (zh) | 基于消息队列的存量数据与增量数据融合的数据同步方法 | |
US11899689B2 (en) | Blockchain-based data synchronization method, apparatus, and computer-readable storage medium | |
CN111831748B (zh) | 数据同步方法、装置及存储介质 | |
CN107231435B (zh) | 数据同步监控方法及*** | |
CN114092252A (zh) | 一种区块链交易执行方法、装置、设备及可读存储介质 | |
CN107040576A (zh) | 信息推送方法及装置、通讯*** | |
CN113193947A (zh) | 实现分布式全局序的方法、设备、介质及程序产品 | |
CN110750594B (zh) | 一种基于mysql增量日志实时跨网络数据库同步方法 | |
CN110442564B (zh) | 增量数据校验方法、存储介质 | |
CN111338834A (zh) | 数据存储方法和装置 | |
CN114416883A (zh) | 区块链轻节点数据同步方法、装置、设备及可读存储介质 | |
CN112559548B (zh) | 消息中间件的数据同步***及方法 | |
US8843531B2 (en) | Bookkeeping of download timestamps | |
CN110585724B (zh) | 游戏客户端中的表格数据更新方法、装置 | |
CN116701352A (zh) | 一种数据库数据迁移方法及*** | |
CN112148705A (zh) | 数据迁移的方法和装置 | |
CN116186082A (zh) | 基于分布式的数据汇总方法、第一服务器和电子设备 | |
CN115757642A (zh) | 一种基于归档日志文件的数据同步方法及装置 | |
CN111966650B (zh) | 一种运维大数据共享数据表的处理方法、装置及存储介质 | |
US20090106781A1 (en) | Remote call handling methods and systems | |
CN111522875B (zh) | 一种全量数据同步的分布式***数据副本一致性监测方法 | |
CN107563942B (zh) | 一种物流数据批量处理方法、物流处理***以及处理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |