CN115408360A - 存储数据的方法、装置、设备和计算机可读介质 - Google Patents
存储数据的方法、装置、设备和计算机可读介质 Download PDFInfo
- Publication number
- CN115408360A CN115408360A CN202210984786.XA CN202210984786A CN115408360A CN 115408360 A CN115408360 A CN 115408360A CN 202210984786 A CN202210984786 A CN 202210984786A CN 115408360 A CN115408360 A CN 115408360A
- Authority
- CN
- China
- Prior art keywords
- database
- data
- operation database
- service
- 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
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/21—Design, administration or maintenance of databases
- G06F16/214—Database migration support
-
- 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/2365—Ensuring data consistency and integrity
-
- 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
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了存储数据的方法、装置、设备和计算机可读介质,涉及计算机技术领域。该方法的一具体实施方式包括:根据业务请求中的业务标识,选择所述业务请求对应的数据库作为操作数据库,以采用所述业务请求中的业务数据,更新所述操作数据库中的数据;所述操作数据库发送消息队列,所述消息队列中包括所述操作数据库的标识和所述业务数据;非操作数据库基于所述操作数据库的标识获知所述消息队列是所述操作数据库发送的,则按照所述消息队列中的业务数据同步数据,以确保所述操作数据库与所述非操作数据库的数据相同。该实施方式能够在多个数据库中迁移数据,从而提高多个数据库中的数据一致性。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种存储数据的方法、装置、设备和计算机可读介质。
背景技术
在数据量增速较高的情况下,原有的MySQL数据库已经无法满足数据增量的诉求,需要将MySQL数据库迁移至其他数据库。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:在多个数据库中迁移数据,业务要求迁移过程平稳,而且需要考虑到数据容灾和峰值数据存储,难以保证数据的一致性。
发明内容
有鉴于此,本发明实施例提供一种存储数据的方法、装置、设备和计算机可读介质,能够在多个数据库中迁移数据,从而提高多个数据库中的数据一致性。
为实现上述目的,根据本发明实施例的一个方面,提供了一种存储数据的方法,包括:
根据业务请求中的业务标识,选择所述业务请求对应的数据库作为操作数据库,以采用所述业务请求中的业务数据,更新所述操作数据库中的数据;
所述操作数据库发送消息队列,所述消息队列中包括所述操作数据库的标识和所述业务数据;
非操作数据库基于所述操作数据库的标识获知所述消息队列是所述操作数据库发送的,则按照所述消息队列中的业务数据同步数据,以确保所述操作数据库与所述非操作数据库的数据相同。
所述根据业务请求中的业务标识,选择所述业务请求对应的数据库作为操作数据库,包括:
所述业务请求中的业务标识对应高并发场景,选择非关系型数据库作为所述操作数据库;
或,
所述业务请求中的业务标识对应非高并发场景,选择关系型数据库作为所述操作数据库。
所述操作数据库发送消息队列,所述消息队列中包括所述操作数据库的标识和所述业务数据,包括:
所述操作数据库,确定业务数据对应的数据库标识与自身数据库的标识相同;
所述操作数据库发送所述消息队列,所述消息队列中包括所述操作数据库的标识和所述业务数据。
所述非操作数据库基于所述操作数据库的标识获知所述消息队列是所述操作数据库发送的,包括:
所述非操作数据库,基于自身数据库的标识和所述操作数据库的标识,获知所述消息队列是所述操作数据库发送的。
所述方法还包括:
所述操作数据库,基于所述操作数据库的标识判断所述消息队列是所述操作数据库发送的,则停止同步数据。
所述按照所述消息队列中的业务数据同步数据之后,还包括:
所述操作数据库或所述非操作数据库,响应于查询数据请求,反馈所述查询数据请求中的业务数据。
所述业务请求包括提单请求、支付请求、问诊请求和义诊请求中的一种或多种;
所述业务请求的数量大于1。
根据本发明实施例的第二方面,提供了一种存储数据的装置,包括:
更新模块,用于根据业务请求中的业务标识,选择所述业务请求对应的数据库作为操作数据库,以采用所述业务请求中的业务数据,更新所述操作数据库中的数据;
发送模块,用于控制所述操作数据库发送消息队列,所述消息队列中包括所述操作数据库的标识和所述业务数据;
同步模块,用于控制非操作数据库基于所述操作数据库的标识获知所述消息队列是所述操作数据库发送的,则按照所述消息队列中的业务数据同步数据,以确保所述操作数据库与所述非操作数据库的数据相同。
根据本发明实施例的第三方面,提供了一种存储数据的电子设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上述的方法。
根据本发明实施例的第四方面,提供了一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现如上述的方法。
上述发明中的一个实施例具有如下优点或有益效果:根据业务请求中的业务标识,选择所述业务请求对应的数据库作为操作数据库,以采用所述业务请求中的业务数据,更新所述操作数据库中的数据;所述操作数据库发送消息队列,所述消息队列中包括所述操作数据库的标识和所述业务数据;非操作数据库基于所述操作数据库的标识获知所述消息队列是所述操作数据库发送的,则按照所述消息队列中的业务数据同步数据,以确保所述操作数据库与所述非操作数据库的数据相同。操作数据库更新数据后,通过消息队列在非操作数据库中同步数据,进而能够在多个数据库中迁移数据,从而提高多个数据库中的数据一致性。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是根据本发明实施例的存储数据的方法的主要流程示意图;
图2是根据本发明实施例的选择业务请求对应的数据库作为操作数据库的示意图;
图3是根据本发明实施例的操作数据库发送消息队列的流程示意图;
图4是根据本发明实施例的同步数据的示意图;
图5是根据本发明实施例的存储数据的方法的应用示意图;
图6是根据本发明实施例的存储数据的装置的主要结构示意图;
图7是本发明实施例可以应用于其中的示例性系统架构图;
图8是适于用来实现本发明实施例的终端设备或服务器的计算机系统的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
目前,可以采用以下技术实现数据迁移。
通过binlog异步写入:binlog指二进制日志,它记录了数据库上的所有改变,并以二进制的形式保存在磁盘中。binlog可以用来查看数据库的变更历史、数据库增量备份和恢复、MySQL主从数据库的复制。通过接收binlog的消息异步将数据写入从库。但是,binlog无法支持中间件,如:binlog并不支持redis和es等中间件。
数据双写,是在数据更新的时候,直接写入多个数据源。双写模式维护成本极高。如:多数据源中任意一个有问题,就必须对其他数据源进行回滚,如果要添加新数据源需要修改内容较多。
缓存存储,是先将数据写入缓存,后续再异步将数据写入关系型数据库。缓存信息查询会存在延迟。
综上,业务要求迁移过程平稳,而且需要考虑到数据容灾和峰值数据存储。在多个数据库中迁移数据,难以保证数据的一致性。
为了解决在多个数据库中迁移数据,难以保证数据的一致性,可以采用以下本发明实施例中的技术方案。
参见图1,图1是根据本发明实施例的存储数据的方法主要流程示意图,操作数据库更新数据后,通过消息队列在非操作数据库中同步数据。如图1所示,具体包括以下步骤:
S101、根据业务请求中的业务标识,选择业务请求对应的数据库作为操作数据库,以采用业务请求中的业务数据,更新操作数据库中的数据。
在本发明实施例中,针对业务请求中涉及的业务数据,实现存储数据。以互联网医疗的应用场景为例,业务请求包括提单请求、支付请求、问诊请求和义诊请求中的一种或多种。提单,是指作为承运人和托运人之间处理运输中双方权利和义务的依据。
具体来说,在互联网医疗的应用场景中,用户通过互联网发送业务请求。作为一个示例,用户通过互联网发送业务请求,业务请求中包括问诊请求,问诊请求中包括业务数据,如:业务数据具体为:症状和药品。医生响应问诊请求,针对药品购买请求中的症状和药品,向用户发送购买药品的指导。
需要说明的是,在互联网医疗的应用场景中,由于促销或突发情况,导致大量用户在同一时间段发送业务请求。也就是说,业务请求的数量大于1。针对上述发送业务请求的高峰,需要及时存储业务请求中的业务数据。业务数据不仅存储在操作数据库中,还需要同步至非操作数据库。
基于上述分析可知,本发明实施例中的技术方案,适用于多方发送和多方接收,即多个业务请求和多个数据库存储数据。作为一个示例,多个用户在一段时间内集中发送业务请求。业务请求对应的数据库作为操作数据库,其他数据库是该业务请求的非操作数据库。多个用户发送业务请求,需要在业务请求的操作数据库和非操作数据库中存储业务数据。这样,针对多个用户集中发送业务请求的场景。在每个业务请求的操作数据库和非操作数据库中存储业务数据。这样,即使业务请求的数量较大,仍然在多个数据库中实现数据存储。
在业务请求中包括业务标识,业务标识用于标记具体业务。在本发明的实施例中,考虑到业务要求,如:高并发,选择对应的数据库存储业务数据,以满足业务要求。
参见图2,图2是根据本发明实施例的选择业务请求对应的数据库作为操作数据库的示意图。
图2中对于高并发场景,选择非关系型数据库作为操作数据库;对于非高并发场景,选择关系型数据库作为操作数据库。其中,可以基于业务请求中的业务标识获知场景。
作为一个示例,预设业务标识与场景的对应关系。如:设置促销支付的业务标识与高并发场景的对应关系;又如:设置提单的业务标识与非高并发场景的对应关系。
在本发明实施例中,数据库从类型上划分包括关系型数据库和非关系型数据库。
关系型数据库,是指采用了关系模型来组织数据的数据库,其以行和列的形式存储数据。作为一个示例,关系型数据库包括以下一种或多种:MySql、Oracle、DB2、MySQL、Microsoft SQL Server和Microsoft Access。
非关系型数据库是指那些非关系的、分布式的,且一般不保证ACID的数据存储系统。如:非关系型数据库采用键值存储数据。作为一个示例,非关系型数据库包括以下一种或多种:redis、MongoDB和CounchDB。
在本发明的实施例中,从业务请求的角度上来说,分为操作数据库和非操作数据库。操作数据库用于存储业务请求中的业务数据;数据库中除操作数据库之外的其他数据库称为非操作数据库。
在本发明的实施例中,在所有数据库中,根据业务请求中的业务标识,选择业务请求对应的数据库作为操作数据库之后,就可以采用业务请求中的业务数据,更新操作数据库中的数据。
作为一个示例,业务请求包括支付请求,业务数据包括支付金额。在操作数据库中存储有账户的余额。利用支付金额更新数据库中账户的余额。
S102、操作数据库发送消息队列,消息队列中包括操作数据库的标识和业务数据。
在本发明的实施例中,所有数据库中的数据需要保持一致。操作数据库更新后,需要将业务数据同步至非操作数据库中。操作数据库采用消息队列(MQ)的方式,将业务数据同步至非操作数据库中。
具体地,操作数据库发送消息队列,消息队列中包括操作数据库的标识和业务数据。通过消息队列的方式同步数据,对于业务的影响最小,同时,能够实现多个非操作数据库同步数据。
参见图3,图3是根据本发明实施例的操作数据库发送消息队列的流程示意图。具体包括以下步骤:
S301、操作数据库,确定业务数据对应的数据库标识与自身数据库的标识相同。
操作数据库,采用业务请求中的业务数据完成更新后,需要判断是否发送消息队列,以在非操作数据库中同步数据。
具体来说,操作数据库基于业务数据对应的数据库标识,判断业务数据的来源。业务数据来源于其他数据库,则无需在非操作数据库中同步数据;业务数据来源于自身,则需要在非操作数据库中同步数据。
操作数据库,确定业务数据对应的数据库标识与自身数据库的标识相同,则说明业务数据来源于自身,则需要在非操作数据库中同步数据。业务数据对应的数据库标识可以基于业务标识确定。操作数据库,确定业务数据对应的数据库标识与自身数据库的标识不同,则说明业务数据来源于其他数据库,则无需在非操作数据库中同步数据。
S302、操作数据库发送消息队列,消息队列中包括操作数据库的标识和业务数据。
业务数据来源自身,则需要在非操作数据库中同步数据。操作数据库通过发送消息队列的方式,在非操作数据库中同步数据。在消息队列中包括操作数据库的标识和业务数据。操作数据库的标识用于判断业务数据的来源。业务数据用于在非操作数据库中同步数据。
在图3的实施例中,操作数据库在确定数据来源于自身之后,通过发送消息队列,在非操作数据库中同步数据。
S103、非操作数据库基于操作数据库的标识获知消息队列是操作数据库发送的,则按照消息队列中的业务数据同步数据,以确保操作数据库与非操作数据库的数据相同。
操作数据库,通过发送消息队列同步数据。可以理解的是,操作数据库所发送的消息队列的对象是全部数据库。即,操作数据库会收到消息队列;非操作数据库也会收到消息队列。
非操作数据库接收到消息队列之后,从消息队列中获取操作数据库的标识,以基于操作数据库的标识判断消息队列的来源。若消息队列来源于自身,由于已采用业务数据更新过数据库,则无需更新数据库中数据;若消息队列并非来源于自身,则需要采用业务数据更新数据库。
在本发明的一个实施例中,非操作数据库,基于自身数据库的标识和操作数据库的标识,获知消息队列是操作数据库发送的。即,非操作数据库,确定自身数据库的标识和操作数据库的标识不同,获知消息队列是操作数据库发送的。
在本发明的一个实施例中,对于操作数据库而言,也会收到消息队列,但是并不需要同步数据。具体来说,操作数据库,基于操作数据库的标识判断消息队列是操作数据库发送的,则停止同步数据。
非操作数据库基于操作数据库的标识,获知消息队列是操作数据库发送的,就可以按照消息队列中的业务数据同步数据。同步数据后的非操作数据库与操作数据库的数据相同。
在本发明的一个实施例中,非操作数据库在同步数据之后,就可以接收查询数据请求。由于操作数据库与非操作数据库中的数据相同,进而操作数据库和非操作数据库,均可以接收查询数据请求。
具体地,操作数据库或非操作数据库,响应于查询数据请求,反馈查询数据请求中的业务数据。
在本发明的一个实施例中,数据库之间能够采用发送消息队列的方式实现数据同步,那么对于数据库的删除或新增,可以直接操作。即,响应于删除或新增数据库的请求,在已有数据库的基础上,删除或新增数据库。
其中,响应于删除数据库的请求,在已有数据库的基础上,直接删除对应数据库即可。响应于新增数据库的请求,在已有数据库的基础上,新增数据库。新增数据库的数据,通过消息队列,实现与其他数据库的数据同步。
参见图4,图4是根据本发明实施例的同步数据的示意图。图4中涉及两个数据库,分别为数据库A和数据库B。数据库A是业务请求对应的数据库。即,数据库A作为操作数据库。采用业务请求中的业务数据,更新数据库A中的数据。
对于数据库A来说,在完成数据更新后,通过查询业务数据的来源,以确定是否发送消息队列以同步数据。数据库A,确定业务数据对应的数据库标识与自身数据库的标识相同,则说明业务数据来源自身,则需要在非操作数据库即数据库B中同步数据。
数据库A发送消息队列,以在非操作数据库中同步数据。需要说明的是,数据库A发送消息队列后,全部数据库均会收到消息队列。也就是说,数据库A会收到消息队列,数据库B也会收到消息队列。
数据库A收到消息队列后,基于操作数据库的标识判断消息队列是数据库A发送的即数据属于数据库A,则停止同步数据,丢弃无用消息。
对于数据库B来说,确定业务数据对应的数据库标识与自身数据库的标识不同,则说明业务数据来源操作数据库,则需要同步数据。
数据库A发送消息队列后,数据库B收到消息队列。数据库B收到消息队列后,基于操作数据库的标识判断消息队列是数据库A发送的即数据属于数据库A,则同步数据。
图4中数据库A是操作数据库,数据库B是非操作数据库。对于其他非操作数据库同步数据的步骤,与数据库B同步数据的步骤相同。
参见图5,图5是根据本发明实施例的存储数据的方法的应用示意图。图5中涉及3个数据库,分别Redis数据库、MySqlA数据库和MySqlB数据库。Redis数据库属于非关系型数据库。MySqlA数据库和MySqlB数据库属于关系型数据库。
在网站促销时期,由于存储数据量较大,在同一时间段需要处理大量业务请求。接收到业务请求后,选择Redis数据库作为操作数据库。这是因为,Redis数据库缓存存储单机能够达成TPS(Transaction PerSecond)10000+的高性能。TPS是每秒钟系统能够处理的交易或事务的数量。
Redis数据库能够及时处理海量业务请求。在完成业务请求之后,通过发送消息队列,在MySqlA数据库和MySqlB数据库实现数据同步。这样,通过MySqlA数据库或MySqlB数据库,能够查询同步后的业务数据。
图5中,充分利用不同类型数据库特性,采用Redis数据库更新数据后,再利用消息队列在MySqlA数据库和MySqlB数据库中同步数据。这样,就可以MySqlA数据库或MySqlB数据库中查询数据。
在上述实施例中,根据业务请求中的业务标识,选择所述业务请求对应的数据库作为操作数据库,以采用所述业务请求中的业务数据,更新所述操作数据库中的数据;所述操作数据库发送消息队列,所述消息队列中包括所述操作数据库的标识和所述业务数据;非操作数据库基于所述操作数据库的标识获知所述消息队列是所述操作数据库发送的,则按照所述消息队列中的业务数据同步数据,以确保所述操作数据库与所述非操作数据库的数据相同。操作数据库更新数据后,通过消息队列在非操作数据库中同步数据,进而能够在多个数据库中迁移数据,从而提高多个数据库中的数据一致性,从而能够在每个数据库中查询数据。
参见图6,图6是根据本发明实施例的存储数据的装置的主要结构示意图,存储数据的装置可以实现存储数据的方法,如图6所示,存储数据的装置具体包括:
更新模块601,用于根据业务请求中的业务标识,选择所述业务请求对应的数据库作为操作数据库,以采用所述业务请求中的业务数据,更新所述操作数据库中的数据;
发送模块602,用于控制所述操作数据库发送消息队列,所述消息队列中包括所述操作数据库的标识和所述业务数据;
同步模块603,用于控制非操作数据库基于所述操作数据库的标识获知所述消息队列是所述操作数据库发送的,则按照所述消息队列中的业务数据同步数据,以确保所述操作数据库与所述非操作数据库的数据相同。
在本发明的一个实施例中,更新模块601,具体用于所述业务请求中的业务标识对应高并发场景,选择非关系型数据库作为所述操作数据库;
以及,
所述业务请求中的业务标识对应非高并发场景,选择关系型数据库作为所述操作数据库。
在本发明的一个实施例中,发送模块602,具体用于所述操作数据库,确定业务数据对应的数据库标识与自身数据库的标识相同;
所述操作数据库发送所述消息队列,所述消息队列中包括所述操作数据库的标识和所述业务数据。
在本发明的一个实施例中,同步模块603,具体用于控制所述非操作数据库,基于自身数据库的标识和所述操作数据库的标识,获知所述消息队列是所述操作数据库发送的。
在本发明的一个实施例中,同步模块603,具体用于控制所述操作数据库,基于所述操作数据库的标识判断所述消息队列是所述操作数据库发送的,则停止同步数据。
在本发明的一个实施例中,同步模块603,具体用于控制所述操作数据库或所述非操作数据库,响应于查询数据请求,反馈所述查询数据请求中的业务数据。
在本发明的一个实施例中,所述业务请求包括提单请求、支付请求、问诊请求和义诊请求中的一种或多种;所述业务请求的数量大于1。
图7示出了可以应用本发明实施例的存储数据的方法或存储数据的装置的示例性系统架构700。
如图7所示,系统架构700可以包括终端设备701、702、703,网络704和服务器705。网络704用以在终端设备701、702、703和服务器705之间提供通信链路的介质。网络704可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备701、702、703通过网络704与服务器705交互,以接收或发送消息等。终端设备701、702、703上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
终端设备701、702、703可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器705可以是提供各种服务的服务器,例如对用户利用终端设备701、702、703所浏览的购物类网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的产品信息查询请求等数据进行分析等处理,并将处理结果(例如目标推送信息、产品信息--仅为示例)反馈给终端设备。
需要说明的是,本发明实施例所提供的存储数据的方法一般由服务器705执行,相应地,存储数据的装置一般设置于服务器705中。
应该理解,图7中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
下面参考图8,其示出了适于用来实现本发明实施例的终端设备的计算机系统800的结构示意图。图8示出的终端设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图8所示,计算机系统800包括中央处理单元(CPU)801,其可以根据存储在只读存储器(ROM)802中的程序或者从存储部分808加载到随机访问存储器(RAM)803中的程序而执行各种适当的动作和处理。在RAM 803中,还存储有系统800操作所需的各种程序和数据。CPU 801、ROM 802以及RAM 803通过总线804彼此相连。输入/输出(I/O)接口805也连接至总线804。
以下部件连接至I/O接口805:包括键盘、鼠标等的输入部分806;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分807;包括硬盘等的存储部分808;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分809。通信部分809经由诸如因特网的网络执行通信处理。驱动器810也根据需要连接至I/O接口805。可拆卸介质811,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器810上,以便于从其上读出的计算机程序根据需要被安装入存储部分808。
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分809从网络上被下载和安装,和/或从可拆卸介质811被安装。在该计算机程序被中央处理单元(CPU)801执行时,执行本发明的系统中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括更新模块、发送模块和同步模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,更新模块还可以被描述为“用于根据业务请求中的业务标识,选择所述业务请求对应的数据库作为操作数据库,以采用所述业务请求中的业务数据,更新所述操作数据库中的数据”。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:
根据业务请求中的业务标识,选择所述业务请求对应的数据库作为操作数据库,以采用所述业务请求中的业务数据,更新所述操作数据库中的数据;
所述操作数据库发送消息队列,所述消息队列中包括所述操作数据库的标识和所述业务数据;
非操作数据库基于所述操作数据库的标识获知所述消息队列是所述操作数据库发送的,则按照所述消息队列中的业务数据同步数据,以确保所述操作数据库与所述非操作数据库的数据相同。
根据本发明实施例的技术方案,根据业务请求中的业务标识,选择所述业务请求对应的数据库作为操作数据库,以采用所述业务请求中的业务数据,更新所述操作数据库中的数据;所述操作数据库发送消息队列,所述消息队列中包括所述操作数据库的标识和所述业务数据;非操作数据库基于所述操作数据库的标识获知所述消息队列是所述操作数据库发送的,则按照所述消息队列中的业务数据同步数据,以确保所述操作数据库与所述非操作数据库的数据相同。操作数据库更新数据后,通过消息队列在非操作数据库中同步数据,进而能够在多个数据库中迁移数据,从而提高多个数据库中的数据一致性。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (10)
1.一种存储数据的方法,其特征在于,包括:
根据业务请求中的业务标识,选择所述业务请求对应的数据库作为操作数据库,以采用所述业务请求中的业务数据,更新所述操作数据库中的数据;
所述操作数据库发送消息队列,所述消息队列中包括所述操作数据库的标识和所述业务数据;
非操作数据库基于所述操作数据库的标识获知所述消息队列是所述操作数据库发送的,则按照所述消息队列中的业务数据同步数据,以确保所述操作数据库与所述非操作数据库的数据相同。
2.根据权利要求1所述存储数据的方法,其特征在于,所述根据业务请求中的业务标识,选择所述业务请求对应的数据库作为操作数据库,包括:
所述业务请求中的业务标识对应高并发场景,选择非关系型数据库作为所述操作数据库;
或,
所述业务请求中的业务标识对应非高并发场景,选择关系型数据库作为所述操作数据库。
3.根据权利要求1所述存储数据的方法,其特征在于,所述操作数据库发送消息队列,所述消息队列中包括所述操作数据库的标识和所述业务数据,包括:
所述操作数据库,确定业务数据对应的数据库标识与自身数据库的标识相同;
所述操作数据库发送所述消息队列,所述消息队列中包括所述操作数据库的标识和所述业务数据。
4.根据权利要求3所述存储数据的方法,其特征在于,所述非操作数据库基于所述操作数据库的标识获知所述消息队列是所述操作数据库发送的,包括:
所述非操作数据库,基于自身数据库的标识和所述操作数据库的标识,获知所述消息队列是所述操作数据库发送的。
5.根据权利要求3所述存储数据的方法,其特征在于,所述方法还包括:
所述操作数据库,基于所述操作数据库的标识判断所述消息队列是所述操作数据库发送的,则停止同步数据。
6.根据权利要求1所述存储数据的方法,其特征在于,所述按照所述消息队列中的业务数据同步数据之后,还包括:
所述操作数据库或所述非操作数据库,响应于查询数据请求,反馈所述查询数据请求中的业务数据。
7.根据权利要求1所述存储数据的方法,其特征在于,所述业务请求包括提单请求、支付请求、问诊请求和义诊请求中的一种或多种;
所述业务请求的数量大于1。
8.一种存储数据的装置,其特征在于,包括:
更新模块,用于根据业务请求中的业务标识,选择所述业务请求对应的数据库作为操作数据库,以采用所述业务请求中的业务数据,更新所述操作数据库中的数据;
发送模块,用于控制所述操作数据库发送消息队列,所述消息队列中包括所述操作数据库的标识和所述业务数据;
同步模块,用于控制非操作数据库基于所述操作数据库的标识获知所述消息队列是所述操作数据库发送的,则按照所述消息队列中的业务数据同步数据,以确保所述操作数据库与所述非操作数据库的数据相同。
9.一种存储数据的电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7中任一所述的方法。
10.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-7中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210984786.XA CN115408360A (zh) | 2022-08-17 | 2022-08-17 | 存储数据的方法、装置、设备和计算机可读介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210984786.XA CN115408360A (zh) | 2022-08-17 | 2022-08-17 | 存储数据的方法、装置、设备和计算机可读介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115408360A true CN115408360A (zh) | 2022-11-29 |
Family
ID=84159405
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210984786.XA Pending CN115408360A (zh) | 2022-08-17 | 2022-08-17 | 存储数据的方法、装置、设备和计算机可读介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115408360A (zh) |
-
2022
- 2022-08-17 CN CN202210984786.XA patent/CN115408360A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109189835B (zh) | 实时生成数据宽表的方法和装置 | |
EP4033374A1 (en) | Method and device for synchronizing node data | |
US9635093B2 (en) | Slave side transaction ID buffering for efficient distributed transaction management | |
CN108629029B (zh) | 一种应用于数据仓库的数据处理方法和装置 | |
US9501512B2 (en) | Optimizing storage in a publish / subscribe environment | |
US9817879B2 (en) | Asynchronous data replication using an external buffer table | |
CN109144785B (zh) | 用于备份数据的方法和装置 | |
CN110837423A (zh) | 一种自动导引运输车数据采集的方法和装置 | |
CN110795443A (zh) | 数据同步的方法、装置、设备和计算机可读介质 | |
CN111338834B (zh) | 数据存储方法和装置 | |
CN112948498A (zh) | 一种分布式系统全局标识的生成方法和装置 | |
CN114676199A (zh) | 一种同步方法、同步系统、计算机设备和存储介质 | |
CN111984686A (zh) | 一种数据处理的方法和装置 | |
CN112148705A (zh) | 数据迁移的方法和装置 | |
CN111767495A (zh) | 一种合成网页的方法及系统 | |
CN111694801A (zh) | 一种应用于故障恢复的数据去重方法和装置 | |
US10680877B2 (en) | Information transmission, sending, and acquisition method and device | |
CN115629909A (zh) | 业务数据处理的方法、装置、电子设备和存储介质 | |
CN115408360A (zh) | 存储数据的方法、装置、设备和计算机可读介质 | |
CN113760861A (zh) | 一种数据迁移的方法和装置 | |
CN109087097B (zh) | 一种更新链码同一标识的方法和装置 | |
CN113486116A (zh) | 一种数据同步方法、装置、电子设备及计算机可读介质 | |
CN113761051A (zh) | 消息推送方法、数据获取方法、装置、系统、设备和介质 | |
CN112711572A (zh) | 适用于分库分表的在线扩容方法和装置 | |
CN113742376A (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 |