掌桥专利:专业的专利平台
掌桥专利
首页

一种第三方应用数据同步方法、系统及装置

文献发布时间:2024-04-18 19:52:40


一种第三方应用数据同步方法、系统及装置

技术领域

本发明涉及Web平台应用技术领域,具体地说是一种第三方应用数据同步方法、系统及装置。

背景技术

对于Web平台性的系统,往往需要对其他程序进行数据同步,即使是以自己做的系统为平台,在使用第三方的程序时,需要与第三方的程序数据打交道,需要通过调用第三方程序接口来传递数据.如何保证消息的安全、准确并高效的传递时目前面临的问题。

发明内容

本发明的技术任务是针对以上不足之处,提供一种第三方应用数据同步方法、系统及装置,能够提高数据传输效率,提高数据同步过程中的安全性,实现简洁、高效、灵活、安全的统一身份认证机制。

本发明解决其技术问题所采用的技术方案是:

一种第三方应用数据同步方法,Web平台应用接收来自用户从不同终端发起的数据修改请求并通过消息中转服务进行数据同步,然后传输到第三方应用;

其中,所述消息中转服务包括消息队列和同步服务,消息队列中通过搭建RocketMQ分布式消息队列用于接收来自业务系统的数据流,管理不同应用的消息;同步服务中,搭建自有的数据同步服务来监听消息队列中的数据,作为RocketMQ的消费者根据项目业务信息自定义实现,实现监听消息队列中的数据,并实现将监听到的数据通过HTTP协议传输到第三方应用,实现整个链路中的数据传输,而且不会影响原有业务系统中的数据流转和业务操作。

本方法中,Web服务对第三方应用数据同步时,通过引入消息中间件,减少业务系统的复杂度,降低与业务系统的耦合度。实现功能可控,灵活操控,数据安全。

消息队列是在消息的传输过程中保存消息的容器。消息队列的主要目的是提供路由并保证消息的传递,如果发送消息时接收者不可用,消息队列会保留消息,直到可以成功地传递它。消息发送者无需知道消息接收者是谁,使得系统设计更清晰。使用消息队列,第一可以提高系统响应速度,使用消息队列,生产者一方,把消息往消息队列里一扔,就可以立马返回响应用户,无需等待处理结果;第二能够保证消息的传递,如果发送消息时接收者不可用,消息队列会保留消息,直到成功的传递它;第三是解耦,只要信息格式不变,即使接收者的接口、位置、或者配置改变,也不会给发送者带来任何改变。

优选的,所述同步服务中使用Oauth2协议,保障数据同步服务与第三方应用传输过程中的安全性。

优选的,所述Web平台应用,接收来自用户从不同终端发起的数据修改请求,请求信息包含登录用户信息数据,包括登录账号、用户编号、应用编号、时间戳;Web平台应用将自身业务与需同步的数据分两步进行,在自身业务完成并成功存储后再通过消息中转服务进行数据的同步,以保证同步数据的有效性。

进一步的,所述Web平台应用在向消息队列发送消息时,一个应用用一个Topic,消息子类型用tags来标识,tags由应用自由设置;消费方在订阅消息时,利用tags在broker做消息过滤;

每个消息在业务层面的唯一标识码,设置到keys字段,方便将来定位消息丢失问题;

服务器为每个消息创建索引,应用通过topic和key来查询这条消息内容,以及消息被谁消费。

优选的,所述索引为哈希索引。所以务必保证key尽可能唯一,这样可以避免潜在的哈希冲突。

进一步的,对消息发送成功或者发送失败,打印消息日志,打印消息日志时打印send result和key字段;

send消息方法,只要不抛异常,就代表发送成功;但是发送成功会有多个状态,该状态在sendResult里定义。

优选的,所述消息中转服务,消息队列中以Topic来管理不同应用的消息,原有业务系统是业务数据变动的发起者,为RocketMQ的生产者,发送消息时,根据消息类型是否一致、业务是否相关联、消息优先级是否一致、消息量级是否相当,来指定消息的topic+tag;对于消费者而言,在启动后订阅相应的topic+tag,然后可以消费相应的消息,进行流量削锋;其中消费者为数据同步服务。

