一种业务数据的同步分发存储方法及系统技术方案

技术编号:27935526 阅读:19 留言:0更新日期:2021-04-02 14:15
本发明专利技术公开了一种业务数据的同步分发存储方法及系统,方法包括:生产者携带验证发送数据Schema到消息中间件进行兼容性验证与连接建立;消息中间件对生产者发送的数据进行分布式存储,并通知生产者数据发送成功;消费者通过验证接收数据Schema与消息中间件建立连接,并设置消费游标;消息中间件根据订阅目标主题的消费者的消费游标,从本地队列或分布式存储中拉取数据,并将拉取的数据推送给所有订阅所述目标主题的消费者。本发明专利技术能够有效的解决异常情况导致的数据不一致的问题,全量、回溯同步数据复杂度高的问题,生产者与消费者耦合度高的问题,以及尽量减少生产者、消费者的重复工作量。

【技术实现步骤摘要】
一种业务数据的同步分发存储方法及系统
本专利技术涉及数据处理
,尤其涉及一种业务数据的同步分发存储方法及系统。
技术介绍
数据同步是一种业界比较常见的场景,当前主要的处理方法有:通过消息中间件同步和通过HTTP(HyperTextTransferProtocol,超文本传输协议)API(ApplicationProgrammingInterface,应用程序接口)通知+HTTPAPI/DB(Database,数据库)同步。其中,通过消息中间件同步是指,生产者通过消息中间件发送数据ID,消费者拿到数据ID后,再调用生产者的API或者访问生产者的数据库获取真实的数据。新消费者与回溯消费场景下,需要生产者提供全量方式:重新全量生产或提供离线DB给消费者。同一个主题下的消息是没有Scheme约束的,生产者可以在一个主题中发送多种数据格式的数据。通过HTTPAPI通知+HTTPAPI/DB同步是指,生产者直接通过HTTP的方式通知消费者数据ID,消费者根据数据ID,再调用生产者的API或者访问生产者的数据库获取真实的数据。新消费者与回溯消费场景下,需要生产者提供全量方式:重新全量生产或提供离线DB给消费者。生产者与消费者之间直连同步的方式,可能会带来性能问题。以上两种方式,主要会有以下问题:1、数据不一致,拿到数据ID后,由于多机房、并发、执行能力、软硬件异常等问题,都会导致数据脏读、覆盖等情况出现。2、全量、回溯历史数据进行重新消费时,需要生产者、消费者重度参与。3、工作量重复,为了解决上面的问题,生产者与消费者会浪费大量时间进行重复工作(数据补偿、重试、分布式事务、分布式锁、主从同步问题、并发问题)。4、生产者与消费者很容易产生耦合。5、当前业界主流消息中间件(Kafka、RabbitMQ、ActiveMQ、RocketMQ)的数据存储在Broker中的,导致Broker是有状态的,扩展性很差,故障应对能力差,且无法永久存储消息数据。因此,需要解决异常情况导致的数据不一致的问题,全量、回溯同步数据复杂度高的问题,生产者与消费者耦合度高的问题,以及如何尽量减少生产者、消费者的重复工作量。
技术实现思路
有鉴于此,本专利技术提供了一种业务数据的同步分发存储方法,能够有效的解决异常情况导致的数据不一致的问题,全量、回溯同步数据复杂度高的问题,生产者与消费者耦合度高的问题,以及尽量减少生产者、消费者的重复工作量。本专利技术提供了一种业务数据的同步分发存储方法,包括:生产者携带验证发送数据Schema到消息中间件进行兼容性验证与连接建立;在所述生产者与所述消息中间件建立连接后,所述消息中间件对所述生产者发送的数据进行分布式存储,并通知生产者数据发送成功;消费者通过验证接收数据Schema与所述消息中间件建立连接,并设置消费游标;所述消息中间件根据订阅所述目标主题的消费者的消费游标,从本地队列或分布式存储中拉取数据,并将拉取的数据推送给所有订阅所述目标主题的消费者。优选地,所述生产者携带验证发送数据Schema到消息中间件进行兼容性验证与连接建立,包括:生产者从注册中心获取消息中间件地址;基于所述注册中心返回的目标主题所在地址,携带验证发送数据Schema到消息中间件进行兼容性验证;验证成功后,生产者与所述消息中间件建立连接。优选地,所述在所述生产者与所述消息中间件建立连接后,所述消息中间件对所述生产者发送的数据进行分布式存储,并通知生产者数据发送成功,包括:在所述生产者与所述消息中间件建立连接后,所述消息中间件接收所述生产者发送的数据;所述消息中间件将接收到的数据同时写入分布式文件存储系统的N个存储节点;所述消息中间件将存储成功的数据写入所述消息中间件的本地队列;所述消息中间件向所述生产者发送数据发送成功的通知。优选地,所述消费者通过验证接收数据Schema与所述消息中间件建立连接,并设置消费游标,包括:所述消费者从所述注册中心获取消息中间件地址;基于所述注册中心返回的目标主题所在地址,携带验证接收数据Schema到所述消息中间件进行验证;验证成功后,设置消费游标,并建立与所述消息中间件的连接。优选地,所述消息中间件根据订阅所述目标主题的消费者的消费游标,从本地队列或分布式存储中拉取数据,包括:当所述消费游标指定值在本地队列时,所述消息中间件从本地队列中拉取数据;当所述消费游标指定值未在本地队列时,所述消息中间件从分布式存储中拉取数据。一种业务数据的同步分发存储系统,包括:生产者、消息中间件和消费者;其中:所述生产者,用于携带验证发送数据Schema到消息中间件进行兼容性验证与连接建立;所述消息中间件,用于在所述生产者与所述消息中间件建立连接后,对所述生产者发送的数据进行分布式存储,并通知生产者数据发送成功;所述消费者,用于通过验证接收数据Schema与所述消息中间件建立连接,并设置消费游标;所述消息中间件,还用于根据订阅所述目标主题的消费者的消费游标,从本地队列或分布式存储中拉取数据,并将拉取的数据推送给所有订阅所述目标主题的消费者。优选地,所述生产者在执行携带验证发送数据Schema到消息中间件进行兼容性验证与连接建立时,具体用于:从注册中心获取消息中间件地址;基于所述注册中心返回的目标主题所在地址,携带验证发送数据Schema到消息中间件进行兼容性验证;验证成功后,与所述消息中间件建立连接。优选地,所述消息中间件在执行在所述生产者与所述消息中间件建立连接后,对所述生产者发送的数据进行分布式存储,并通知生产者数据发送成功时,具体用于:在所述生产者与所述消息中间件建立连接后,接收所述生产者发送的数据;将接收到的数据同时写入分布式文件存储系统的N个存储节点;将存储成功的数据写入所述消息中间件的本地队列;向所述生产者发送数据发送成功的通知。优选地,所述消费者在执行通过验证接收数据Schema与所述消息中间件建立连接,并设置消费游标时,具体用于:从所述注册中心获取消息中间件地址;基于所述注册中心返回的目标主题所在地址,携带验证接收数据Schema到所述消息中间件进行验证;验证成功后,设置消费游标,并建立与所述消息中间件的连接。优选地,所述消息中间件在执行根据订阅所述目标主题的消费者的消费游标,从本地队列或分布式存储中拉取数据时,具体用于:当所述消费游标指定值在本地队列时,从本地队列中拉取数据;当所述消费游标指定值未在本地队列时,从分布式存储中拉取数据。综上所述,本专利技术公开了一种业务数据的同步分发存储方法,当需要对业务数据进行同步分发存储时,首先生产者携带验证发送数据Schema到消息中间件进行兼容性验证与连接建立,在生产者与消息中间件建立连接后,消息中间件对生产本文档来自技高网
...

