CN114116791A - 一种基于mqtt协议消息的数据同步方法及系统 - Google Patents
一种基于mqtt协议消息的数据同步方法及系统 Download PDFInfo
- Publication number
- CN114116791A CN114116791A CN202111160305.5A CN202111160305A CN114116791A CN 114116791 A CN114116791 A CN 114116791A CN 202111160305 A CN202111160305 A CN 202111160305A CN 114116791 A CN114116791 A CN 114116791A
- Authority
- CN
- China
- Prior art keywords
- data
- message
- instruction
- business
- interface
- 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.)
- Pending
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/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
- G06F16/24561—Intermediate data storage techniques for performance improvement
-
- 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/2308—Concurrency control
- G06F16/2315—Optimistic concurrency control
- G06F16/2329—Optimistic concurrency control using versioning
-
- 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
- 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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种基于MQTT协议消息的数据同步方法及系统,方法包括:搭建基于MQTT的ActiveMQ消息中间件平台,在ActiveMQ消息中间件平台为不同目标数据库配置用于存储消息的指定队列;当业务系统有相关业务操作时,将对应的业务操作数据转化成指令数据,往对应指定队列中推送一条包括请求业务数据接口的消息;当目标数据库收到消息后,基于所述消息获取请求业务数据接口,基于所述请求业务数据接口获取经过转化后的指令数据,基于所述指令数据进行数据同步。本发明通过架设ActiveMQ中间件构建消息中间件,源数据库数据一旦发生变化,发送者将消息发送给消息中间件平台,并将消息转发给目标数据库数据服务,实现不同局域网网络环境下信息互通,并且能实时监测到源数据变化。
Description
技术领域
本发明涉及数据传输处理技术领域,具体涉及一种基于MQTT协议消息的数据同步方法及系统。
背景技术
数据库技术是信息系统领域中一项核心技术。随着科技的不断普及和发展,互联网被应用于经济生活及教育教学等各个领域,数据库技术也成了获取数据信息资源的重要途径和手段。通过传统的数据库存储过程可以实现同一局域网内不同数据库之间数据同步,但是却无法解决不同局域网络下数据同步问题,而通过将原数据库数据配置公网IP环境,可以解决网络问题实现数据同步,但是增加网络安全及数据安全风险,且无法做到实时数据同步。
发明内容
鉴于现有技术中存在的技术缺陷和技术弊端,本发明实施例提供克服上述问题或者至少部分地解决上述问题的一种基于MQTT协议消息的数据同步方法及系统,具体方案如下:
作为本发明的第一方面,提供一种基于MQTT协议消息的数据同步方法,所述方法包括:
步骤1,搭建基于MQTT的ActiveMQ消息中间件平台,在ActiveMQ消息中间件平台为不同目标数据库配置用于存储消息的指定队列;
步骤2,当业务系统有相关业务操作时,将对应的业务操作数据转化成指令数据,往对应指定队列中推送一条包括请求业务数据接口的消息;
步骤3,当目标数据库收到消息后,基于所述消息获取请求业务数据接口,基于所述请求业务数据接口获取经过转化后的指令数据,基于所述指令数据进行数据同步。
进一步地,步骤2还包括:当业务系统有相关业务操作时,根据不同业务类型将业务操作数据存入Mqsql关系型数据库中,对Mqsql关系型数据库中的业务操作数据进行指令标识。
进一步地,所述指令标识包括指令码字段,所述指令码字段包括新增、修改和删除指令。
进一步地,步骤3还包括:当目标数据库收到消息后,新建线程池,指定线程池维护的最大线程个数,将新开启的多线程任务放入线程池里进行统一管理,在获取所述指令数据后,将获取到的指令数据存入目标数据库表TARGET_DATA_TEMP中,并在线程任务结束后销毁所述线程池,避免内存耗尽。
进一步地,所述方法包括,在目标数据库基于所述指令数据进行数据同步完毕后,调用设备接口将指令数据下发至设备,同时调用对应的业务接口上传本地状态数据至源数据库表进行状态回写。
作为本发明的第二方面,提供一种基于MQTT协议消息的数据同步系统,所述系统包括:配置单元、消息发送单元以及消息接收单元;
所述配置单元用于搭建基于MQTT的ActiveMQ消息中间件平台,在ActiveMQ消息中间件平台为不同目标数据库配置用于存储消息的指定队列;
所述消息发送单元用于当业务系统有相关业务操作时,将对应的业务操作数据转化成指令数据,往对应指定队列中推送一条包括请求业务数据接口的消息;
所述消息接收单元用于当目标数据库收到消息后,基于所述消息获取请求业务数据接口,基于所述请求业务数据接口获取经过转化后的指令数据,,基于所述指令数据进行数据同步。
进一步地,所述消息发送单元还用于:当业务系统有相关业务操作时,根据不同业务类型将业务操作数据存入Mqsql关系型数据库中,对Mqsql关系型数据库中的业务操作数据进行指令标识。
进一步地,所述指令标识包括指令码字段,所述指令码字段包括新增、修改和删除指令.
进一步地,所述消息接收单元还用于:当目标数据库收到消息后,新建线程池,并指定线程池维护的最大线程个数,将新开启的多线程任务放入线程池里进行统一管理,在获取所述指令数据后,将获取到的指令数据存入目标数据库表TARGET_DATA_TEMP中,并在线程任务结束后销毁所述线程池,避免内存耗尽。
进一步地,所述系统还包括状态回写单元,所述状态回写单元用于在目标数据库基于所述指令数据进行数据同步完毕后,调用设备接口将指令数据下发至设备,同时调用对应的业务接口上传本地状态数据至源数据库表进行状态回写。
本发明具有以下有益效果:
本发明通过构建ActiveMQ消息中间件服务,并为不同的目标数据库服务配置与之对应的队列,可以实现不同局域网网络环境信息互通,并且能够实时监测数据源变化。通过建设统一的指令数据标准规范,实现不同业务形态数据规范化及统一。通过异步多线程任务分别请求各自的源数据库数据存储至目标数据库,保证源数据库数据能够实时、高效的批量同步至目标主机。通过业务接口将已同步数据状态字段进行回写,实现批量数据同步完毕后源数据库数据状态更新,此方法对源数据库需要同步数据至目标数据库提供了整套的解决方案,可以高效、便捷的实现数据同步与数据下发,具有极高的稳定性和极强的适用性。
附图说明
图1为提供的一种基于MQTT协议消息的数据同步方法的流程示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
如图1所示,作为本发明的第一实施例,提供一种基于MQTT协议消息的数据同步方法,该方法涉及到的数据接口服务和目标数据库服务均采用用Java语言并在IDEA开发环境中具体实现,所述方法具体包括:
在自有云平台上搭建基于MQTT的ActiveMQ消息中间件平台,搭建生产者服务,自定义一条消息可以正常推送至ActiveMQ消息中间件平台的ActiveMQ消息队列,搭建接收者服务,可以收到来自ActiveMQ消息中间件平台的ActiveMQ队列消息。
在业务系统搭建源数据库数据服务,当业务系统有相关业务操作时,将对应的业务操作数据存入Mqsql关系型数据库,并根据不同业务类型将存入数据库数据进行指令标识,同时为不同目标数据库配置指定队列,往对应队列中推送一条消息。
搭建目标数据库服务,当收到待同步数据消息后新建线程池ThreadExecutorService,并指定线程池维护的最大线程个数,例如20个,将新开启的多线程任务放入线程池里进行统一管理exceute(thread),异步多线程任务首先调用syncCarAuthDataFromRemoteToLocal()方法分别请求各自的源数据库数据,即所述指令数据,获取到指令数据后存入目标数据库表TARGET_DATA_TEMP中,当线程任务结束后进行销毁,避免内存耗尽。
数据同步完毕后,调用设备接口downloadLocalCarAuthData()将指令数据下发至设备,同时调用业务接口uploadLocalCarDownloadStatusToRemote()上传本地状态数据至源数据库表进行状态回写。
上述实施例中,通过架设ActiveMQ中间件构建消息中间件,源数据库数据一旦发生变化,发送者将消息发送给消息中间件平台,将消息存放在指定的消息队列中,并将消息转发给目标数据库数据服务,实现不同局域网网络环境下信息互通,并且能实时监测到源数据变化;
通过建设统一的指令数据标准规范,实现不同业务形态数据规范化统一,对于设备下发数据将业务数据转化成设备数据下发相关的指令数据,除必要的数据体外,统一新增指令码字段,例如:新增-I(Insert)、修改-U(Update)、删除-D(Delete)指令;
通过在消息服务器初始化配置与不同目标数据标志对应的队列存储对应的消息,目标数据库服务收到待同步消息后,通过异步多线程任务分别请求各自的源数据存储至目标数据库,线程池对线程的创建和销毁进行统一维护管理,一个线程在完成任务后进行销毁,释放不必要内存消耗,进而保证源数据库数据能够实时、高效的批量同步至目标主机。
当异步多线程任务完成必要的数据同步及存储操作后,通过业务接口将已同步数据状态字段进行回写,实现批量数据同步完毕后源数据库数据状态更新。
作为本发明的第二方面,还提供一种基于MQTT协议消息的数据同步系统,所述系统包括:配置单元、消息发送单元以及消息接收单元;
所述配置单元用于搭建基于MQTT的ActiveMQ消息中间件平台,在ActiveMQ消息中间件平台为不同目标数据库配置用于存储消息的指定队列;
所述消息发送单元用于当业务系统有相关业务操作时,将对应的业务操作数据转化成指令数据,往对应指定队列中推送一条包括请求业务数据接口的消息;
所述消息接收单元用于当目标数据库收到消息后,基于所述消息获取请求业务数据接口,基于所述请求业务数据接口获取经过转化后的指令数据,,基于所述指令数据进行数据同步。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种基于MQTT协议消息的数据同步方法,其特征在于,所述方法包括:
步骤1,搭建基于MQTT的ActiveMQ消息中间件平台,在ActiveMQ消息中间件平台为不同目标数据库配置用于存储消息的指定队列;
步骤2,当业务系统有相关业务操作时,将对应的业务操作数据转化成指令数据,往对应指定队列中推送一条包括请求业务数据接口的消息;
步骤3,当目标数据库收到消息后,基于所述消息获取请求业务数据接口,基于所述请求业务数据接口获取经过转化后的指令数据,基于所述指令数据进行数据同步。
2.根据权利要求1所述的基于MQTT协议消息的数据同步方法,其特征在于,步骤2还包括:当业务系统有相关业务操作时,根据不同业务类型将业务操作数据存入Mqsql关系型数据库中,对Mqsql关系型数据库中的业务操作数据进行指令标识。
3.根据权利要求2所述的基于MQTT协议消息的数据同步方法,其特征在于,所述指令标识包括指令码字段,所述指令码字段包括新增、修改和删除指令。
4.根据权利要求1所述的基于MQTT协议消息的数据同步方法,其特征在于,步骤3还包括:当目标数据库收到消息后,新建线程池,并指定线程池维护的最大线程个数,将新开启的多线程任务放入线程池里进行统一管理,通过异步多线程任务分别请求各自的源数据库数据,即所述指令数据,将获取到的指令数据存入目标数据库表TARGET_DATA_TEMP中,并在线程任务结束后销毁所述线程池,避免内存耗尽。
5.根据权利要求1所述的基于MQTT协议消息的数据同步方法,其特征在于,所述方法包括,在目标数据库基于所述指令数据进行数据同步完毕后,调用设备接口将指令数据下发至设备,同时调用业务接口上传本地状态数据至源数据库表进行状态回写。
6.一种基于MQTT协议消息的数据同步系统,其特征在于,所述系统包括:配置单元、消息发送单元以及消息接收单元;
所述配置单元用于搭建基于MQTT的ActiveMQ消息中间件平台,在ActiveMQ消息中间件平台为不同目标数据库配置用于存储消息的指定队列;
所述消息发送单元用于当业务系统有相关业务操作时,将对应的业务操作数据转化成指令数据,往对应指定队列中推送一条包括请求业务数据接口的消息;
所述消息接收单元用于当目标数据库收到消息后,基于所述消息获取请求业务数据接口,基于所述请求业务数据接口获取经过转化后的指令数据,基于所述指令数据进行数据同步。
7.根据权利要求6所述的基于MQTT协议消息的数据同步系统,其特征在于,所述消息发送单元还用于:当业务系统有相关业务操作时,根据不同业务类型将业务操作数据存入Mqsql关系型数据库中,对Mqsql关系型数据库中的业务操作数据进行指令标识。
8.根据权利要求7所述的基于MQTT协议消息的数据同步系统,其特征在于,所述指令标识包括指令码字段,所述指令码字段包括新增、修改和删除指令。
9.根据权利要求6所述的基于MQTT协议消息的数据同步系统,其特征在于,所述消息接收单元还用于:当目标数据库收到消息后,新建线程池,并指定线程池维护的最大线程个数,将新开启的多线程任务放入线程池里进行统一管理,通过异步多线程任务分别请求各自的源数据库数据,即所述指令数据,将获取到的指令数据存入目标数据库表TARGET_DATA_TEMP中,并在线程任务结束后销毁所述线程池,避免内存耗尽。
10.根据权利要求6所述的基于MQTT协议消息的数据同步系统,其特征在于,所述系统还包括状态回写单元,所述状态回写单元用于在目标数据库基于所述指令数据进行数据同步完毕后,调用设备接口将指令数据下发至设备,同时调用业务接口上传本地状态数据至源数据库表进行状态回写。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111160305.5A CN114116791A (zh) | 2021-09-30 | 2021-09-30 | 一种基于mqtt协议消息的数据同步方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111160305.5A CN114116791A (zh) | 2021-09-30 | 2021-09-30 | 一种基于mqtt协议消息的数据同步方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114116791A true CN114116791A (zh) | 2022-03-01 |
Family
ID=80441327
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111160305.5A Pending CN114116791A (zh) | 2021-09-30 | 2021-09-30 | 一种基于mqtt协议消息的数据同步方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114116791A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116016092A (zh) * | 2022-12-13 | 2023-04-25 | 杭州领祺科技有限公司 | 一种基于多线程的mqtt同步消息方法 |
CN117560415A (zh) * | 2024-01-11 | 2024-02-13 | 德阳城市智慧之心信息技术有限公司 | 智慧社区微服务架构mqtt异步和同步通信方法和系统 |
-
2021
- 2021-09-30 CN CN202111160305.5A patent/CN114116791A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116016092A (zh) * | 2022-12-13 | 2023-04-25 | 杭州领祺科技有限公司 | 一种基于多线程的mqtt同步消息方法 |
CN117560415A (zh) * | 2024-01-11 | 2024-02-13 | 德阳城市智慧之心信息技术有限公司 | 智慧社区微服务架构mqtt异步和同步通信方法和系统 |
CN117560415B (zh) * | 2024-01-11 | 2024-03-22 | 德阳城市智慧之心信息技术有限公司 | 智慧社区微服务架构mqtt异步和同步通信方法和系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7366738B2 (en) | Method and system for object cache synchronization | |
CN114116791A (zh) | 一种基于mqtt协议消息的数据同步方法及系统 | |
CN111614729B (zh) | 对kubernetes容器集群的控制方法、装置及电子设备 | |
CN108804238B (zh) | 一种基于远程过程调用的软总线通信方法 | |
CN109766201A (zh) | 任务分发方法、服务器、客户端和系统 | |
CN103944814A (zh) | 一种数据交换方法和系统及一种网关服务器 | |
WO2016082594A1 (zh) | 数据更新处理方法及装置 | |
CN114448719B (zh) | 一种报文交互方法、装置和系统 | |
US8301750B2 (en) | Apparatus, system, and method for facilitating communication between an enterprise information system and a client | |
US9665416B1 (en) | Asynchronous execution of computer operations | |
CN111010429A (zh) | 一种基于物联网平台管理设备运行状态的方法及系统 | |
CN113014618B (zh) | 消息处理方法、系统和电子设备 | |
CN115629909A (zh) | 业务数据处理的方法、装置、电子设备和存储介质 | |
CN116800736A (zh) | 跨云数据处理方法、装置、公有云设备、介质及程序产品 | |
CN115361382A (zh) | 基于数据群组的数据处理方法、装置、设备和存储介质 | |
CN114637599A (zh) | 云资源管理方法、装置、电子设备及可读存储介质 | |
CN114020453A (zh) | 服务总线消息处理方法、服务总线系统、电子设备及介质 | |
CN103118072B (zh) | 一种数据库更新的方法及系统 | |
CN107360588B (zh) | 一种小基站oam的消息处理方法 | |
CN113848834A (zh) | 一种基于边云协同的车间设备接入系统及方法 | |
CN103077231B (zh) | 一种数据库同步的方法及系统 | |
CN112767220A (zh) | 一种应急管理交流方法、系统、存储介质、计算机设备 | |
CN114640569A (zh) | 动态消息管理装置、设备、系统、方法及存储介质 | |
CN114900489A (zh) | 一种消息处理方法、装置、电子设备及存储介质 | |
CN106375414B (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 |