进一步的,在认证服务中,调用密钥管理服务根据应用编号查询获取指定应用的私钥和盐值,认证服务根据同样的算法计算签名值并与身份认证模块提交的签名值比较,如果签名值一致则认证成功,为客户终端模块生成访问令牌,将验证结果和访问令牌返回给身份认证模块;如果签名值不一致则认证失败,将验证结果返回给身份认证模块;

所述身份认证模块,处理认证服务模块的认证结果,如果认证成功,将相关信息异步存储至HBase、关系数据库及Redis缓存用于后续的查询调用,并将访问令牌返回给客户终端模块,拿到访问令牌后用户即可访问信息系统中受保护的资源。

本方法利用RocketMQ消息队列及开放授权OAuth2标准的统一身份认证方法将业务数据进行传输认证,实现解耦合,数据安全。

本发明还要求保护一种第三方应用数据同步系统,包括Web平台应用模块、消息中转服务模块和第三方应用,

Web平台应用模块接收来自用户从不同终端发起的数据修改请求并通过消息中转服务模块进行数据同步,通过消息中转服务模块传输到第三方应用;

该系统通过上述的第三方应用数据同步方法实现第三方应用数据同步。

本发明还要求保护一种第三方应用数据同步装置,包括:至少一个存储器和至少一个处理器;

所述至少一个存储器,用于存储机器可读程序;

所述至少一个处理器,用于调用所述机器可读程序,实现上述的第三方应用数据同步方法。

本发明的一种第三方应用数据同步方法、系统及装置与现有技术相比,具有以下有益效果:

该方法基于消息中转服务实现业务系统与用户数据同步服务解耦,不影响业务系统业务处理;

使用该方法,数据同步服务灵活,可针对不同平台快速适配;

提高了数据传输效率,有利于项目整体进度。

提高了数据同步过程中的安全性,实现简洁、高效、灵活、安全的统一身份认证机制。

附图说明

图1是本发明实施例提供的第三方应用数据同步方法中数据流程示图;

图2是本发明实施例提供的消息中转服务的数据流程示图。

具体实施方式

下面结合具体实施例对本发明作进一步说明。

一种第三方应用数据同步方法,如图1所示,Web平台应用接收来自用户从不同终端发起的数据修改请求并通过消息中转服务进行数据同步,然后传输到第三方应用;

其中,所述消息中转服务包括消息队列和同步服务,消息队列中通过搭建RocketMQ分布式消息队列用于接收来自业务系统的数据流,管理不同应用的消息;同步服务中,搭建自有的数据同步服务来监听消息队列中的数据,作为RocketMQ的消费者根据项目业务信息自定义实现,实现监听消息队列中的数据,并实现将监听到的数据通过HTTP协议传输到第三方应用,实现整个链路中的数据传输,而且不会影响原有业务系统中的数据流转和业务操作。为保障数据同步服务与第三方应用传输过程中的安全性,所述同步服务中使用Oauth2协议。

消息队列是在消息的传输过程中保存消息的容器。消息队列的主要目的是提供路由并保证消息的传递,如果发送消息时接收者不可用,消息队列会保留消息,直到可以成功地传递它。消息发送者无需知道消息接收者是谁,使得系统设计更清晰。使用消息队列,第一可以提高系统响应速度,使用消息队列,生产者一方,把消息往消息队列里一扔,就可以立马返回响应用户,无需等待处理结果;第二能够保证消息的传递,如果发送消息时接收者不可用,消息队列会保留消息,直到成功的传递它;第三是解耦,只要信息格式不变,即使接收者的接口、位置、或者配置改变,也不会给发送者带来任何改变。

Web服务对第三方应用数据同步时,通过引入消息中间件,减少业务系统的复杂度,降低与业务系统的耦合度。实现功能可控,灵活操控,数据安全。

具体实现方式如下:

