CN116383199A - 一种集群数据存储方法、装置、电子设备及存储介质 - Google Patents
一种集群数据存储方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN116383199A CN116383199A CN202310229012.0A CN202310229012A CN116383199A CN 116383199 A CN116383199 A CN 116383199A CN 202310229012 A CN202310229012 A CN 202310229012A CN 116383199 A CN116383199 A CN 116383199A
- Authority
- CN
- China
- Prior art keywords
- storage
- cluster
- target
- data
- message
- 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
- 238000013500 data storage Methods 0.000 title claims abstract description 162
- 238000000034 method Methods 0.000 title claims abstract description 64
- 230000004044 response Effects 0.000 claims abstract description 11
- 230000008569 process Effects 0.000 abstract description 15
- 238000012545 processing Methods 0.000 description 18
- 238000004891 communication Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 7
- 230000008901 benefit Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000005236 sound signal Effects 0.000 description 4
- 238000004590 computer program Methods 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000001172 regenerating effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
-
- 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/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
-
- 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/24—Querying
- G06F16/245—Query processing
- G06F16/2457—Query processing with adaptation to user needs
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供了一种集群数据存储方法、装置、电子设备及存储介质,获取数据存储请求,数据存储请求包括待存储数据和待存储数据对应的存储数据库信息;响应于数据存储请求根据存储数据库信息确定目标存储集群;确定目标存储集群对应于消息队列中的目标消息主题,在目标消息主题中存储包含数据存储请求的目标消息;从目标消息主题中消费目标消息,将目标消息中的待存储数据存储至目标存储集群的所有集群存储节点中。能够先将待存储数据存储至消息队列中,再通过消费消息的方式对待存储数据进行存储,避免了待存储数据在存储过程中丢失的问题,并且能够将待存储数据存储至存储集群的多个集群存储节点中,进一步提升了数据存储的安全性。
Description
技术领域
本申请实施例涉及集群数据存储技术领域,尤其涉及一种集群数据存储方法、装置、电子设备及计算机可读存储介质。
背景技术
伴随着数据存储技术的发展,越来越多的公司开始提供数据存储解决方案的相关服务,这些方案中,有些能够支持集群存储,而有些受限于具体的应用场景,只能支持单机使用,并不能支持集群存储(例如单机版的InfluxDB)。
相关技术中,为了使不能支持集群存储的存储解决方案能够应用在集群存储业务中,通常会设置代理服务器,通过代理服务器连接多个由单机版的数据存储解决方案构建的存储节点,再通过代理服务器为这些存储节点分配存储任务,将不同的数据存储至不同的存储节点中,从而使单机版的数据存储解决方案能实现集群存储效果。
但是,由于集群存储的实现需要在系统中增加代理服务器,在进行数据存储时容易造成数据泄露,从而导致实现集群存储的方案在进行数据存储时的安全性较低。
发明内容
本申请实施例提供一种集群数据存储方法、装置、电子设备及计算机可读存储介质,以解决相关技术中实现集群存储的方案安全性较低的问题。
第一方面,本申请实施例提供了一种集群数据存储方法,该方法包括:
获取数据存储请求,所述数据存储请求包括待存储数据和所述待存储数据对应的存储数据库信息;
响应于所述数据存储请求,根据所述存储数据库信息确定目标存储集群;其中,所述目标存储集群包含多个集群存储节点;
确定所述目标存储集群对应于消息队列中的目标消息主题,在所述目标消息主题中存储包含所述数据存储请求的目标消息;
从所述目标消息主题中消费所述目标消息,将所述目标消息中的待存储数据存储至所述目标存储集群的所有集群存储节点中。
在一种可选实施方式中,所述根据所述存储数据库信息确定目标存储集群,包括:
从数据库配置服务器获取数据库配置信息;其中,所述数据库配置信息包含数据库与存储集群之间的对应关系,以及存储集群与消息队列中数据消息主题之间的对应关系;
基于所述数据库配置信息,查询所述存储数据库信息对应的目标存储集群;
所述确定所述目标存储集群对应于消息队列中的目标消息主题,包括:
基于所述数据库配置信息,查询所述目标存储集群在所述消息队列中对应的目标消息主题。
在一种可选实施方式中,所述目标消息主题包含多个消费组,所述消费组与所述集群存储节点具有一一对应关系,所述在所述目标消息主题中存储包含所述数据存储请求的目标消息,包括:
基于所述数据存储请求生成目标消息,将所述目标消息存储至所述目标消息主题中,并建立每个所述消费组与存储在所述目标消息主题中的目标消息之间的对应关系。
在一种可选实施方式中,所述从所述目标消息主题中消费所述目标消息,将所述目标消息中的待存储数据存储至所述目标存储集群的所有集群存储节点中,包括:
消费所述消费组对应的目标消息,得到所述目标消息对应的数据存储请求;
将所述目标消息对应的数据存储请求,存储至所述消费组对应的目标集群存储节点中。
在一种可选实施方式中,所述将所述目标消息对应的数据存储请求,存储至所述消费组对应的目标集群存储节点中,包括:
在所述消费组对应的目标集群存储节点的节点状态为不可用状态的情况下,等待预设时间长度并重新从所述消费组中消费所述目标消息;
在所述消费组对应的目标集群存储节点的节点状态为可用状态的情况下,将所述待存储数据存储至所述消费组的目标数据库。
在一种可选实施方式中,所述将所述待存储数据存储至所述消费组的目标数据库,包括:
在所述目标数据库中存储所述待存储数据成功的情况下,更新所述消费组对应的待消费偏移量,基于更新后的待消费偏移量对所述消费组中的消息进行消费;
在所述目标数据库中存储所述待存储数据失败的情况下,等待预设时间长度并重新从所述消费组中消费所述目标消息。
在一种可选实施方式中,所述方法还包括:
获取数据查询请求;其中,所述数据查询请求包括查询语句和所述查询语句对应的查询数据库信息;
基于所述查询数据库信息确定待查询存储集群;
基于所述查询语句对所述待查询存储集群进行查询,得到查询结果。
在一种可选实施方式中,所述基于所述查询语句对所述待查询存储集群进行查询,得到查询结果,包括:
从所述待查询存储集群的所有集群存储节点中,随机选取待查询节点;
基于所述查询语句对所述待查询节点进行查询,得到所述查询结果。
在一种可选实施方式中,所述从所述待查询存储集群的所有集群存储节点中,随机选取待查询节点,包括:
从所述待查询存储集群的所有集群存储节点中,随机选取第一集群存储节点;
在所述第一集群存储节点的节点状态为不可用状态的情况下,从所述待查询存储集群的所有集群存储节点中,随机选取第二集群存储节点;
在所述第二集群存储节点的节点状态为可用状态的情况下,将所述第二集群存储节点确定为所述待查询节点。
第二方面,本申请实施例提供了一种集群数据存储装置,该装置包括:
获取模块,用于获取数据存储请求,所述数据存储请求包括待存储数据和所述待存储数据对应的存储数据库信息;
存储集群模块,用于响应于所述数据存储请求,根据所述存储数据库信息确定目标存储集群;其中,所述目标存储集群包含多个集群存储节点;
消息主题模块,用于确定所述目标存储集群对应于消息队列中的目标消息主题,在所述目标消息主题中存储包含所述数据存储请求的目标消息;
存储模块,用于从所述目标消息主题中消费所述目标消息,将所述目标消息中的待存储数据存储至所述目标存储集群的所有集群存储节点中。
在一种可选实施方式中,所述存储集群模块包括:
配置信息子模块,用于从数据库配置服务器获取数据库配置信息;其中,所述数据库配置信息包含数据库与存储集群之间的对应关系,以及存储集群与消息队列中数据消息主题之间的对应关系;
存储集群子模块,用于基于所述数据库配置信息,查询所述存储数据库信息对应的目标存储集群;
所述消息主题模块包括:
消息主题子模块,用于基于所述数据库配置信息,查询所述目标存储集群在所述消息队列中对应的目标消息主题。
在一种可选实施方式中,所述目标消息主题包含多个消费组,所述消费组与所述集群存储节点具有一一对应关系,所述消息主题模块包括:
目标消息存储模块,用于基于所述数据存储请求生成目标消息,将所述目标消息存储至所述目标消息主题中,并建立每个所述消费组与存储在所述目标消息主题中的目标消息之间的对应关系。
在一种可选实施方式中,所述存储模块包括:
消费子模块,用于消费所述消费组对应的目标消息,得到所述目标消息对应的数据存储请求;
存储子模块,用于将所述目标消息对应的数据存储请求,存储至所述消费组对应的目标集群存储节点中。
在一种可选实施方式中,所述存储子模块包括:
第一存储子模块,用于在所述消费组对应的目标集群存储节点的节点状态为不可用状态的情况下,等待预设时间长度并重新从所述消费组中消费所述目标消息;
第二存储子模块,用于在所述消费组对应的目标集群存储节点的节点状态为可用状态的情况下,将所述待存储数据存储至所述消费组的目标数据库。
在一种可选实施方式中,所述第二存储子模块包括:
偏移量更新子模块,用于在所述目标数据库中存储所述待存储数据成功的情况下,更新所述消费组对应的待消费偏移量,基于更新后的待消费偏移量对所述消费组中的消息进行消费;
重复消费子模块,用于在所述目标数据库中存储所述待存储数据失败的情况下,等待预设时间长度并重新从所述消费组中消费所述目标消息。
在一种可选实施方式中,所述装置还包括:
查询获取模块,用于获取数据查询请求;其中,所述数据查询请求包括查询语句和所述查询语句对应的查询数据库信息;
待查询存储集群模块,用于基于所述查询数据库信息确定待查询存储集群;
查询模块,用于基于所述查询语句对所述待查询存储集群进行查询,得到查询结果。
在一种可选实施方式中,所述查询模块包括:
待查询节点子模块,用于从所述待查询存储集群的所有集群存储节点中,随机选取待查询节点;
查询结果子模块,用于基于所述查询语句对所述待查询节点进行查询,得到所述查询结果。
在一种可选实施方式中,所述待查询节点子模块包括:
第一集群存储节点子模块,用于从所述待查询存储集群的所有集群存储节点中,随机选取第一集群存储节点;
第二集群存储节点子模块,用于在所述第一集群存储节点的节点状态为不可用状态的情况下,从所述待查询存储集群的所有集群存储节点中,随机选取第二集群存储节点;
待查询节点确定子模块,用于在所述第二集群存储节点的节点状态为可用状态的情况下,将所述第二集群存储节点确定为所述待查询节点。
第三方面,本申请实施例还提供了一种电子设备,包括:处理器;用于存储所述处理器可执行指令的存储器;其中,所述处理器被配置为执行所述指令,以实现所述的集群数据存储方法。
第四方面,本申请实施例还提供了一种计算机可读存储介质,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行所述的集群数据存储方法。
在本申请实施例中,包括:获取数据存储请求,数据存储请求包括待存储数据和待存储数据对应的存储数据库信息;响应于数据存储请求,根据存储数据库信息确定目标存储集群;其中,目标存储集群包含多个集群存储节点;确定目标存储集群对应于消息队列中的目标消息主题,在目标消息主题中存储包含数据存储请求的目标消息;从目标消息主题中消费目标消息,将目标消息中的待存储数据存储至目标存储集群的所有集群存储节点中。能够先将待存储数据作为消息存储至消息队列中,再通过消费消息队列中消息的方式,对待存储数据进行存储,避免了待存储数据在存储过程中丢失的问题,提升了数据存储的安全性,并且能够将待存储数据存储至存储集群的多个存储节点中,实现了待存储数据的多副本保存,进一步提升了数据存储的安全性。
上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,而可依照说明书的内容予以实施,并且为了让本申请的上述和其它目的、特征和优点能够更明显易懂,以下特举本申请的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本申请的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1是本申请实施例提供的一种集群数据存储方法的步骤流程图;
图2是本申请实施例提供的一种存储系统结构示意图;
图3是本申请实施例提供的另一种集群数据存储方法的步骤流程图;
图4是本申请实施例提供的一种数据存储系统示意图;
图5是本申请实施例提供的一种集群数据查询方法的步骤流程图;
图6是本申请实施例提供的一种集群数据存储模型结构图;
图7是本申请一个实施例的电子设备的逻辑框图;
图8是本申请另一个实施例的电子设备的逻辑框图。
具体实施方式
下面将参照附图更详细地描述本申请的示例性实施例。虽然附图中显示了本申请的示例性实施例,然而应当理解,可以以各种形式实现本申请而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本申请,并且能够将本申请的范围完整的传达给本领域的技术人员。
图1是本申请实施例提供的一种集群数据存储方法的步骤流程图,应用于代理服务器,如图1所示,该方法包括:
步骤101,获取数据存储请求,所述数据存储请求包括待存储数据和所述待存储数据对应的存储数据库信息。
在本申请实施例中,数据存储请求中可以包括待存储数据,其中,待存储数据可以包括任何可被存储的数据,例如基于时间序列获取的设备状态数据、设备监控数据等。本申请实施例对待存储数据不作具体限定,用户可以发送任何类型的数据作为数据存储请求中的待存储数据。
数据存储请求还可以包括待存储数据对应的存储数据库信息,其中,存储数据库信息用于指示用户想要存放待存储数据的数据库。具体地,存储数据库信息可以包括但不限于数据库标识、数据库名称、数据库地址等数据库相关信息中的至少一项。
在本申请实施例中,用户需要存储待存储数据时,可以基于待存储数据和存储数据库信息构建数据存储请求,并将数据存储请求发送至存储代理服务器,由代理服务器响应数据存储请求并将其中的待存储数据存储至存储数据库信息指定的存储数据库中。其中,代理服务器可以基于远程字典服务(Remote Dictionary Server,Redis)构建。
步骤102,响应于所述数据存储请求,根据所述存储数据库信息确定目标存储集群;其中,所述目标存储集群包含多个集群存储节点。
可以响应于用户端发送的数据存储请求,从数据存储请求中提取存储数据库信息,并基于存储数据库信息,从多个存储集群中确定存储数据库信息对应的目标存储集群。
具体地,可以获取存储集群和存储数据库之间的对应关系,并基于存储数据库信息在上述对应关系中匹配对应的目标存储集群。技术人员可以根据实际需要选择合适的方式确定目标存储集群,本申请实施例不作具体限定。
在本申请实施例中,目标存储集群中可以包含多个集群存储节点,每个集群存储节点中可以保存相同的数据,并互为备份,从而提高存储集群的可靠性。
需要说明的是,在本申请实施例中,集群存储节点可以基于第三方提供的存储解决方案构建,其中,存储解决方案可以包括但不限于InfluxDB,本申请实施例对此不作具体限定。
每个集群存储节点中可以包含多个基于相同存储解决方案的数据库,例如,对于一个集群存储节点,其中可以包括基于InfluxDB构建的数据库1、基于InfluxDB构建的数据库2和基于InfluxDB构建的数据库3。每个集群存储节点中也可以包含多个基于不同存储解决方案的数据库。
步骤103,确定所述目标存储集群对应于消息队列中的目标消息主题,在所述目标消息主题中存储包含所述数据存储请求的目标消息。
消息队列(Messges Queue,MQ),是一种在消息的传输过程中保存消息的容器。消息队列本质上是一个队列,而队列中存放的是一个个消息。消息队列通常由消息生产者(Producer)、消息消费者(Consumer)、消息主题(Topic)、消费组(Consumer Group)和消息(Message)组成。消息队列的类型包括但不限于Kafka、Pulsar、RocketMQ、RabbitMQ等具有广播模式的消息队列,技术人员可以根据实际需要灵活选择消息队列类型,消息队列只要具有广播模式即可,本申请实施例不作具体限定。
在本申请实施例中,消息队列中可以包含多个消息主题,且这些消息主题与多个存储集群之间具有一一对应关系。在确定出目标存储集群在消息队列中对应的目标消息主题后,可以将数据存储请求存储为目标消息主题中的目标消息。
在本申请实施例中,可以预先构建消息队列,在接收到数据存储请求后,首先基于数据存储请求在消息队列中构建包含数据存储请求的目标消息,由于目标消息包含数据存储请求,即目标消息包含数据存储请求中的待存储数据和存储数据库信息。
参照图2,图2示出了本申请实施例提供的一种存储系统结构示意图,如图2所示,存储系统中可以包含2个存储集群:存储集群21和存储集群22,相应的,消息队列23中可以包含两个消息主题:消息主题231和消息主题232,其中,消息主题231和存储集群21相对应,消息主题232和存储集群22相对应,若确定出某数据存储请求对应的目标存储集群为存储集群21,则可以进一步确定该数据存储请求对应的目标消息主题为消息主题231,可以在消息队列的消息主题231中,生成包含数据存储请求的目标消息,以供后续步骤中基于目标消息将对待存储数据进行持久化存储。
步骤104,从所述目标消息主题中消费所述目标消息,将所述目标消息中的待存储数据存储至所述目标存储集群的所有集群存储节点中。
在本申请实施例中,在将数据存储请求中的待存储信息持久化至对应的目标存储集群之前,可以先将数据存储请求作为目标消息存储至目标消息主题中,再由代理服务器通过从目标消息主题中消费目标消息,将目标消息中的待存储数据存储至目标存储集群的所有集群存储节点中,以防止在存储过程中,代理服务器和/或存储集群故障而导致丢失还未持久化存储的数据存储请求中的数据。
具体地,在代理服务器能够直接操作集群存储节点中存储空间的情况下,由于目标消息中包含完整的数据存储请求,因此可以由代理服务器根据消费目标消息而得到的存储数据库信息,确定对应的目标存储集群,以及目标存储集群中的目标存储数据库,将消费目标消息而得到的待存储数据存储至目标存储集群中的每个集群存储节点的目标存储数据库中。
在代理服务器不能直接操作集群存储节点中存储空间的情况下,可以由代理服务器根据消费目标消息而得到的存储数据库信息,确定对应的目标存储集群,然后由代理服务器将消费目标消息而得到的待存储数据和存储数据库信息,发送至目标存储集群,由目标存储集群根据接收到的存储数据库信息确定其指示的目标存储数据库,最终由目标存储集群将待存储数据存储至自身的目标存储数据库中。
需要说明的是,为了提升存储集群的容错率,存储集群中可以包含多个存储节点,且每个存储节点存储的数据一致,也就是说,一个存储集群中的每个存储节点均包含相同的存储数据库,因此目标存储数据库存在于目标存储集群中的每个存储节点中。在目标存储集群中的目标存储集群中存储待存储信息时,可以在目标存储集群中的每个存储节点中进行同步存储,以使待存储数据在目标存储集群中存在多个备份,提升待存储数据的安全性。
如图2所示,存储集群21中可以包含多个存储节点:第一存储节点211和第二存储节点212,存储集群22中也可以包含多个存储节点:第三存储节点221和第四存储节点222。若根据数据存储请求中的存储数据库信息指示的存储数据库位于存储集群21,而存储集群21对应的目标消息主题为消息主题23,则基于数据存储请求在消息主题23中生成目标消息,对消息主题23中的目标消息进行消费,以将待存储数据存储至第一存储节点211和第二存储节点212中。
综上,为本申请实施例提供的一种集群数据存储方法,包括,获取数据存储请求,数据存储请求包括待存储数据和待存储数据对应的存储数据库信息;响应于数据存储请求,根据存储数据库信息确定目标存储集群;其中,目标存储集群包含多个集群存储节点;确定目标存储集群对应于消息队列中的目标消息主题,在目标消息主题中存储包含数据存储请求的目标消息;从目标消息主题中消费目标消息,将目标消息中的待存储数据存储至目标存储集群的所有集群存储节点中。能够先将待存储数据存储至消息队列中,再通过消费消息的方式,对待存储数据进行存储,避免了待存储数据在存储过程中丢失的问题,提升了数据存储的安全性,并且能够将待存储数据存储至存储集群的多个集群存储节点中,实现了待存储数据的多副本保存,进一步提升了数据存储的安全性。此外,还由于消息队列通常具有较高的吞吐速率,当数据存储请求的产生量超过整个存储集群的处理能力时,可以在消息队列中暂存数据存储请求,能够提升系统处理数据存储请求的能力。
图3是本申请实施例提供的另一种集群数据存储方法的步骤流程图,如图3所示,该方法包括:
步骤201,获取数据存储请求,所述数据存储请求包括待存储数据和所述待存储数据对应的存储数据库信息。
具体实现过程可参见步骤101,本申请实施例不再赘述。
步骤202,响应于所述数据存储请求,根据所述存储数据库信息确定目标存储集群;其中,所述目标存储集群包含多个集群存储节点。
此步骤可参见步骤102,本申请实施例不再赘述。
可选地,步骤202可以包括:
子步骤2021,从数据库配置服务器获取数据库配置信息;其中,所述数据库配置信息包含数据库与存储集群之间的对应关系,以及存储集群与消息队列中数据消息主题之间的对应关系。
在本申请实施例中,可以从数据库配置服务器中获取数据库配置信息,其中数据库配置信息可以包括但不限于所有存储集群的信息、各个存储集群中包含的数据库信息、消息队列中的所有数据消息主题的信息等。此外,数据库配置信息还可以包含各种信息之间的对应关系。
参照图4,图4示出了本申请实施例提供的一种数据存储系统示意图,如图4所示,数据库配置信息可以存储在数据库配置服务器42中,数据代理服务器41可以从数据库配置服务器42中获取数据库配置信息。
子步骤2022,基于所述数据库配置信息,查询所述存储数据库信息对应的目标存储集群。
可以根据数据库配置信息,查询存储数据库信息对应的目标存储集群。举例来说,数据库配置信息中可以包括如下表1所示的配置信息:
存储集群信息 | 数据库信息 |
存储集群A | 数据库1、数据库2、数据库3 |
存储集群B | 数据库4、数据库5、数据库6 |
存储集群C | 数据库7、数据库8、数据库9 |
表1
若一个数据存储请求中的存储数据库信息为数据库5,则通过查询上述数据库配置信息,可以确定存储数据库信息对应的目标存储集群为存储集群B。
需要说明的是,技术人员还可以根据实际需要选择其他方式确定目标存储集群,本申请实施例对此并不进行具体限定。例如,为了降低代理服务器的负载和数据库配置信息泄露风险,还可以将数据存储请求中的存储数据库信息发送至数据库配置服务器,由数据库配置服务器查询自身的数据库配置信息,确定对应的目标存储集群并返回查询结果。
步骤203,确定所述目标存储集群对应于消息队列中的目标消息主题。
具体实现过程可参见上述步骤103,本申请实施例不再赘述。
可选地,基于所述数据库配置信息,查询所述目标存储集群在所述消息队列中对应的目标消息主题。在确定出目标存储集群后,还可以继续通过上述数据库配置信息查询目标存储集群对应的目标消息主题,具体过程与查询目标存储集群的过程类似,本申请实施例不再赘述。
在本申请实施例中,可以将数据库配置信息存储在独立的数据库配置服务器中,不仅可以提升数据库配置信息的安全性,还能在不影响代理服务器工作进程的情况下对数据库配置服务器中的数据库配置信息进行调整,提升了系统维护的便利性。
可选地,为了提升系统的存储容量,可以对存储集群进行横向扩展,在系统中增加新的存储集群,相应的,新增存储集群时,可以在消费队列中新增该存储集群对应的消息主题。因此,在本申请实施例中,可以通过较为简单的方式对存储集群进行横向扩展,提升了扩展便利性。
步骤204,基于所述数据存储请求生成目标消息,将所述目标消息存储至所述目标消息主题中,并建立每个所述消费组与存储在所述目标消息主题中的目标消息之间的对应关系。
在本申请实施例中,由于目标存储集群可以包含多个集群存储节点,为了能够在每个集群存储节点中保存一份待存储数据,避免遗漏,在消息队列的消息主题中,还可以设置多个与集群存储节点具有一一对应关系的消费组,在目标消息主题中存储数据存储请求时,可以基于数据存储请求生成目标消息,并将目标消息存储至目标消息主题中,并建立每个消费组与存储在目标消息主题中的目标消息之间的对应关系。
在本申请实施例中,消费组是个逻辑概念,目标消息存储在消息中间件的磁盘上(即目标消息主题中),目标消息以消费组的形式去消费。目标消息存储在对应的主题中,主题依据分区进行存储写入磁盘。消费组是一个读的概念,即同一主题下的每个消费组读到的目标数据都是一致的,其读到的目标数据即为对应主题中的目标数据。
可选地,在消息队列存在于在独立的消息队列服务器的情况下,还可以向消息队列服务器发送数据存储请求,由消息队列服务器对数据存储请求中的存储数据库信息进行解析以确定出对应的目标消息主题,并将目标消息存储至目标消息主题中,并建立每个消费组与存储在目标消息主题中的目标消息之间的对应关系。
步骤205,消费所述消费组对应的目标消息,得到所述目标消息对应的数据存储请求。
在消费组中生成目标消息后,可以对消费组中的目标消息进行消费,从而得到目标消息中包含的数据存储请求。
具体地,可以以预设时间间隔,周期性向消息队列发送消息消费请求,以对消费队列中各个消费组中存在的消息进行消费。需要说明的是,为了降低代理服务器的复杂程度,可以通过轮询的方式消费消息队列中各个消费组中的消息,为了提升代理服务器的存储效率,也可以通过并行的方式同时对消息队列中的所有消费组进行消费,本申请实施例对此不做具体限定。
步骤206,将所述目标消息对应的数据存储请求,存储至所述消费组对应的目标集群存储节点中。
在本申请实施例中,由于对目标消息消费得到的数据存储请求中包含数据库信息,因此,可以基于该数据库信息,确定该数据库信息对应的目标存储集群,并基于该数据库信息对应的消费组,确定该消费组对应的目标集群存储节点,从而将该数据库信息存储至目标存储集群的目标集群存储节点中。
如图4所示,数据存储系统中还可以包含消息队列43,消息队列43由包含第一消息主题431和第二消息主题432,其中,第一消息主题431和第一存储集群44对应,第二消息主题432和第二存储集群45对应,第一消息主题431还可以包含第一消费组4311和第二消费组4312,其中,第一消费组4311和第一存储集群44的第一集群存储节点441对应,第二消费组4312和第一存储集群44的第二集群存储节点442对应。若数据代理服务器41接收到数据存储请求,该数据存储请求的存储数据库信息指示需要将待存储信息存储至第一存储集群44中,则可以在第一消费组4311和第二消费组4312中新增该数据存储请求对应的目标消息,对第一消费组4311中的目标消息进行消费后,可以将该数据存储请求中的待存储消息存储至第一集群存储节点441中,对第二消费组4312中的目标消息进行消费后,可以将该数据存储请求中的代存储消息存储至第二集群存储节点442中,以完成对数据存储请求的响应过程。其中,图4中的实线箭头表示代理服务器写入数据的方向,虚线箭头表示代理服务器读取数据的方向。
可选地,系统中可能存储在故障,导致无法完成存储,为了提升整个存储系统的容错率,还可以采用以下子步骤2061至子步骤2062的方式进行存储:
可选地,步骤206可以包括:
子步骤2061,在所述消费组对应的目标集群存储节点的节点状态为不可用状态的情况下,等待预设时间长度并重新从所述消费组中消费所述目标消息。
在本申请实施例中,每个集群存储节点都可以有其对应的节点状态,节点状态可以包含可用状态和不可用状态,节点状态可以由集群存储节点定期向代理服务器上报,也可以由代理服务器定期向各个集群存储点询问,还可以由存储集群收集其包含的各个集群存储节点的节点状态,并同步至代理服务器,本申请实施例对此并不进行具体限定,技术人员可以根据实际需要灵活选择节点状态的获取方式。
其中,集群存储节点处于不可用状态的原因可以是多种多样的,例如,集群存储节点无响应、集群存储节点离线、集群存储节点故障、集群存储节点忙碌等等,本申请实施例对此并不进行具体限定。
在从消费组中消费目标消息的过程中,若检测到该消费组对应的目标存储节点的节点状态为不可用状态,可以等待预设时间长度,再重新从消费组中消费目标消息。
子步骤2062,在所述消费组对应的目标集群存储节点的节点状态为可用状态的情况下,将所述待存储数据存储至所述消费组的目标数据库。
可选地,子步骤2062可以包括:
子步骤A1,在所述目标数据库中存储所述待存储数据成功的情况下,更新所述消费组对应的待消费偏移量,基于更新后的待消费偏移量对所述消费组中的消息进行消费。
在消息队列中,通常采用偏移量(offset)作为消息的标识,偏移量可以是一个无限长的数组,消息队列中每新增一条消息,可以将偏移量加1作为该消息的标识。在本申请实施例中,每个消费组都可以有各自对应的偏移量,以便对消费组中的消息进行标识和计数。举例来说,若消费组A的当前偏移量为100,此时在消费组A新增了一条目标消息,则该消费组A对应的当前偏移量可以更新为101,并采用最新的当前偏移量标记该目标消息。
若在目标数据库中存储待存储消息成功,则说明针对目标消息的消费已经完成,此时需要对消费组中下一条消息进行消费,则可以对待消费偏移量进行更新,以便通过更新后的待消费偏移量确定消费组中需要消费的消息。需要说明的是,消费组对应的待消费偏移量可以大于消费组对应的当前偏移量,以便能够在第一时间对消费组中新增消息进行消费。
子步骤A2,在所述目标数据库中存储所述待存储数据失败的情况下,等待预设时间长度并重新从所述消费组中消费所述目标消息。
在集群存储节点的存储状态可用的情况下,可能由于某些未能检测到的原因导致存储数据失败,例如,数据传输错误、集群存储节点发生磁盘错误等。此时可以等待预设时长并重新从消费组中消费目标消息。
具体地,若待存储数据的存储过程失败,则无需更新消费组对应的待消费偏移量,等待预设时间长度后,重新基于该待消费偏移量对该消费组中的消息进行消费即可。
可选地,在本申请实施例中,由于可以根据待消费偏移量对各个消费组中的消息进行消费,可以基于数据存储请求在各个消费组中新增消息,因此,消息的产生与消费过程可以独立进行,两者之间互不影响,基于此,各个消费组中的消息也可以由代理服务器之外的第三方进行新增,由代理服务对第三方在消费组中新增的消息进行消费,并在消费组对应的集群存储节点中存储相应的数据。也就是说,在本申请实施例中,用户除了可以通过数据存储请求的方式在集群中存储消息,还能够通过直接在消息队列中新增消息的方式,在集群中存储数据,使得整个存储方案具有较高的可拓展性。例如,可以将Flink作业场景直接与消息队列进行对接,由Flink在消息队列中直接添加由需要存储数据生成的消息,而无需再生成数据存储请求,提高了数据的存储效率。
综上,为本申请实施例提供的另一种集群数据存储方法,包括,获取数据存储请求,数据存储请求包括待存储数据和待存储数据对应的存储数据库信息;响应于数据存储请求,根据存储数据库信息确定目标存储集群;其中,目标存储集群包含多个集群存储节点;确定目标存储集群对应于消息队列中的目标消息主题,在目标消息主题中存储包含数据存储请求的目标消息;从目标消息主题中消费目标消息,将目标消息中的待存储数据存储至目标存储集群的所有集群存储节点中。能够先将待存储数据存储至消息队列中,再通过消费消息的方式,对待存储数据进行存储,避免了待存储数据在存储过程中丢失的问题,提升了数据存储的安全性,并且能够将待存储数据存储至存储集群的多个集群存储节点中,实现了待存储数据的多副本保存,进一步提升了数据存储的安全性。此外,还由于消息队列通常具有较高的吞吐速率,当数据存储请求的产生量超过整个存储集群的处理能力时,可以在消息队列中暂存数据存储请求,能够提升系统处理数据存储请求的能力。
在本申请实施例中,通过可以通过上述步骤在存储集群中存储数据,对于已经存储的数据,可以通过以下步骤进行查询,参照图5,图5是本申请实施例提供的一种集群数据查询方法的步骤流程图,如图5所示,该方法包括:
步骤301,获取数据查询请求;其中,所述数据查询请求包括查询语句和所述查询语句对应的查询数据库信息。
其中,查询语句包括但不限于查询关键词、查询特征等。查询数据库信息用于指示所要查询的数据库。
步骤302,基于所述查询数据库信息确定待查询存储集群。
在接收到数据查询请求后,可以根据查询数据库信息匹配对应的待查询存储集群。具体地,可以基于数据库配置信息匹配查询数据库对应的待查询存储集群。此步骤与上述步骤102和步骤202,本申请实施例不再赘述。
需要说明的是,可以在未能匹配到查询数据库对应的待查询存储集群的情况下,结束数据查询请求,并向用户反馈待查询存储集群不存在的错误提示。
步骤303,基于所述查询语句对所述待查询存储集群进行查询,得到查询结果。
可选地,步骤303可以包括:
子步骤3031,从所述待查询存储集群的所有集群存储节点中,随机选取待查询节点。
在本申请实施例中,由于待查询存储集群包含多个集群存储节点,且每个集群存储节点存储相同的数据,为了确保待查询存储集群在面对大量数据查询请求时,能够将数据查询请求均匀地分配至各个集群存储节点,可以针对每个数据查询请求,从待查询存储集群的所有集群存储节点中,随机选取一个待查询节点用于响应一个数据查询请求。
可选地,由于待查询存储集群中的集群存储节点可能处于不可用状态,因此,为了提升系统的稳定性,可以采用子步骤B1至子步骤B3的方式,随机从待查询存储集群中确定待查询节点。
可选地,子步骤3031可以包括:
子步骤B1,从所述待查询存储集群的所有集群存储节点中,随机选取第一集群存储节点。
子步骤B2,在所述第一集群存储节点的节点状态为不可用状态的情况下,从所述待查询存储集群的所有集群存储节点中,随机选取第二集群存储节点。
子步骤B3,在所述第二集群存储节点的节点状态为可用状态的情况下,将所述第二集群存储节点确定为所述待查询节点。
需要说明的是,根据实际情况,上述子步骤B1至子步骤B3还可以继续进行扩展,例如,在第二集群存储节点的节点状态同样为不可用状态的情况下,还可以继续随机选取第三集群存储节点,依此类推。
子步骤3032,基于所述查询语句对所述待查询节点进行查询,得到所述查询结果。
在本申请实施例中,确定出需要查询的待查询节点后,可以向待查询节点发送数据查询请求,以使目标存储节点基于数据查询请求中的查询语句,对数据查询请求中查询数据库信息所指示的数据库进行查询,并返回查询结果。代理服务器获取到数据库返回的查询结果后,可以向数据查询请求对应的用户返回该查询结果。
综上,为本申请实施例提供的一种集群数据查询方法,包括:获取数据存储请求,数据存储请求包括待存储数据和待存储数据对应的存储数据库信息;响应于数据存储请求,根据存储数据库信息确定目标存储集群;其中,目标存储集群包含多个集群存储节点;确定目标存储集群对应于消息队列中的目标消息主题,在目标消息主题中存储包含数据存储请求的目标消息;从目标消息主题中消费目标消息,将目标消息中的待存储数据存储至目标存储集群的所有集群存储节点中。
与上述本申请的集群数据存储方法实施例所提供的方法相对应,参见图6,本申请还提供了一种集群数据存储装置结构图,在本实施例中,该装置包括:
获取模块501,用于获取数据存储请求,所述数据存储请求包括待存储数据和所述待存储数据对应的存储数据库信息;
存储集群模块502,用于响应于所述数据存储请求,根据所述存储数据库信息确定目标存储集群;其中,所述目标存储集群包含多个集群存储节点;
消息主题模块503,用于确定所述目标存储集群对应于消息队列中的目标消息主题,在所述目标消息主题中存储包含所述数据存储请求的目标消息;
存储模块504,用于从所述目标消息主题中消费所述目标消息,将所述目标消息中的待存储数据存储至所述目标存储集群的所有集群存储节点中。
在一种可选实施方式中,所述存储集群模块包括:
配置信息子模块,用于从数据库配置服务器获取数据库配置信息;其中,所述数据库配置信息包含数据库与存储集群之间的对应关系,以及存储集群与消息队列中数据消息主题之间的对应关系;
存储集群子模块,用于基于所述数据库配置信息,查询所述存储数据库信息对应的目标存储集群;
所述消息主题模块包括:
消息主题子模块,用于基于所述数据库配置信息,查询所述目标存储集群在所述消息队列中对应的目标消息主题。
在一种可选实施方式中,所述目标消息主题包含多个消费组,所述消费组与所述集群存储节点具有一一对应关系,所述消息主题模块包括:
目标消息存储模块,用于基于所述数据存储请求生成目标消息,将所述目标消息存储至所述目标消息主题中,并建立每个所述消费组与存储在所述目标消息主题中的目标消息之间的对应关系。
在一种可选实施方式中,所述存储模块包括:
消费子模块,用于消费所述消费组对应的目标消息,得到所述目标消息对应的数据存储请求;
存储子模块,用于将所述目标消息对应的数据存储请求,存储至所述消费组对应的目标集群存储节点中。
在一种可选实施方式中,所述存储子模块包括:
第一存储子模块,用于在所述消费组对应的目标集群存储节点的节点状态为不可用状态的情况下,等待预设时间长度并重新从所述消费组中消费所述目标消息;
第二存储子模块,用于在所述消费组对应的目标集群存储节点的节点状态为可用状态的情况下,将所述待存储数据存储至所述消费组的目标数据库。
在一种可选实施方式中,所述第二存储子模块包括:
偏移量更新子模块,用于在所述目标数据库中存储所述待存储数据成功的情况下,更新所述消费组对应的待消费偏移量,基于更新后的待消费偏移量对所述消费组中的消息进行消费;
重复消费子模块,用于在所述目标数据库中存储所述待存储数据失败的情况下,等待预设时间长度并重新从所述消费组中消费所述目标消息。
在一种可选实施方式中,所述装置还包括:
查询获取模块,用于获取数据查询请求;其中,所述数据查询请求包括查询语句和所述查询语句对应的查询数据库信息;
待查询存储集群模块,用于基于所述查询数据库信息确定待查询存储集群;
查询模块,用于基于所述查询语句对所述待查询存储集群进行查询,得到查询结果。
在一种可选实施方式中,所述查询模块包括:
待查询节点子模块,用于从所述待查询存储集群的所有集群存储节点中,随机选取待查询节点;
查询结果子模块,用于基于所述查询语句对所述待查询节点进行查询,得到所述查询结果。
在一种可选实施方式中,所述待查询节点子模块包括:
第一集群存储节点子模块,用于从所述待查询存储集群的所有集群存储节点中,随机选取第一集群存储节点;
第二集群存储节点子模块,用于在所述第一集群存储节点的节点状态为不可用状态的情况下,从所述待查询存储集群的所有集群存储节点中,随机选取第二集群存储节点;
待查询节点确定子模块,用于在所述第二集群存储节点的节点状态为可用状态的情况下,将所述第二集群存储节点确定为所述待查询节点。
综上,本申请实施例提供的一种集群数据存储装置,包括:获取模块,用于获取数据存储请求,数据存储请求包括待存储数据和待存储数据对应的存储数据库信息;存储集群模块,用于响应于数据存储请求,根据存储数据库信息确定目标存储集群;其中,目标存储集群包含多个集群存储节点;消息主题模块,用于确定目标存储集群对应于消息队列中的目标消息主题,在目标消息主题中存储包含数据存储请求的目标消息;存储模块,用于从目标消息主题中消费目标消息,将目标消息中的待存储数据存储至目标存储集群的所有集群存储节点中。能够先将待存储数据存储至消息队列中,再通过消费消息的方式,对待存储数据进行存储,避免了待存储数据在存储过程中丢失的问题,提升了数据存储的安全性,并且能够将待存储数据存储至存储集群的多个集群存储节点中,实现了待存储数据的多副本保存,进一步提升了数据存储的安全性。此外,还由于消息队列通常具有较高的吞吐速率,当数据存储请求的产生量超过整个存储集群的处理能力时,可以在消息队列中暂存数据存储请求,能够提升系统处理数据存储请求的能力。
图7是本申请一个实施例的电子设备600的逻辑框图。例如,电子设备600可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
参照图7,电子设备600可以包括以下一个或多个组件:处理组件602,存储器604,电力组件606,多媒体组件608,音频组件610,输入/输出(I/O)的接口612,传感器组件614,以及通信组件616。
处理组件602通常控制电子设备600的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件602可以包括一个或多个处理器620来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件602可以包括一个或多个模块,便于处理组件602和其他组件之间的交互。例如,处理组件602可以包括多媒体模块,以方便多媒体组件608和处理组件602之间的交互。
存储器604用于存储各种类型的数据以支持在电子设备600的操作。这些数据的示例包括用于在电子设备600上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器604可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
电源组件606为电子设备600的各种组件提供电力。电源组件606可以包括电源管理系统,一个或多个电源,及其他与为电子设备600生成、管理和分配电力相关联的组件。
多媒体组件608包括在所述电子设备600和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。若屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的分界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件608包括一个前置摄像头和/或后置摄像头。当电子设备600处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
音频组件610用于输出和/或输入音频信号。例如,音频组件610包括一个麦克风(MIC),当电子设备600处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器604或经由通信组件616发送。在一些实施例中,音频组件610还包括一个扬声器,用于输出音频信号。
I/O接口612为处理组件602和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件614包括一个或多个传感器,用于为电子设备600提供各个方面的状态评估。例如,传感器组件614可以检测到电子设备600的打开/关闭状态,组件的相对定位,例如所述组件为电子设备600的显示器和小键盘,传感器组件614还可以检测电子设备600或电子设备600一个组件的位置改变,用户与电子设备600接触的存在或不存在,电子设备600方位或加速/减速和电子设备600的温度变化。传感器组件614可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件614还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件614还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
通信组件616用于便于电子设备600和其他设备之间有线或无线方式的通信。电子设备600可以接入基于通信标准的无线网络,如WiFi,运营商网络(如2G、3G、4G或5G),或它们的组合。在一个示例性实施例中,通信组件616经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件616还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在示例性实施例中,电子设备600可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于实现本申请实施例提供的一种集群数据存储方法。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器604,上述指令可由电子设备600的处理器620执行以完成上述方法。例如,所述非临时性存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
图8是本申请一个实施例的电子设备700的逻辑框图。例如,电子设备700可以被提供为一服务器。参照图8,电子设备700包括处理组件722,其进一步包括一个或多个处理器,以及由存储器732所代表的存储器资源,用于存储可由处理组件722的执行的指令,例如应用程序。存储器732中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件722被配置为执行指令,以执行本申请实施例提供的一种集群数据存储方法。
电子设备700还可以包括一个电源组件726被配置为执行电子设备700的电源管理,一个有线或无线网络接口750被配置为将电子设备700连接到网络,和一个输入输出(I/O)接口758。电子设备700可以操作基于存储在存储器732的操作系统,例如WindowsServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM或类似。
本申请实施例还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现所述的集群数据存储方法。
本领域技术人员在考虑说明书及实践这里公开的申请后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。
Claims (12)
1.一种集群数据存储方法,其特征在于,所述方法包括:
获取数据存储请求,所述数据存储请求包括待存储数据和所述待存储数据对应的存储数据库信息;
响应于所述数据存储请求,根据所述存储数据库信息确定目标存储集群;其中,所述目标存储集群包含多个集群存储节点;
确定所述目标存储集群对应于消息队列中的目标消息主题,在所述目标消息主题中存储包含所述数据存储请求的目标消息;
从所述目标消息主题中消费所述目标消息,将所述目标消息中的待存储数据存储至所述目标存储集群的所有集群存储节点中。
2.根据权利要求1所述的方法,其特征在于,所述根据所述存储数据库信息确定目标存储集群,包括:
从数据库配置服务器获取数据库配置信息;其中,所述数据库配置信息包含数据库与存储集群之间的对应关系,以及存储集群与消息队列中数据消息主题之间的对应关系;
基于所述数据库配置信息,查询所述存储数据库信息对应的目标存储集群;
所述确定所述目标存储集群对应于消息队列中的目标消息主题,包括:
基于所述数据库配置信息,查询所述目标存储集群在所述消息队列中对应的目标消息主题。
3.根据权利要求1所述的方法,其特征在于,所述目标消息主题包含多个消费组,所述消费组与所述集群存储节点具有一一对应关系,所述在所述目标消息主题中存储包含所述数据存储请求的目标消息,包括:
基于所述数据存储请求生成目标消息,将所述目标消息存储至所述目标消息主题中,并建立每个所述消费组与存储在所述目标消息主题中的目标消息之间的对应关系。
4.根据权利要求3所述的方法,其特征在于,所述从所述目标消息主题中消费所述目标消息,将所述目标消息中的待存储数据存储至所述目标存储集群的所有集群存储节点中,包括:
消费所述消费组对应的目标消息,得到所述目标消息对应的数据存储请求;
将所述目标消息对应的数据存储请求,存储至所述消费组对应的目标集群存储节点中。
5.根据权利要求4所述的方法,其特征在于,所述将所述目标消息对应的数据存储请求,存储至所述消费组对应的目标集群存储节点中,包括:
在所述消费组对应的目标集群存储节点的节点状态为不可用状态的情况下,等待预设时间长度并重新从所述消费组中消费所述目标消息;
在所述消费组对应的目标集群存储节点的节点状态为可用状态的情况下,将所述待存储数据存储至所述消费组的目标数据库。
6.根据权利要求5所述的方法,其特征在于,所述将所述待存储数据存储至所述消费组的目标数据库,包括:
在所述目标数据库中存储所述待存储数据成功的情况下,更新所述消费组对应的待消费偏移量,基于更新后的待消费偏移量对所述消费组中的消息进行消费;
在所述目标数据库中存储所述待存储数据失败的情况下,等待预设时间长度并重新从所述消费组中消费所述目标消息。
7.根据权利要求1-6任一项所述的方法,其特征在于,所述方法还包括:
获取数据查询请求;其中,所述数据查询请求包括查询语句和所述查询语句对应的查询数据库信息;
基于所述查询数据库信息确定待查询存储集群;
基于所述查询语句对所述待查询存储集群进行查询,得到查询结果。
8.根据权利要求7所述的方法,其特征在于,所述基于所述查询语句对所述待查询存储集群进行查询,得到查询结果,包括:
从所述待查询存储集群的所有集群存储节点中,随机选取待查询节点;
基于所述查询语句对所述待查询节点进行查询,得到所述查询结果。
9.根据权利要求8所述的方法,其特征在于,所述从所述待查询存储集群的所有集群存储节点中,随机选取待查询节点,包括:
从所述待查询存储集群的所有集群存储节点中,随机选取第一集群存储节点;
在所述第一集群存储节点的节点状态为不可用状态的情况下,从所述待查询存储集群的所有集群存储节点中,随机选取第二集群存储节点;
在所述第二集群存储节点的节点状态为可用状态的情况下,将所述第二集群存储节点确定为所述待查询节点。
10.一种集群数据存储装置,其特征在于,所述装置包括:
获取模块,用于获取数据存储请求,所述数据存储请求包括待存储数据和所述待存储数据对应的存储数据库信息;
存储集群模块,用于响应于所述数据存储请求,根据所述存储数据库信息确定目标存储集群;其中,所述目标存储集群包含多个集群存储节点;
消息主题模块,用于确定所述目标存储集群对应于消息队列中的目标消息主题,在所述目标消息主题中存储包含所述数据存储请求的目标消息;
存储模块,用于从所述目标消息主题中消费所述目标消息,将所述目标消息中的待存储数据存储至所述目标存储集群的所有集群存储节点中。
11.一种电子设备,其特征在于,包括:处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如权利要求1至9中任一项所述的方法。
12.一种计算机可读存储介质,其特征在于,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行如权利要求1至9中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310229012.0A CN116383199A (zh) | 2023-03-07 | 2023-03-07 | 一种集群数据存储方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310229012.0A CN116383199A (zh) | 2023-03-07 | 2023-03-07 | 一种集群数据存储方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116383199A true CN116383199A (zh) | 2023-07-04 |
Family
ID=86966538
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310229012.0A Pending CN116383199A (zh) | 2023-03-07 | 2023-03-07 | 一种集群数据存储方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116383199A (zh) |
-
2023
- 2023-03-07 CN CN202310229012.0A patent/CN116383199A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110515709B (zh) | 任务调度系统、方法、装置、电子设备及存储介质 | |
WO2020192311A1 (zh) | 主从服务器切换方法、装置、电子设备及存储介质 | |
US20220256008A1 (en) | Method and Apparatus for Selecting Information Pushed-To Terminal | |
US9807218B2 (en) | Method for filtering spam in electronic device and the electronic device | |
CN107370772B (zh) | 账号登录方法、装置及计算机可读存储介质 | |
US10931755B2 (en) | Method and apparatus for managing a shared storage system | |
CN104660685A (zh) | 设备信息获取方法及装置 | |
CN112331202B (zh) | 一种语音投屏方法及装置、电子设备和计算机可读存储介质 | |
CN113220482A (zh) | 调用请求处理方法、装置、电子设备及存储介质 | |
CN112671897B (zh) | 分布式系统的访问方法、装置、存储介质、设备和产品 | |
CN113946443A (zh) | 边缘设备管理及主动注册方法、装置和电子设备 | |
CN107463419B (zh) | 应用重启方法、装置及计算机可读存储介质 | |
CN113111123A (zh) | 集群业务的调用方法、装置、电子设备、存储介质及产品 | |
CN111241134B (zh) | 一种数据处理方法及装置 | |
CN110795314B (zh) | 一种检测慢节点的方法、装置及计算机可读存储介质 | |
CN110908814A (zh) | 消息处理方法、装置、电子设备及存储介质 | |
CN116383199A (zh) | 一种集群数据存储方法、装置、电子设备及存储介质 | |
CN116248483A (zh) | 一种节点异常熔断方法、装置、电子设备及存储介质 | |
CN115794853A (zh) | 政务数据资源目录的更新方法、装置、电子设备及介质 | |
CN113067757B (zh) | 信息发送和存储方法、装置和介质 | |
CN114066370A (zh) | 库存服务调用方法、装置、设备、存储介质及程序产品 | |
CN113407316A (zh) | 服务调度方法、装置、电子设备及存储介质 | |
CN114237497B (zh) | 一种分布式存储方法及装置 | |
CN110716985B (zh) | 一种节点信息处理方法、装置及介质 | |
CN116909760B (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 |