【技术保护点】
1.一种业务数据的同步分发存储方法,其特征在于,包括:/n生产者携带验证发送数据Schema到消息中间件进行兼容性验证与连接建立;/n在所述生产者与所述消息中间件建立连接后,所述消息中间件对所述生产者发送的数据进行分布式存储,并通知生产者数据发送成功;/n消费者通过验证接收数据Schema与所述消息中间件建立连接,并设置消费游标;/n所述消息中间件根据订阅所述目标主题的消费者的消费游标,从本地队列或分布式存储中拉取数据,并将拉取的数据推送给所有订阅所述目标主题的消费者。/n

【技术特征摘要】
1.一种业务数据的同步分发存储方法,其特征在于,包括:
生产者携带验证发送数据Schema到消息中间件进行兼容性验证与连接建立;
在所述生产者与所述消息中间件建立连接后,所述消息中间件对所述生产者发送的数据进行分布式存储,并通知生产者数据发送成功;
消费者通过验证接收数据Schema与所述消息中间件建立连接,并设置消费游标;
所述消息中间件根据订阅所述目标主题的消费者的消费游标,从本地队列或分布式存储中拉取数据,并将拉取的数据推送给所有订阅所述目标主题的消费者。


2.根据权利要求1所述的方法,其特征在于,所述生产者携带验证发送数据Schema到消息中间件进行兼容性验证与连接建立,包括:
生产者从注册中心获取消息中间件地址;
基于所述注册中心返回的目标主题所在地址,携带验证发送数据Schema到消息中间件进行兼容性验证;
验证成功后,生产者与所述消息中间件建立连接。


3.根据要求2所述的方法,其特征在于,所述在所述生产者与所述消息中间件建立连接后,所述消息中间件对所述生产者发送的数据进行分布式存储,并通知生产者数据发送成功,包括:
在所述生产者与所述消息中间件建立连接后,所述消息中间件接收所述生产者发送的数据;
所述消息中间件将接收到的数据同时写入分布式文件存储系统的N个存储节点;
所述消息中间件将存储成功的数据写入所述消息中间件的本地队列;
所述消息中间件向所述生产者发送数据发送成功的通知。


4.根据权利要求3所述的方法,其特征在于,所述消费者通过验证接收数据Schema与所述消息中间件建立连接,并设置消费游标,包括:
所述消费者从所述注册中心获取消息中间件地址;
基于所述注册中心返回的目标主题所在地址,携带验证接收数据Schema到所述消息中间件进行验证;
验证成功后,设置消费游标,并建立与所述消息中间件的连接。


5.根据权利要求4所述的方法,其特征在于,所述消息中间件根据订阅所述目标主题的消费者的消费游标,从本地队列或分布式存储中拉取数据,包括:
当所述消费游标指定值在本地队列时,所述消息中间件从本地队列中拉取数据;
当所述消费游标指定值未在本地队列时,所述消息中间件从分布式存储中拉取数据。

<...

【专利技术属性】
技术研发人员:喻俊彭一张志广李小红
申请(专利权)人:湖南快乐阳光互动娱乐传媒有限公司
类型:发明
国别省市:湖南;43

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1