所述Web平台应用,接收来自用户从不同终端发起的数据修改请求,请求信息包括登录账号、用户编号、应用编号、时间戳等登录用户信息数据;Web平台应用将自身业务与需同步的数据分两步进行,在自身业务完成并成功存储后再通过消息中转服务进行数据的同步,以保证同步数据的有效性。在向消息队列发送消息时,一个应用尽可能用一个Topic,消息子类型用tags来标识,tags可以由应用自由设置;只有发送消息设置了tags,消费方在订阅消息时,才可以利用tags在broker做消息过滤;

每个消息在业务层面的唯一标识码,要设置到keys字段,方便将来定位消息丢失问题;

服务器为每个消息创建索引,应用通过topic和key来查询这条消息内容,以及消息被谁消费。所述索引为哈希索引,由于是哈希索引,所以务必保证key尽可能唯一,这样可以避免潜在的哈希冲突。

对消息发送成功或者发送失败,打印消息日志,打印消息日志时务必要打印sendresult和key字段;

send消息方法,只要不抛异常,就代表发送成功;但是发送成功会有多个状态,该状态在sendResult里定义。

在消息中转服务的消息队列中,通过搭建分布式消息队列用于接收来自业务系统的数据流,消息队列采用RocketMQ。以Topic来管理不同应用的消息,原有业务系统是业务数据变动的发起者,为RocketMQ的生产者,发送消息时,根据消息类型是否一致、业务是否相关联、消息优先级是否一致、消息量级是否相当,来指定消息的topic+tag;对于消费者而言,在启动后订阅相应的topic+tag,然后可以消费相应的消息,进行流量削锋;其中消费者为数据同步服务。数据流程如图2所示,生产者可以发送多个Topic,消费者可以订阅多个Topic,消费者可以订阅topic+tag,且同一个GID集群内的消费者topic+tag应该一致。

在消息中转服务的同步服务中,搭建自有的数据同步服务集群来监听消息队列中的数据,作为RocketMQ的消费者根据项目业务信息自定义实现。一方面实现监听消息队列中的数据,一方面实现将监听到的数据通过HTTP协议传输到第三方应用,实现整个链路中的数据传输,而且不会影响原有业务系统中的数据流转和业务操作。监听的消息队列为RocketMQ,使用的消息原语是At Least Once,所以consumer可能多次收到同一个消息,此时务必做好幂等。在消费时记录日志,以便后续定位问题。尽量使用批量方式消费方式,可以很大程度上提高消费吞吐量。为保障数据同步服务与第三方应用传输过程中的安全性,数据同步服务中使用了Oauth2协议。

在认证服务中,调用密钥管理服务根据应用编号查询获取指定应用的私钥和盐值,认证服务根据同样的算法计算签名值并与身份认证模块提交的签名值比较,如果签名值一致则认证成功,为客户终端模块生成访问令牌,将验证结果和访问令牌返回给身份认证模块;如果签名值不一致则认证失败,将验证结果返回给身份认证模块;

所述身份认证模块,处理认证服务模块的认证结果,如果认证成功,将相关信息异步存储至HBase、关系数据库及Redis缓存用于后续的查询调用,并将访问令牌返回给客户终端模块,拿到访问令牌后用户即可访问信息系统中受保护的资源。

本方法利用RocketMQ消息队列及开放授权OAuth2标准的统一身份认证方法将业务数据进行传输认证,实现解耦合,数据安全。

本发明实施例还提供一种第三方应用数据同步系统,包括Web平台应用模块、消息中转服务模块和第三方应用,

Web平台应用模块,接收来自用户从不同终端发起的数据修改请求并通过消息中转服务模块进行数据同步,通过消息中转服务模块传输到第三方应用;

该系统通过上述实施例所述的第三方应用数据同步方法实现第三方应用数据同步。

