CN112800139A - 一种基于消息队列的第三方应用数据同步系统 - Google Patents

一种基于消息队列的第三方应用数据同步系统 Download PDF

Info

Publication number
CN112800139A
CN112800139A CN202110199540.7A CN202110199540A CN112800139A CN 112800139 A CN112800139 A CN 112800139A CN 202110199540 A CN202110199540 A CN 202110199540A CN 112800139 A CN112800139 A CN 112800139A
Authority
CN
China
Prior art keywords
message
service
data
module
message queue
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
Application number
CN202110199540.7A
Other languages
English (en)
Inventor
杜文典
付君伟
段其朴
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Inspur Cloud Information Technology Co Ltd
Original Assignee
Inspur Cloud Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Inspur Cloud Information Technology Co Ltd filed Critical Inspur Cloud Information Technology Co Ltd
Priority to CN202110199540.7A priority Critical patent/CN112800139A/zh
Publication of CN112800139A publication Critical patent/CN112800139A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/275Synchronous replication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明提供一种基于消息队列的第三方应用数据同步系统,属于数据同步技术领域,本发明包括分为三个模块,即Web平台应用模块、消息中转服务模块、第三方应用,Web服务对第三方应用数据同步时,通过引入消息中间件,减少业务系统的复杂度,降低与业务系统的耦合度。实现功能可控,灵活操控,数据安全。

Description

