CN107911462A - 基于ActiveMQ的大批量数据同步方法 - Google Patents
基于ActiveMQ的大批量数据同步方法 Download PDFInfo
- Publication number
- CN107911462A CN107911462A CN201711202922.0A CN201711202922A CN107911462A CN 107911462 A CN107911462 A CN 107911462A CN 201711202922 A CN201711202922 A CN 201711202922A CN 107911462 A CN107911462 A CN 107911462A
- Authority
- CN
- China
- Prior art keywords
- message
- data
- server
- activemq
- local
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
Abstract
本发明公开了一种基于ActiveMQ的大批量数据同步方法,包含以下步骤:通过NetworkConnector配置ActiveMQ服务端与服务端之间的通信,把大量的消息生产者和消息的消费者客户端以及被NetworkConnector连接的多个互相透传消息的服务器整合;生产者客户端读取本地数据,发送给本地MQ服务器S1,本地MQ消息服务器通过NetworkConnector透传消息至消费平台MQ服务器SP1,将队列数据通过配置策略交由各自连接的消费者处理,完成数据同步;同步过程中,如果出现数据错误或者同步失败的情况,将错误消息通过双向MQ服务器发回省侧,省侧监听错误或失败数据进行再次发送或者数据修复。本发明解决了多个消息供应商高并发调用为服务同步数据时对为服务造成过大压力,影响其他微服务的正常运转的问题。
Description
技术领域
本发明涉及一种数据同步方法,特别是一种基于ActiveMQ的大批量数据同步方法。
背景技术
目前企业间或者企业内部的数据通信及同步,主要通过接口进行实施同步。而面对一些可能存在的流量过大,并发暴增的场景,往往会导致应用或者微服务挂掉。为了解决这个问题,一般都需要加入消息队列。故而面对多个消息提供商,在进行统一访问调用接口的时候,需要控制某些请求数暴增的情况,并且要在不影响请求方正常业务的情况下,完成对请求消息的异步处理。
传统的进程通信模式如图2所示:client调用service,等待service的响应。但是这种模式有很多弊端:
1)网络情况不好时,client到Service的调用可能会丢失;
2)或者service如果处理时间较长,那么client需要一直hold,甚至调用超时而失败;
3)或者service的些许改动会带来client的代码修改等等。
发明内容
本发明所要解决的技术问题是提供一种基于ActiveMQ的大批量数据同步方法,解决多个消息供应商高并发调用为服务同步数据时对为服务造成过大压力,影响其他微服务的正常运转的问题。
为解决上述技术问题,本发明所采用的技术方案是:
一种基于ActiveMQ的大批量数据同步方法,其特征在于包含以下步骤:
步骤一:通过NetworkConnector配置ActiveMQ服务端与服务端之间的通信,把大量的消息生产者和消息的消费者客户端以及被NetworkConnector连接的多个互相透传消息的服务器整合;
步骤二:生产者客户端读取本地数据,发送给本地MQ服务器S1,本地MQ消息服务器通过NetworkConnector透传消息至消费平台MQ服务器SP1,将队列数据通过配置策略交由各自连接的消费者处理,完成数据同步;
步骤三:同步过程中,如果出现数据错误或者同步失败的情况,将错误消息通过双向MQ服务器发回省侧,省侧监听错误或失败数据进行再次发送或者数据修复。
进一步地,所述步骤一具体为,
服务器S1和S2通过NewworkConnector相连,生产者P1发送消息,消费者C3和C4都可以接收到,生产者P3发送的消息,消费者C1和C2也可以接收到,要使用NewworkConnector的功能,在服务器S1的activemq.xml中的broker节点下添加配置:
MQ服务器在自己的网络中发现其他的MQ服务器并自动建立桥接,在每台MQ服务器的activemq.xml中的broker节点下添加如下配置:
在网络中的MQ服务器,在启动和运行中,不断的发现其他新的MQ服务器,并和他们创建连接。
进一步地,如果新的MQ服务器中没有配置networkConnectors,那么这种连接就是单向的。
进一步地,所述步骤二具体为,
2.1各个省份校讯通作为消息生产者,按照统一的数据标准将本地数据发送到本地消息队列服务器S1,S2,S3……;
2.2各省份本地消息队列服务通过配置NewworkConnector连接到平台侧消息队列服务器SP1,SP2,SP3……,接收省侧MQ服务器数据;
2.3平台侧通过监听本地MQ服务,将队列中的数据解析入库,完成同步。
本发明与现有技术相比,具有以下优点和效果:本发明在生产者—消费者模型的基础之上,为了适应多省份的同类数据同步需求,将原来的多省份统一调用平台进行改造。使得原来通过网络传输的消息数据,改为消息队列之间的消息传输,一方面使得数据传输更为安全,另一方面,生产者无需关心消息是向哪里发送,消费者也不用再关注消息是从哪里同步过来,避免了同一接口对多省份的接口联调,节省大量的人力以及开发时间。
附图说明
图1是本发明的基于ActiveMQ的大批量数据同步方法的使用场景示意图。
图2是本发明的传统进程通信模式示意图。
图3是本发明的基于ActiveMQ的大批量数据同步方法的进程通信模式示意图。
具体实施方式
下面结合附图并通过实施例对本发明作进一步的详细说明,以下实施例是对本发明的解释而本发明并不局限于以下实施例。
如图1所示,一种基于ActiveMQ的大批量数据同步方法,包含以下步骤:
步骤一:通过NetworkConnector配置ActiveMQ服务端与服务端之间的通信,把大量的消息生产者和消息的消费者客户端以及被NetworkConnector连接的多个互相透传消息的服务器整合;
如图1所示,服务器S1和S2通过NewworkConnector相连,则生产者P1发送消息,消费者C3和C4都可以接收到,而生产者P3发送的消息,消费者C1和C2同样也可以接收到,要使用NewworkConnector的功能,需要在服务器S1的activemq.xml中的broker节点下添加如下配置(注:10.79.11.172:61617为S2的地址):
如果MQ服务器非常多,我们就不太可能在每个MQ服务器的xml文件中去一个个配置其它服务器地址了,所以,我们希望MQ服务器能在自己的网络中发现其他的MQ服务器并自动建立“桥接”,幸运的是,ActiveMQ提供了多播发现(Multicast Discovery)的功能,我们可以在每台MQ服务器的activemq.xml中的broker节点下添加如下配置:
这样,这些在网络中的MQ服务器,在启动和运行中,将不断的发现其他新的MQ服务器了,并和他们创建连接,注意,如果新的MQ服务器中没有配置networkConnectors,那么这种连接就是单向的,而不是双向。
步骤二:生产者客户端读取本地数据,发送给本地MQ服务器S1,本地MQ消息服务器通过NetworkConnector透传消息至消费平台MQ服务器SP1,将队列数据通过配置策略交由各自连接的消费者处理,完成数据同步;
建立好MQ服务之间的通信之后,各个省份将消息发送给相应的MQ服务器,而平台侧MQ服务器集群统一接收后,分发给多个消费者进行解析同步。具体过程为:
2.1各个省份校讯通作为消息生产者,按照统一的数据标准将本地数据发送到本地消息队列服务器S1,S2,S3……;
2.2各省份本地消息队列服务通过配置NewworkConnector连接到平台侧消息队列服务器SP1,SP2,SP3……,接收省侧MQ服务器数据;
2.3平台侧通过监听本地MQ服务,将队列中的数据解析入库,完成同步。
步骤三:同步过程中,如果出现数据错误或者同步失败的情况,将错误消息通过双向MQ服务器发回省侧,省侧监听错误或失败数据进行再次发送或者数据修复。
如图3所示,本发明的基于ActiveMQ的大批量数据同步方法引入消息队列,可以避免这种传统模式的弊端。
消息队列可以带来如下好处:
1)保证消息的传递。
如果发送消息时接收者不可用,消息队列会保留消息,直到成功地传递它;
2)提供异步的通信协议。
消息的发送者将消息发送到消息队列后可以立即返回,不用等待接收者的响应,消息会被保存在队列中,直到接收者取出它;
3)解耦,降低两个进程间的耦合度。
只要消息格式不变,即使接收者的接口、位置、或者配置改变,也不会给发送者带来任何改变;而且,消息发送者无需知道消息接收者是谁,使得系统设计更清晰;
相反的,例如,远程过程调用(RPC)或者服务间通过socket建立连接,如果对方接口改变了或者对方ip、端口改变了,那么另一方需要改写代码或者改写配置;
4)提供路由。
发送者无需与接收者建立连接,双方通过消息队列保证消息能够从发送者路由到接收者,甚至对于本来相互网络不通的两个服务,也可以提供消息路由。
本发明用消息队列服务取代微服务调用,避免多个消息供应商高并发调用为服务同步数据时对为服务造成过大压力,影响其他微服务的正常运转,以及通过异步方式将多平台之间消息交互解耦,从而更减少平台间联调及开发工作量。
本说明书中所描述的以上内容仅仅是对本发明所作的举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种修改或补充或采用类似的方式替代,只要不偏离本发明说明书的内容或者超越本权利要求书所定义的范围,均应属于本发明的保护范围。
Claims (4)
1.一种基于ActiveMQ的大批量数据同步方法,其特征在于包含以下步骤:
步骤一:通过NetworkConnector配置ActiveMQ服务端与服务端之间的通信,把大量的消息生产者和消息的消费者客户端以及被NetworkConnector连接的多个互相透传消息的服务器整合;
步骤二:生产者客户端读取本地数据,发送给本地MQ服务器S1,本地MQ消息服务器通过NetworkConnector透传消息至消费平台MQ服务器SP1,将队列数据通过配置策略交由各自连接的消费者处理,完成数据同步;
步骤三:同步过程中,如果出现数据错误或者同步失败的情况,将错误消息通过双向MQ服务器发回省侧,省侧监听错误或失败数据进行再次发送或者数据修复。
2.按照权利要求1所述的基于ActiveMQ的大批量数据同步方法,其特征在于:所述步骤一具体为,
服务器S1和S2通过NewworkConnector相连,生产者P1发送消息,消费者C3和C4都可以接收到,生产者P3发送的消息,消费者C1和C2也可以接收到,要使用NewworkConnector的功能,在服务器S1的activemq.xml中的broker节点下添加配置:
MQ服务器在自己的网络中发现其他的MQ服务器并自动建立桥接,在每台MQ服务器的activemq.xml中的broker节点下添加如下配置:
在网络中的MQ服务器,在启动和运行中,不断的发现其他新的MQ服务器,并和他们创建连接。
3.按照权利要求2所述的基于ActiveMQ的大批量数据同步方法,其特征在于:如果新的MQ服务器中没有配置networkConnectors,那么这种连接就是单向的。
4.按照权利要求1所述的基于ActiveMQ的大批量数据同步方法,其特征在于:所述步骤二具体为,
2.1各个省份校讯通作为消息生产者,按照统一的数据标准将本地数据发送到本地消息队列服务器S1,S2,S3……;
2.2各省份本地消息队列服务通过配置NewworkConnector连接到平台侧消息队列服务器SP1,SP2,SP3……,接收省侧MQ服务器数据;
2.3平台侧通过监听本地MQ服务,将队列中的数据解析入库,完成同步。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711202922.0A CN107911462A (zh) | 2017-11-27 | 2017-11-27 | 基于ActiveMQ的大批量数据同步方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711202922.0A CN107911462A (zh) | 2017-11-27 | 2017-11-27 | 基于ActiveMQ的大批量数据同步方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107911462A true CN107911462A (zh) | 2018-04-13 |
Family
ID=61848569
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711202922.0A Pending CN107911462A (zh) | 2017-11-27 | 2017-11-27 | 基于ActiveMQ的大批量数据同步方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107911462A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109361770A (zh) * | 2018-12-11 | 2019-02-19 | 苏州创旅天下信息技术有限公司 | 基于WebSocket和消息队列实现双向实时通信的系统及方法 |
CN111930529A (zh) * | 2020-10-09 | 2020-11-13 | 上海富友支付服务股份有限公司 | 基于消息队列及微服务的数据同步方法、模块及系统 |
CN112422539A (zh) * | 2020-11-08 | 2021-02-26 | 国家电网有限公司 | 基于消息队列的策略同步下发方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6889244B1 (en) * | 2000-10-31 | 2005-05-03 | Hewlett-Packard Development Company, L.P. | Method and apparatus for passing messages using a fault tolerant storage system |
CN105282245A (zh) * | 2015-09-29 | 2016-01-27 | 努比亚技术有限公司 | 跨服务器消息推送系统及方法 |
CN106909473A (zh) * | 2015-12-23 | 2017-06-30 | 阿里巴巴集团控股有限公司 | 一种节点重启后的数据处理方法及设备 |
CN107038162A (zh) * | 2016-02-03 | 2017-08-11 | 滴滴(中国)科技有限公司 | 基于数据库日志的实时数据查询方法和系统 |
CN107092533A (zh) * | 2017-03-29 | 2017-08-25 | 弘成科技发展有限公司 | 基于ActiveMQ+Redis的同步消息队列 |
CN107180116A (zh) * | 2017-06-28 | 2017-09-19 | 努比亚技术有限公司 | 一种数据同步处理方法、移动终端以及计算机可读存储介质 |
-
2017
- 2017-11-27 CN CN201711202922.0A patent/CN107911462A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6889244B1 (en) * | 2000-10-31 | 2005-05-03 | Hewlett-Packard Development Company, L.P. | Method and apparatus for passing messages using a fault tolerant storage system |
CN105282245A (zh) * | 2015-09-29 | 2016-01-27 | 努比亚技术有限公司 | 跨服务器消息推送系统及方法 |
CN106909473A (zh) * | 2015-12-23 | 2017-06-30 | 阿里巴巴集团控股有限公司 | 一种节点重启后的数据处理方法及设备 |
CN107038162A (zh) * | 2016-02-03 | 2017-08-11 | 滴滴(中国)科技有限公司 | 基于数据库日志的实时数据查询方法和系统 |
CN107092533A (zh) * | 2017-03-29 | 2017-08-25 | 弘成科技发展有限公司 | 基于ActiveMQ+Redis的同步消息队列 |
CN107180116A (zh) * | 2017-06-28 | 2017-09-19 | 努比亚技术有限公司 | 一种数据同步处理方法、移动终端以及计算机可读存储介质 |
Non-Patent Citations (1)
Title |
---|
MANZHIZHEN: "ActiveMQ中的NetworkConnector(网络连接器)详解", 《WWW.IT610.COM/ARTICLE/2282341.HTM》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109361770A (zh) * | 2018-12-11 | 2019-02-19 | 苏州创旅天下信息技术有限公司 | 基于WebSocket和消息队列实现双向实时通信的系统及方法 |
CN111930529A (zh) * | 2020-10-09 | 2020-11-13 | 上海富友支付服务股份有限公司 | 基于消息队列及微服务的数据同步方法、模块及系统 |
CN112422539A (zh) * | 2020-11-08 | 2021-02-26 | 国家电网有限公司 | 基于消息队列的策略同步下发方法 |
CN112422539B (zh) * | 2020-11-08 | 2023-01-24 | 国家电网有限公司 | 基于消息队列的策略同步下发方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102064954B (zh) | 一种分布式容错系统、设备和方法 | |
Schmidt | A family of design patterns for applications-level gateways | |
CN101184056A (zh) | 一种分布式企业服务总线消息交换方法 | |
CN107528891B (zh) | 一种基于WebSocket的自动集群方法及其系统 | |
EP1584172A1 (en) | Message transfer using multiplexed connections in an osi-tp environment | |
CN102006245B (zh) | 一种数据交换和共享平台 | |
CN107911462A (zh) | 基于ActiveMQ的大批量数据同步方法 | |
CN101834765B (zh) | 一种远程文件传输的系统及方法 | |
CN107682460A (zh) | 一种分布式存储集群数据通信方法及系统 | |
CN107071067B (zh) | 一种基于Cgo的高性能证券行情接入系统和方法 | |
CN116319732A (zh) | 一种基于RabbitMQ的消息队列集中配置管理系统及方法 | |
CN101339520B (zh) | 一种将ejb接入企业服务总线的方法 | |
JP2005531856A (ja) | ウインドウズ管理計測同期レポジトリプロバイダ | |
CN103379130A (zh) | 一种基于应用层数据的网络接入系统和方法 | |
CN116192863B (zh) | 微服务流量处理方法、dpu服务网格部署方法及系统 | |
JP4975170B2 (ja) | トランスレーション・エージェント・サーバ | |
CN106302148B (zh) | 基于lbm的备份数据传输方法和系统 | |
US9092779B2 (en) | Heuristics processing | |
CN111866157A (zh) | 云服务网关及云服务内外请求格式转换方法 | |
CN109254853A (zh) | 数据共享方法、数据共享系统及计算机可读存储介质 | |
CN108965624A (zh) | 一种用于VoIP话音通信系统的冗余架构及方法 | |
EP2252032B1 (en) | Message adaptation system for system integration | |
KR20020033219A (ko) | 연결지향 소켓 인터페이스 구현방법 | |
CN106210432B (zh) | 软件传真接收系统及方法 | |
CN114978743A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180413 |
|
RJ01 | Rejection of invention patent application after publication |