Web平台应用模块接收来自用户从不同终端发起的数据修改请求,请求信息包括登录账号、用户编号、应用编号、时间戳等登录用户信息数据;Web平台应用将自身业务与需同步的数据分两步进行,在自身业务完成并成功存储后再通过消息中转服务进行数据的同步,以保证同步数据的有效性。在向消息队列发送消息时,一个应用尽可能用一个Topic,消息子类型用tags来标识,tags可以由应用自由设置;只有发送消息设置了tags,消费方在订阅消息时,才可以利用tags在broker做消息过滤;

每个消息在业务层面的唯一标识码,要设置到keys字段,方便将来定位消息丢失问题;

服务器为每个消息创建索引,应用通过topic和key来查询这条消息内容,以及消息被谁消费。所述索引为哈希索引,由于是哈希索引,所以务必保证key尽可能唯一,这样可以避免潜在的哈希冲突。

对消息发送成功或者发送失败,打印消息日志,打印消息日志时务必要打印sendresult和key字段;send消息方法,只要不抛异常,就代表发送成功;但是发送成功会有多个状态,该状态在sendResult里定义。

消息中转服务模块包括消息队列和同步服务。

在消息中转服务模块消息队列中,通过搭建分布式消息队列用于接收来自业务系统的数据流,消息队列采用RocketMQ。以Topic来管理不同应用的消息,原有业务系统是业务数据变动的发起者,为RocketMQ的生产者,发送消息时,根据消息类型是否一致、业务是否相关联、消息优先级是否一致、消息量级是否相当,来指定消息的topic+tag,对于消费者而言,在启动后需要订阅相应的topic+tag,然后可以消费相应的消息,进行流量削锋。其中消费者为数据同步服务。

在消息中转服务模块同步服务中,搭建自有的数据同步服务集群来监听消息队列中的数据,作为RocketMQ的消费者根据项目业务信息自定义实现。一方面实现监听消息队列中的数据,一方面实现将监听到的数据通过HTTP协议传输到第三方应用,实现整个链路中的数据传输,而且不会影响原有业务系统中的数据流转和业务操作。监听的消息队列为RocketMQ,使用的消息原语是At Least Once,所以consumer可能多次收到同一个消息,此时务必做好幂等。在消费时记录日志,以便后续定位问题。尽量使用批量方式消费方式,可以很大程度上提高消费吞吐量。为保障数据同步服务与第三方应用传输过程中的安全性,数据同步服务中使用了Oauth2协议。在认证服务中,调用密钥管理服务根据应用编号查询获取指定应用的私钥和盐值,认证服务根据同样的算法计算签名值并与身份认证模块提交的签名值比较,如果签名值一致则认证成功,为客户终端模块生成访问令牌,将验证结果和访问令牌返回给身份认证模块;如果签名值不一致则认证失败,将验证结果返回给身份认证模块。在身份认证模块,处理认证服务模块的认证结果,如果认证成功,将相关信息异步存储至HBase、关系数据库及Redis缓存用于后续的查询调用,并将访问令牌返回给客户终端模块,拿到访问令牌后用户即可访问信息系统中受保护的资源。

本发明实施例还提供了一种第三方应用数据同步装置,包括:至少一个存储器和至少一个处理器;

所述至少一个存储器,用于存储机器可读程序;

所述至少一个处理器,用于调用所述机器可读程序,实现上述的第三方应用数据同步方法。

通过上面具体实施方式,所述技术领域的技术人员可容易的实现本发明。但是应当理解,本发明并不限于上述的具体实施方式。在公开的实施方式的基础上,所述技术领域的技术人员可任意组合不同的技术特征,从而实现不同的技术方案。

除说明书所述的技术特征外,均为本专业技术人员的已知技术。

相关技术
  • 一种基于分布式文件系统的数据同步方法和装置
  • 一种主备电网调度自动化系统操作同步方法、装置和系统
  • 一种数据同步方法及装置
  • 一种数据同步方法、装置、设备及介质
  • 一种数据同步方法及装置
  • 一种基于警务数据库的第三方应用数据同步方法及系统
  • 基于房地产系统的第三方应用数据同步方法
技术分类

06120116333849