一种基于消息队列的第三方应用数据同步系统
技术领域
本发明涉及数据同步技术领域,尤其涉及一种基于消息队列的第三方应用数据同步系统。
背景技术
对于一个Web平台性的系统来说,往往需要对其他程序进行数据同步,即是以自己做的系统为平台,使用第三方的程序。需要和第三方的程序数据打交道,需要通过调用第三方程序接口来传递数据。这样对于Web平台来说,调用第三方程序接口有些值得注意的地方,尽可能接近实时的同步、不会因为调用的失败或异常而扰乱系统。
消息队列是在消息的传输过程中保存消息的容器。队列的主要目的是提供路由并保证消息的传递,如果发送消息时接收者不可用,消息队列会保留消息,直到可以成功地传递它。消息发送者无需知道消息接收者是谁,使得系统设计更清晰。消息队列的好处有很多,第一提高系统响应速度,使用消息队列,生产者一方,把消息往消息队列里一扔,就可以立马返回响应用户,无需等待处理结果;第二保证消息的传递,如果发送消息时接收者不可用,消息队列会保留消息,直到成功的传递它;第三解耦,只要信息格式不变,即使接收者的接口、位置、或者配置改变,也不会给发送者带来任何改变。
发明内容
为了解决以上技术问题,本发明提供了一种基于消息队列的第三方应用数据同步系统,Web服务对第三方应用数据同步时,通过引入消息中间件,减少业务系统的复杂度,降低与业务系统的耦合度。实现功能可控,灵活操控,数据安全。
本发明的技术方案是:
一种基于消息队列的第三方应用数据同步系统,
分为三个模块,即Web平台应用模块、消息中转服务模块、第三方应用;
其中,
Web平台应用模块接收来自用户从不同终端发起的数据修改请求并通过消息中转服务进行数据同步,
消息中转服务模块分为消息队列和同步服务,消息队列中通过搭建RocketMQ分布式消息队列用于接收来自业务系统的数据流,管理不同应用的消息;同步服务中,搭建自有的数据同步服务来监听消息队列中的数据,作为RocketMQ的消费者根据项目业务信息自定义实现;一方面实现监听消息队列中的数据,一方面实现将监听到的数据通过HTTP协议传输到第三方应用,实现整个链路中的数据传输,而且不会影响原有业务系统中的数据流转和业务操作。
进一步的,
为保障数据同步服务与第三方应用传输过程中的安全性,数据同步服务中使用了Oauth2协议。
进一步的,
Web平台应用模块,接收来自用户从不同终端发起的数据修改请求,请求信息包括登录账号、用户编号、应用编号、时间戳等登录用户信息数据,将自身业务与需同步的数据分两步进行,在自身业务完成并成功存储后再通过消息中转服务进行数据同步,以保证同步数据的有效性。
进一步的,
在向消息队列发送消息时,一个应用使用一个Topic,消息子类型用tags来标识,tags可由应用自由设置;只有发送消息设置了tags,消费方在订阅消息时,才可以利用tags在broker做消息过滤;每个消息在业务层面的唯一标识码,要设置到keys字段,方便将来定位消息丢失问题。
进一步的,
服务器为每个消息创建索引,应用通过topic,key来查询这条消息内容,以及消息被谁消费;保证key唯一,避免潜在的哈希冲突;
消息发送成功或者失败,要打印消息日志,打印send result和key字段;
send消息方法,只要不抛异常,就代表发送成功;发送成功会有一个以上状态,在sendResult里进行定义。
进一步的,
在消息中转服务模块消息队列中,通过搭建分布式消息队列用于接收来自业务系统的数据流,消息队列采用RocketMQ;以Topic来管理不同应用的消息,原有业务系统是业务数据变动的发起者,为RocketMQ的生产者,发送消息时,根据消息类型是否一致、业务是否相关联、消息优先级是否一致、消息量级是否相当,来指定消息的topic+tag,对于消费者而言,在启动后需要订阅相应的topic+tag,然后可以消费相应的消息,进行流量削锋;其中消费者为数据同步服务。
在消息中转服务模块同步服务中,监听的消息队列为RocketMQ,使用的消息原语是At Least Once;在消费时记录日志,以便后续定位问题。
进一步的,
在认证服务中,调用密钥管理服务根据应用编号查询获取指定应用的私钥和盐值,认证服务根据同样的算法计算签名值并与身份认证模块提交的签名值比较,如果签名值一致则认证成功,为客户终端模块生成访问令牌,将验证结果和访问令牌返回给身份认证模块;如果签名值不一致则认证失败,将验证结果返回给身份认证模块。
在身份认证模块,处理认证服务模块的认证结果,如果认证成功,将相关信息异步存储至HBase、关系数据库及Redis缓存用于后续的查询调用,并将访问令牌返回给客户终端模块,拿到访问令牌后用户即可访问信息系统中受保护的资源。
本发明的有益效果是
(1)业务系统与用户数据同步服务解耦,不影响业务系统业务处理;
(2)数据同步服务灵活,可针对不同平台快速适配;
(3)提高了数据传输效率,有利于项目整体进度。
(4)提高了数据同步过程中的安全性,实现简洁、高效、灵活、安全的统一身份认证机制。
附图说明
图1是本发明系统的结构框图;
图2是RocketMQ消息订阅结构图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
对于一个Web平台性的系统来说,往往需要对其他程序进行数据同步,即是以自己做的系统为平台,使用第三方的程序。需要和第三方的程序数据打交道,需要通过调用第三方程序接口来传递数据。这样对于Web平台来说,调用第三方程序接口有些值得注意的地方,尽可能接近实时的同步、不会因为调用的失败或异常而扰乱系统。数据流程主要分为三个模块,Web平台应用模块、消息中转服务模块、第三方应用。其中Web平台应用模块接收来自用户从不同终端发起的数据修改请求并通过消息中转服务进行数据同步,消息中转服务模块分为消息队列和同步服务,消息队列中通过搭建RocketMQ分布式消息队列用于接收来自业务系统的数据流,管理不同应用的消息,同步服务中,搭建自有的数据同步服务来监听消息队列中的数据,作为RocketMQ的消费者根据项目业务信息自定义实现。一方面实现监听消息队列中的数据,一方面实现将监听到的数据通过HTTP协议传输到第三方应用,实现整个链路中的数据传输,而且不会影响原有业务系统中的数据流转和业务操作。为保障数据同步服务与第三方应用传输过程中的安全性,数据同步服务中使用了Oauth2协议。数据流程如图1所示。
Web平台应用模块,接收来自用户从不同终端发起的数据修改请求,请求信息包括登录账号、用户编号、应用编号、时间戳等登录用户信息数据,将自身业务与需同步的数据分两步进行,在自身业务完成并成功存储后再通过消息中转服务进行数据同步,以保证同步数据的有效性。在向消息队列发送消息时,一个应用尽可能用一个Topic,消息子类型用tags来标识,tags可以由应用自由设置。只有发送消息设置了tags,消费方在订阅消息时,才可以利用tags在broker做消息过滤。每个消息在业务层面的唯一标识码,要设置到keys字段,方便将来定位消息丢失问题。服务器会为每个消息创建索引(哈希索引),应用可以通过topic,key来查询这条消息内容,以及消息被谁消费。由于是哈希索引,请务必保证key尽可能唯一,这样可以避免潜在的哈希冲突。消息发送成功或者失败,要打印消息日志,务必要打印send result和key字段。send消息方法,只要不抛异常,就代表发送成功。但是发送成功会有多个状态,在sendResult里定义。
在消息中转服务模块消息队列中,通过搭建分布式消息队列用于接收来自业务系统的数据流,消息队列采用RocketMQ。以Topic来管理不同应用的消息,原有业务系统是业务数据变动的发起者,为RocketMQ的生产者,发送消息时,根据消息类型是否一致、业务是否相关联、消息优先级是否一致、消息量级是否相当,来指定消息的topic+tag,对于消费者而言,在启动后需要订阅相应的topic+tag,然后可以消费相应的消息,进行流量削锋。其中消费者为数据同步服务。数据流程如图2所示:
在消息中转服务模块同步服务中,搭建自有的数据同步服务集群来监听消息队列中的数据,作为RocketMQ的消费者根据项目业务信息自定义实现。一方面实现监听消息队列中的数据,一方面实现将监听到的数据通过HTTP协议传输到第三方应用,实现整个链路中的数据传输,而且不会影响原有业务系统中的数据流转和业务操作。监听的消息队列为RocketMQ,使用的消息原语是At Least Once,所以consumer可能多次收到同一个消息,此时务必做好幂等。在消费时记录日志,以便后续定位问题。尽量使用批量方式消费方式,可以很大程度上提高消费吞吐量。为保障数据同步服务与第三方应用传输过程中的安全性,数据同步服务中使用了Oauth2协议。在认证服务中,调用密钥管理服务根据应用编号查询获取指定应用的私钥和盐值,认证服务根据同样的算法计算签名值并与身份认证模块提交的签名值比较,如果签名值一致则认证成功,为客户终端模块生成访问令牌,将验证结果和访问令牌返回给身份认证模块;如果签名值不一致则认证失败,将验证结果返回给身份认证模块。在身份认证模块,处理认证服务模块的认证结果,如果认证成功,将相关信息异步存储至HBase、关系数据库及Redis缓存用于后续的查询调用,并将访问令牌返回给客户终端模块,拿到访问令牌后用户即可访问信息系统中受保护的资源。
以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

Claims (9)

1.一种基于消息队列的第三方应用数据同步系统,其特征在于,
分为三个模块,即Web平台应用模块、消息中转服务模块、第三方应用;
其中,
Web平台应用模块接收来自用户从不同终端发起的数据修改请求并通过消息中转服务进行数据同步,
消息中转服务模块分为消息队列和同步服务,消息队列中通过搭建RocketMQ分布式消息队列用于接收来自业务系统的数据流,管理不同应用的消息;同步服务中,搭建自有的数据同步服务来监听消息队列中的数据,作为RocketMQ的消费者根据项目业务信息自定义实现;一方面实现监听消息队列中的数据,一方面实现将监听到的数据通过HTTP协议传输到第三方应用,实现整个链路中的数据传输,而且不会影响原有业务系统中的数据流转和业务操作。
2.根据权利要求1所述的系统,其特征在于,
为保障数据同步服务与第三方应用传输过程中的安全性,数据同步服务中使用了Oauth2协议。
3.根据权利要求1所述的系统,其特征在于,
Web平台应用模块,接收来自用户从不同终端发起的数据修改请求,请求信息包括登录用户信息数据,将自身业务与需同步的数据分两步进行,在自身业务完成并成功存储后再通过消息中转服务进行数据同步,以保证同步数据的有效性。
4.根据权利要求1所述的系统,其特征在于,
在向消息队列发送消息时,一个应用使用一个Topic,消息子类型用tags来标识,tags可由应用自由设置;只有发送消息设置了tags,消费方在订阅消息时,才可以利用tags在broker做消息过滤;每个消息在业务层面的唯一标识码,要设置到keys字段,方便将来定位消息丢失问题。
5.根据权利要求4所述的系统,其特征在于,
服务器为每个消息创建索引,应用通过topic,key来查询这条消息内容,以及消息被谁消费;保证key唯一,避免潜在的哈希冲突;
消息发送成功或者失败,要打印消息日志,打印send result和key字段;
send消息方法,只要不抛异常,就代表发送成功;发送成功会有一个以上状态,在sendResult里进行定义。
6.根据权利要求1所述的系统,其特征在于,
在消息中转服务模块消息队列中,通过搭建分布式消息队列用于接收来自业务系统的数据流,消息队列采用RocketMQ;以Topic来管理不同应用的消息,原有业务系统是业务数据变动的发起者,为RocketMQ的生产者,发送消息时,根据消息类型是否一致、业务是否相关联、消息优先级是否一致、消息量级是否相当,来指定消息的topic+tag,对于消费者而言,在启动后需要订阅相应的topic+tag,然后可以消费相应的消息,进行流量削锋;其中消费者为数据同步服务。
7.根据权利要求1所述的系统,其特征在于,
在消息中转服务模块同步服务中,监听的消息队列为RocketMQ,使用的消息原语是AtLeast Once;在消费时记录日志,以便后续定位问题。
8.根据权利要求1所述的系统,其特征在于,
在认证服务中,调用密钥管理服务根据应用编号查询获取指定应用的私钥和盐值,认证服务根据同样的算法计算签名值并与身份认证模块提交的签名值比较,如果签名值一致则认证成功,为客户终端模块生成访问令牌,将验证结果和访问令牌返回给身份认证模块;如果签名值不一致则认证失败,将验证结果返回给身份认证模块。
9.根据权利要求8所述的系统,其特征在于,
在身份认证模块,处理认证服务模块的认证结果,如果认证成功,将相关信息异步存储至HBase、关系数据库及Redis缓存用于后续的查询调用,并将访问令牌返回给客户终端模块,拿到访问令牌后用户即可访问信息系统中受保护的资源。
CN202110199540.7A 2021-02-23 2021-02-23 一种基于消息队列的第三方应用数据同步系统 Pending CN112800139A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110199540.7A CN112800139A (zh) 2021-02-23 2021-02-23 一种基于消息队列的第三方应用数据同步系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110199540.7A CN112800139A (zh) 2021-02-23 2021-02-23 一种基于消息队列的第三方应用数据同步系统

Publications (1)

Publication Number Publication Date
CN112800139A true CN112800139A (zh) 2021-05-14

Family

ID=75815375

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110199540.7A Pending CN112800139A (zh) 2021-02-23 2021-02-23 一种基于消息队列的第三方应用数据同步系统

Country Status (1)

Country Link
CN (1) CN112800139A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113709164A (zh) * 2021-08-31 2021-11-26 浪潮软件科技有限公司 一种基于消息队列的退役军人身份认证方法及系统
CN115037758A (zh) * 2022-04-27 2022-09-09 浪潮通信技术有限公司 消息同步方法及服务器
CN115225594A (zh) * 2022-06-15 2022-10-21 深圳市优必选科技股份有限公司 一种对话管理系统及服务端
CN115412208A (zh) * 2022-08-09 2022-11-29 唯阜德(武汉)科技有限公司 一种用于消息队列管理系统的消息传送方法及系统

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105809356A (zh) * 2016-03-14 2016-07-27 浪潮软件股份有限公司 一种基于应用集成云平台的信息系统资源管理方法
WO2017028804A1 (zh) * 2015-08-19 2017-02-23 中兴通讯股份有限公司 一种Web实时通信平台鉴权接入方法及装置
CN110209740A (zh) * 2019-06-05 2019-09-06 浪潮软件股份有限公司 一种基于RocketMq消息中间件并行同步数据的方法
CN110868301A (zh) * 2019-11-07 2020-03-06 浪潮软件股份有限公司 一种基于国密算法的身份认证系统及方法
CN111666145A (zh) * 2020-06-24 2020-09-15 深圳壹账通智能科技有限公司 消息队列的消息处理方法、系统和计算机设备
CN111752795A (zh) * 2020-06-18 2020-10-09 多加网络科技(北京)有限公司 一种全流程监控报警平台及其方法
CN111930529A (zh) * 2020-10-09 2020-11-13 上海富友支付服务股份有限公司 基于消息队列及微服务的数据同步方法、模块及系统
CN112039945A (zh) * 2020-07-28 2020-12-04 智维云图(上海)智能科技有限公司 一种基于消防物联网平台的第三方应用对接方法及系统

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017028804A1 (zh) * 2015-08-19 2017-02-23 中兴通讯股份有限公司 一种Web实时通信平台鉴权接入方法及装置
CN105809356A (zh) * 2016-03-14 2016-07-27 浪潮软件股份有限公司 一种基于应用集成云平台的信息系统资源管理方法
CN110209740A (zh) * 2019-06-05 2019-09-06 浪潮软件股份有限公司 一种基于RocketMq消息中间件并行同步数据的方法
CN110868301A (zh) * 2019-11-07 2020-03-06 浪潮软件股份有限公司 一种基于国密算法的身份认证系统及方法
CN111752795A (zh) * 2020-06-18 2020-10-09 多加网络科技(北京)有限公司 一种全流程监控报警平台及其方法
CN111666145A (zh) * 2020-06-24 2020-09-15 深圳壹账通智能科技有限公司 消息队列的消息处理方法、系统和计算机设备
CN112039945A (zh) * 2020-07-28 2020-12-04 智维云图(上海)智能科技有限公司 一种基于消防物联网平台的第三方应用对接方法及系统
CN111930529A (zh) * 2020-10-09 2020-11-13 上海富友支付服务股份有限公司 基于消息队列及微服务的数据同步方法、模块及系统

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
WEIXIN_33686714: "RocketMQ基本概念及原理介绍-适合初学者", 《CSDN》 *
YE17186: "RocketMQ中Topic、Tag如何正确使用", 《CSDN》 *
天际星痕: "rocketmq知识点", 《博客园》 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113709164A (zh) * 2021-08-31 2021-11-26 浪潮软件科技有限公司 一种基于消息队列的退役军人身份认证方法及系统
CN115037758A (zh) * 2022-04-27 2022-09-09 浪潮通信技术有限公司 消息同步方法及服务器
CN115225594A (zh) * 2022-06-15 2022-10-21 深圳市优必选科技股份有限公司 一种对话管理系统及服务端
CN115225594B (zh) * 2022-06-15 2023-09-22 深圳市优必选科技股份有限公司 一种对话管理系统及服务端
CN115412208A (zh) * 2022-08-09 2022-11-29 唯阜德(武汉)科技有限公司 一种用于消息队列管理系统的消息传送方法及系统

Similar Documents

Publication Publication Date Title
CN112800139A (zh) 一种基于消息队列的第三方应用数据同步系统
US11290555B2 (en) Push notification delivery system
EP3734913A1 (en) Communication method and communication apparatus
US9342684B2 (en) Flexible real-time inbox access
CN111371892A (zh) 高并发分布式消息推送系统及方法
CN111510474B (zh) 基于消息中间件的数据传输方法及相关设备
CN1142659C (zh) 一种计算机网络中的共享数据传递方法
JP2020500345A (ja) 時間的に正確なイベントストリームの作成のためのシステム及び方法
CN109361753A (zh) 一种物联网系统架构与加密方法
US20070143481A1 (en) Method and apparatus for communicating data between computer devices
CN111277483B (zh) 一种多端消息的同步方法、服务器及可存储介质
CN108063813A (zh) 一种集群环境下密码服务网络并行化的方法与系统
Donta et al. Towards intelligent data protocols for the edge
CN111741014B (zh) 消息发送方法、装置、服务器及存储介质
US8060568B2 (en) Real time messaging framework hub to intercept and retransmit messages for a messaging facility
CN112787906A (zh) 一种基于云桌面平台的消息推送系统
CN116185660A (zh) 一种第三方应用数据同步方法、系统及装置
US7124435B1 (en) Information management system and method
CN117811833B (zh) 一种基于发布订阅模式的网络密码机统一管理系统及方法
CN116980474B (zh) 一种数据推送系统的日志数据订阅管理方法
CN109246631A (zh) 一种短信发送的方法
WO2020180204A1 (ru) Система и способ передачи запросов пользователям
CN115618429B (zh) 一种基于平行区块链的产品全生命周期管理系统
CN116708347A (zh) 一种基于邮件协议在iot网络中实现文件分发的方法
CN114650172A (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: 20210514

RJ01 Rejection of invention patent application after publication