CN113282604A - 基于消息队列实现的高可用时序数据库集群系统 - Google Patents
基于消息队列实现的高可用时序数据库集群系统 Download PDFInfo
- Publication number
- CN113282604A CN113282604A CN202110796937.4A CN202110796937A CN113282604A CN 113282604 A CN113282604 A CN 113282604A CN 202110796937 A CN202110796937 A CN 202110796937A CN 113282604 A CN113282604 A CN 113282604A
- Authority
- CN
- China
- Prior art keywords
- time sequence
- node
- database
- module
- data
- 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.)
- Granted
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/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
-
- 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/24552—Database cache management
-
- 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
- G06F16/24578—Query processing with adaptation to user needs using ranking
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- 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/547—Messaging middleware
-
- 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)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及一种基于消息队列实现的高可用时序数据库集群系统,属于数据库技术领域,其包括消息队列集群、连接器模块和时序数据库集群;连接器模块包括多个数据库连接器,每个数据库连接器均与消息队列集群连接;时序数据库集群包括与多个数据库连接器一一对应连接的多个时序数据库节点;消息队列集群用于接收并缓存数据生产者的时序数据;多个数据库连接器用于从消息队列集群中读取时序数据,并基于多个线程向多个时序数据库节点并行写入时序数据;发送写入失败信息的数据库连接器用于间隔第一预设时间向写入失败信息对应的时序数据库节点继续写入时序数据。本申请能满足时序数据库的高频并发写入和高水平横向集群化扩展能力。
Description
技术领域
本申请涉及数据库技术领域,尤其是涉及一种基于消息队列实现的高可用时序数据库集群系统。
背景技术
时序数据主要由电力行业、化工行业等各类型实时监测、检查与分析设备所采集、产生的数据。由于时序数据具有产生效率快、严重依赖于采集时间、测点多信息量大等特点,因此,需要一种能够对海量时序数据进行高效存储与快速处理的数据库系统,时序数据库应运而生。
专利公开号为CN111752758A的中国专利文献公开了一种双主架构的influxDB高可用系统,该系统利用访问模块将用户的写请求同时交给两个influxDB节点来保证数据库节点实时一致,采用交替发送读请求以实现负载均衡,提升查询性能,并利用监控容灾模块监控后端influxDB节点的可用状态,并向访问模块提供状态查询接口,当发现数据库存在延迟时自动将数据进行补齐。
但是,该系统采用交替发送写入请求给两个influxdb节点的方式并不适合高频并发写入的场景,数据写入模块可能成为系统瓶颈,同时如果两个主机节点均发生故障,新采集数据将永久丢失,该架构也不太具备水平横向集群化扩展的能力。
发明内容
为了满足时序数据库的高频并发写入和高水平横向集群化扩展能力,本申请提供一种基于消息队列实现的高可用时序数据库集群系统。
本申请提供的一种基于消息队列实现的高可用时序数据库集群系统,采用如下的技术方案:
一种基于消息队列实现的高可用时序数据库集群系统,包括消息队列集群、连接器模块和时序数据库集群;所述连接器模块包括多个数据库连接器,每个数据库连接器均与所述消息队列集群连接;所述时序数据库集群包括与所述多个数据库连接器一一对应连接的多个时序数据库节点;
所述消息队列集群用于接收并缓存数据生产者的时序数据;
所述多个数据库连接器用于从所述消息队列集群中读取所述时序数据,并基于多个线程向所述多个时序数据库节点并行写入所述时序数据;
发送写入失败信息的数据库连接器用于间隔第一预设时间向所述写入失败信息对应的时序数据库节点继续写入所述时序数据。
通过采用上述技术方案,引入消息队列集群用来缓存数据生产者发送的大量时序数据,即使在时序数据库集群中所有节点全部离线时,时序数据依然不会丢失,并且数据库多备份的方式可以提供快速水平横向扩展和容错处理;数据库连接器用于连接消息队列集群与时序数据库集群,在数据库连接器与时序数据库节点连接中断后可以无限次的重新连接,并且可以开启多个线程并行传输时序数据,满足高频并发写入的同时又不会因为大量的查询导致数据库故障而引发数据丢失。
可选的,所述数据库连接器包括:
偏移点更新模块,用于在向对应的时序数据库节点写入所述时序数据时实时更新读取所述时序数据的偏移点,并在所述对应的时序数据库节点离线时停止更新读取所述时序数据的偏移点;
断点续传模块,用于在所述对应的时序数据库节点重新上线时,基于所述对应的时序数据库节点离线时读取的所述时序数据的偏移点继续读取所述时序数据并写入所述对应的时序数据库节点。
通过采用上述技术方案,基于数据库连接器的重试机制,在时序数据库节点宕机、离线重连后,离线阶段的时序数据可以断点续传,能够自动恢复数据同步,避免了部分时序数据库节点宕机后出现的数据丢失情况,同时减少了时序数据库节点重新上线后需要人工干预进行数据同步的弊端,降低了运营维护的复杂度。
可选的,还包括监控容灾模块,每个数据库连接器以及每个时序数据库节点均与所述监控容灾模块连接;
所述监控容灾模块包括第一节点移除模块,所述第一节点移除模块用于接收所述数据库连接器发送的写入失败信息,并从当前可用节点列表中移除所述写入失败信息对应的时序数据库节点。
可选的,所述监控容灾模块还包括:
状态检测模块,用于间隔第二预设时间检测各时序数据库节点的状态是否为可用,若是则转入一致性检测模块,否则转入第二节点移除模块;
所述一致性检测模块,用于检测当前时序数据库节点与其他时序数据库节点的偏移点是否一致,若当前时序数据库节点的偏移点为最新偏移点,则转入节点增加模块,若当前时序数据库节点的偏移点落后于其他时序数据库节点的偏移点,则间隔第三预设时间重新检测当前时序数据库节点与其他时序数据库节点的偏移点是否一致;
所述节点增加模块,用于将当前时序数据库节点加入所述当前可用节点列表;
所述第二节点移除模块用于从所述当前可用节点列表中移除当前时序数据库节点。
通过采用上述技术方案,监控容灾模块能够实时监控多数据库节点的在线、离线情况,维护可用节点列表;对于重新上线的节点能够检查其数据同步的一致性,只有在数据同步到与其他节点一致时,才将其添加回当前可用节点列表,保证了对外提供的服务数据的完整性。
可选的,还包括负载均衡集群;所述负载均衡集群包括:
列表获取模块,用于响应于数据消费者发送的访问请求,从所述监控容灾模块中获取所述当前可用节点列表;
负载均衡模块,用于采用负载均衡算法从所述当前可用节点列表中选取负载压力最小的可用时序数据库节点作为最优时序数据库节点;
请求转发模块,用于向所述最优时序数据库节点转发所述访问请求;
数据转发模块,用于向所述数据消费者转发所述最优时序数据库节点返回的时序数据。
通过采用上述技术方案,负载均衡集群基于负载均衡算法计算各时序数据库节点的负载压力,从当前可用节点列表中选取处理当前数据请求的最优节点,从而达到负载均衡目的,提高数据服务器的利用效率,减少单节点因高负载导致的故障率;此外,由于负载均衡集群只处理请求转发与数据转发,因此具备支持水平扩展能力。
可选的,所述负载均衡模块包括:
权重比获取模块,用于获取预先设置的读写权重比以及所述当前可用节点列表中各可用时序数据库节点之间的节点权重比;
查询模块,用于查询所述各可用时序数据库节点的写入客户端数量和读取客户端数量;
计算模块,用于基于所述读写权重比、所述节点权重比、所述写入客户端数量和所述读取客户端数量计算所述各可用时序数据库节点的负载压力,将负载压力最小的可用时序数据库节点作为所述最优时序数据库节点。
可选的,对于可用时序数据库节点A和B,假设所述读写权重比为X1:X2,可用时序数据库节点A与B的节点权重比XA:XB,可用时序数据库节点A的读取客户端数量为YA和为写入客户端数量ZA,可用时序数据库节点B的读取客户端数量为YB和写入客户端数量为ZB,所述可用时序数据库节点A的负载压力为XA×(YA×X1+ZA×X2),所述可用时序数据库节点B的负载压力为XB×(YB×X1+ZB×X2)。
可选的,所述节点权重比基于可用时序数据库节点的系统配置设置。
综上所述,本申请包括以下至少一种有益技术效果:
1.引入消息队列集群用来缓存数据生产者发送的大量时序数据,即使在时序数据库集群中所有节点全部离线时,时序数据依然不会丢失,并且数据库多备份的方式可以提供快速水平横向扩展和容错处理;数据库连接器用于连接消息队列集群与时序数据库集群,在数据库连接器与时序数据库节点连接中断后可以无限次的重新连接,并且可以开启多个线程并行传输时序数据,满足高频并发写入的同时又不会因为大量的查询导致数据库故障而引发数据丢失;
2.基于数据库连接器的重试机制,在时序数据库节点宕机、离线重连后,离线阶段的时序数据可以断点续传,能够自动恢复数据同步,避免了部分时序数据库节点宕机后出现的数据丢失情况,同时减少了时序数据库节点重新上线后需要人工干预进行数据同步的弊端,降低了运营维护的复杂度;
3.负载均衡集群基于负载均衡算法计算各时序数据库节点的负载压力,从当前可用节点列表中选取处理当前数据请求的最优节点,从而达到负载均衡目的,提高数据服务器的利用效率,减少单节点因高负载导致的故障率;此外,由于负载均衡集群只处理请求转发与数据转发,因此具备支持水平扩展能力。
附图说明
图1是本申请实施例提供的基于消息队列实现的高可用时序数据库集群系统的结构示意图。
图2是本申请实施例提供的监控容灾模块的结构示意图。
图3是本申请实施例提供的负载均衡集群的结构示意图。
附图标记说明:100、消息队列集群;200、连接器模块;300、时序数据库集群;400、监控容灾模块;410、第一节点移除模块;420、状态检测模块;430、一致性检测模块;440、节点增加模块;450、第二节点移除模块;500、负载均衡集群;510、列表获取模块;520、负载均衡模块;530、请求转发模块;540、数据转发模块;600、数据生产者;700、数据消费者。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的全部其他实施例,都属于本申请保护的范围。
目前,大多时序数据库并不提供高可用的集群版本,因此当存在大量并发写入时,单个实例的时序数据库可能因为同时要满足写入和查询需求导致数据库故障而引发数据丢失。
为解决上述问题,本申请实施例提供一种应用于工业物联网实时数据采集场景中的高可用时序数据库集群系统,其满足高频、高并发、低延迟的应用场景。
图1为本实施例提供的一种基于消息队列实现的高可用时序数据库集群系统的结构示意图。
如图1所示,一种基于消息队列实现的高可用时序数据库集群系统,包括消息队列集群100、连接器模块200和时序数据库集群300;连接器模块200包括多个数据库连接器,每个数据库连接器均与消息队列集群100连接;时序数据库集群300包括与多个数据库连接器一一对应连接的多个时序数据库节点。
本实施例中,消息队列集群100可由运行消息队列协议的主机或服务器节点构成,不同节点之间可同步队列结构和消息。
消息队列集群100接收并缓存数据生产者600的时序数据,其中,数据生产者600可以是用于监测工业生产线以及整个系统运行状态的设置于各关键点的各类监测设备、检查设备及分析设备。
系统中,不同进程的处理消息速度不同,消息队列可以实现不同进程之间的缓冲,也就是说,写入消息队列的速度可以尽可能地快,而处理消息的速度可以适当调快或调慢。如果一个进程崩溃,数据不会丢失,因为消息队列采用put-get-delete模式,只有当消息被完全处理后,才能从消息队列中移除该消息,并且,部分进程崩溃,不会拖累整个系统瘫痪,其他进程仍可以向消息队列中添加消息,并等待崩溃的进程恢复。
本实施例中,多个数据库连接器从消息队列集群100中读取时序数据,并基于多个线程向多个时序数据库节点并行写入时序数据,以实现时序数据的全写入。每个数据库连接器从消息队列中读取时序数据,并将读取的时序数据写入对应的时序数据库节点。如果在发起访问、数据写入过程中,时序数据库节点离线或宕机,则对应的数据库连接器均会写入消息失败。在间隔第一预设时间后,该数据库连接器会继续向对应的时序数据库写入时序数据,如果还是写入失败,则继续间隔第一预设时间执行写入操作。第一预设时间由系统预先设置,其具体数值可依据实际情况确定。
当时序数据库节点离线重连后,需要自动恢复离线阶段的数据同步,以实现各时序数据库节点的数据实时一致性。为实现这一功能,数据库连接器包括:偏移点更新模块,用于在向对应的时序数据库节点写入时序数据时实时更新读取时序数据的偏移点,并在对应的时序数据库节点离线时停止更新读取时序数据的偏移点;断点续传模块,用于在对应的时序数据库节点重新上线时,基于对应的时序数据库节点离线时读取的时序数据的偏移点继续读取时序数据并写入对应的时序数据库节点。
例如,三个数据库连接器从同一个消息队列中读取时序数据,分别向三个时序数据库节点写入该时序数据,每个数据库连接器均实时维护一个偏移点信息,第一个数据库连接器写入的偏移点是100,第二个、第三个数据库连接器写入的偏移点均是101,如果此时第一个数据库连接器写入失败,那么它的偏移点就是100,不会变,而第二个和第三个数据库连接器会继续写入消息,偏移点会一直向后更新。当第一个数据库连接器写入的时序数据库节点重新上线后,第一个数据库连接器会从100的位置开始处理数据,因此,数据不会丢失。
一些实施例中,如图1所示,该系统还包括监控容灾模块400,监控容灾模块400与各时序数据库节点分别连接,可定期获取各时序数据库节点的运行状态,并依据运行状态生成并更新当前可用节点列表,监控容灾模块400用于检测各个时序数据库节点的在线状态以及数据一致性水平。
具体的,如图2所示,监控容灾模块400包括状态检测模块420、一致性检测模块430、节点增加模块440和第二节点移除模块450。
状态检测模块420间隔第二预设时间检测各时序数据库节点的状态是否为可用,若否则由第二节点移除模块450从当前可用节点列表中移除当前时序数据库节点;若是则通过一致性检测模块430检测当前时序数据库节点与其他时序数据库节点的偏移点是否一致,若当前时序数据库节点的偏移点为最新偏移点,则节点增加模块440将当前时序数据库节点加入当前可用节点列表,若当前时序数据库节点的偏移点落后于其他时序数据库节点的偏移点,则由一致性检测模块430间隔第三预设时间重新检测当前时序数据库节点与其他时序数据库节点的偏移点是否一致,直到当前时序数据库节点与其他时序数据库节点的偏移点一致为止。第二预设时间、第三预设时间由系统预先设置,其具体数值可依据实际情况确定。
进一步地,如图1所示,监控容灾模块400还可以与各数据库连接器分别连接,可从数据库连接器中获取写入失败信息,然后通过其上的第一节点移除模块410从当前可用节点列表中移除写入失败信息对应的时序数据库节点。
当时序数据库节点离线、宕机时,监控容灾模块400可以及时从当前可用节点列表中剔除该节点,使得客户端访问请求被引流至其他时序数据库节点。当该节点重新上线后,监控容灾模块400检查其数据一致性情况,只有在符合一致性时,才将该节点增加到当前可用节点列表中。
该系统除了具有数据写入功能,还具有数据读取功能,而在数据读取过程中,需要考虑时序数据库集群300内的各节点的负载均衡问题。现有的时序数据库集群一般采用轮询的负载均衡算法,但其没有基于资源利用率,因此均衡效果不是很好。
一些实施例中,如图1所示,该系统还包括负载均衡集群500。如图3所示,负载均衡集群500包括:列表获取模块510,用于响应于数据消费者700发送的访问请求,从监控容灾模块400中获取当前可用节点列表;负载均衡模块520,用于采用负载均衡算法从当前可用节点列表中选取负载压力最小的可用时序数据库节点作为最优时序数据库节点;请求转发模块530,用于向最优时序数据库节点转发访问请求;数据转发模块540,用于向数据消费者700转发最优时序数据库节点返回的时序数据。
其中,数据消费者700可以是需要读取时序数据的手机、平板电脑等移动终端或者PC机、服务器等客户端。
负载均衡集群500检测各个时序数据库节点的负载压力,采用负载均衡算法选取服务压力较小节点,处理客户端读取请求,从而达到负载均衡目的,提高数据库服务器的利用效率,减少单节点因高负载导致的故障率。由于负载均衡集群500只处理请求转发与数据转发,因此其具备支持水平扩展能力。
优选的,本实施例根据节点权重比、读写客户端数量等因素设计负载均衡算法,以实现负载均衡目的。
具体的,负载均衡模块520包括:权重比获取模块,用于获取预先设置的读写权重比以及当前可用节点列表中各可用时序数据库节点之间的节点权重比;查询模块,用于查询各可用时序数据库节点的写入客户端数量和读取客户端数量;计算模块,用于基于读写权重比、节点权重比、写入客户端数量和读取客户端数量计算各可用时序数据库节点的负载压力,将负载压力最小的可用时序数据库节点作为最优时序数据库节点。
对于可用时序数据库节点A和B,假设读写权重比为X1:X2,可用时序数据库节点A与B的节点权重比XA:XB,可用时序数据库节点A的读取客户端数量为YA和为写入客户端数量ZA,可用时序数据库节点B的读取客户端数量为YB和写入客户端数量为ZB,可用时序数据库节点A的负载压力为XA×(YA×X1+ZA×X2),可用时序数据库节点B的负载压力为XB×(YB×X1+ZB×X2)。
可通过时序数据库节点的api查询节点运行状态、写入客户端数量、读取客户端数据以及消耗的时间等信息,再根据这些信息设置节点权重比、读写权重比。
本实施例中,节点权重比与可用时序数据库节点的系统配置相关。例如,时序数据库节点A是16核32G,而时序数据库节点B为8核16G,那么用户希望系统调度更倾向于分配至时序数据库节点A,因此将时序数据库节点A的权重设置的比时序数据库节点B高。
写操作比较简单,时序据进入内存,然后定时或者内存块满写入磁盘,因此时序数据写入压力不大,每秒可以达到数十万的负载能力。而读取一般是以周或者月甚至年来计算,其数据量非常大,读取会扫描多个文件加载大量数据进入内存,无论是耗时还是系统资源占用都比写操作多,因此时序数据库节点的内存和CPU压力主要是来自数据读取。所以,将读取的权重设置的比写入高。
例如,向时序数据库节点A写入时序数据的客户端数量为2个,从时序数据库节点A读取时序数据的客户端为20个;向时序数据库节点B写入时序数据的客户端数量为7个,从时序数据库节点B读取时序数据的客户端为10个;时序数据库节点A和B的节点权重比是1:1,读写权重比为3:1,通过上述公式进行计算,时序数据库节点A的得分是 2*1+20*3=62,时序数据库节点B的得分是7*1+10*3=37,因此,新的客户端访问请求会转给时序数据库节点B进行处理。
进一步地,在列表获取模块510获取当前可用节点列表时,监控容灾模块400更新当前可用节点列表,以保证列表获取模块510获取的当前可用节点列表是最新的,能够准确地对时序数据库集群300内的各节点的负载压力进行均衡调节,以提升整个时序数据库集群300的稳定性。
另外,需要理解的是,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或者操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的申请范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离前述申请构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中申请的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
Claims (9)
1.一种基于消息队列实现的高可用时序数据库集群系统,其特征在于,包括消息队列集群(100)、连接器模块(200)和时序数据库集群(300);所述连接器模块(200)包括多个数据库连接器,每个数据库连接器均与所述消息队列集群(100)连接;所述时序数据库集群(300)包括与所述多个数据库连接器一一对应连接的多个时序数据库节点;
所述消息队列集群(100)用于接收并缓存数据生产者(600)的时序数据;
所述多个数据库连接器用于从所述消息队列集群(100)中读取所述时序数据,并基于多个线程向所述多个时序数据库节点并行写入所述时序数据;
发送写入失败信息的数据库连接器用于间隔第一预设时间向所述写入失败信息对应的时序数据库节点继续写入所述时序数据。
2.根据权利要求1所述的系统,其特征在于,所述数据库连接器包括:
偏移点更新模块,用于在向对应的时序数据库节点写入所述时序数据时实时更新读取所述时序数据的偏移点,并在所述对应的时序数据库节点离线时停止更新读取所述时序数据的偏移点;
断点续传模块,用于在所述对应的时序数据库节点重新上线时,基于所述对应的时序数据库节点离线时读取的所述时序数据的偏移点继续读取所述时序数据并写入所述对应的时序数据库节点。
3.根据权利要求1或2所述的系统,其特征在于,还包括监控容灾模块(400),每个数据库连接器以及每个时序数据库节点均与所述监控容灾模块(400)连接;
所述监控容灾模块(400)包括第一节点移除模块(410),所述第一节点移除模块(410)用于接收所述数据库连接器发送的写入失败信息,并从当前可用节点列表中移除所述写入失败信息对应的时序数据库节点。
4.根据权利要求3所述的系统,其特征在于,所述监控容灾模块(400)还包括:
状态检测模块(420),用于间隔第二预设时间检测各时序数据库节点的状态是否为可用,若是则转入一致性检测模块(430),否则转入第二节点移除模块(450);
所述一致性检测模块(430),用于检测当前时序数据库节点与其他时序数据库节点的偏移点是否一致,若当前时序数据库节点的偏移点为最新偏移点,则转入节点增加模块(440),若当前时序数据库节点的偏移点落后于其他时序数据库节点的偏移点,则间隔第三预设时间重新检测当前时序数据库节点与其他时序数据库节点的偏移点是否一致;
所述节点增加模块(440),用于将当前时序数据库节点加入所述当前可用节点列表;
所述第二节点移除模块(450)用于从所述当前可用节点列表中移除当前时序数据库节点。
5.根据权利要求4所述的系统,其特征在于,还包括负载均衡集群(500);所述负载均衡集群(500)包括:
列表获取模块(510),用于响应于数据消费者(700)发送的访问请求,从所述监控容灾模块(400)中获取所述当前可用节点列表;
负载均衡模块(520),用于采用负载均衡算法从所述当前可用节点列表中选取负载压力最小的可用时序数据库节点作为最优时序数据库节点;
请求转发模块(530),用于向所述最优时序数据库节点转发所述访问请求;
数据转发模块(540),用于向所述数据消费者(700)转发所述最优时序数据库节点返回的时序数据。
6.根据权利要求5所述的系统,其特征在于,所述负载均衡模块(520)包括:
权重比获取模块,用于获取预先设置的读写权重比以及所述当前可用节点列表中各可用时序数据库节点之间的节点权重比;
查询模块,用于查询所述各可用时序数据库节点的写入客户端数量和读取客户端数量;
计算模块,用于基于所述读写权重比、所述节点权重比、所述写入客户端数量和所述读取客户端数量计算所述各可用时序数据库节点的负载压力,将负载压力最小的可用时序数据库节点作为所述最优时序数据库节点。
7.根据权利要求6所述的系统,其特征在于,对于可用时序数据库节点A和B,假设所述读写权重比为X1:X2,可用时序数据库节点A与B的节点权重比XA:XB,可用时序数据库节点A的读取客户端数量为YA和为写入客户端数量ZA,可用时序数据库节点B的读取客户端数量为YB和写入客户端数量为ZB,所述可用时序数据库节点A的负载压力为XA×(YA×X1+ZA×X2),所述可用时序数据库节点B的负载压力为XB×(YB×X1+ZB×X2)。
8.根据权利要求6所述的系统,其特征在于,所述节点权重比基于可用时序数据库节点的系统配置设置。
9.根据权利要求7所述的系统,其特征在于,所述节点权重比基于可用时序数据库节点的系统配置设置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110796937.4A CN113282604B (zh) | 2021-07-14 | 2021-07-14 | 基于消息队列实现的高可用时序数据库集群系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110796937.4A CN113282604B (zh) | 2021-07-14 | 2021-07-14 | 基于消息队列实现的高可用时序数据库集群系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113282604A true CN113282604A (zh) | 2021-08-20 |
CN113282604B CN113282604B (zh) | 2021-10-22 |
Family
ID=77286725
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110796937.4A Active CN113282604B (zh) | 2021-07-14 | 2021-07-14 | 基于消息队列实现的高可用时序数据库集群系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113282604B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114416737A (zh) * | 2022-01-04 | 2022-04-29 | 北京中电兴发科技有限公司 | 基于动态权重均衡时序数据库集群的时序数据存储方法 |
CN114629783A (zh) * | 2022-03-14 | 2022-06-14 | 上海英方软件股份有限公司 | 状态监控方法、系统、设备及计算机可读存储介质 |
CN114745387A (zh) * | 2022-04-20 | 2022-07-12 | 浙江立昂数智科技有限公司 | 一种多集群管控方法和系统 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103092532A (zh) * | 2013-01-21 | 2013-05-08 | 浪潮(北京)电子信息产业有限公司 | 一种集群存储系统的存储方法 |
CN107391600A (zh) * | 2017-06-30 | 2017-11-24 | 北京百度网讯科技有限公司 | 用于在内存中存取时序数据的方法和装置 |
CN107850882A (zh) * | 2015-08-07 | 2018-03-27 | 西门子公司 | 自动化和控制分布式数据管理系统 |
US20180322437A1 (en) * | 2017-05-08 | 2018-11-08 | Datapipe, Inc. | System and method for rapid and asynchronous multitenant telemetry collection and storage |
CN111090687A (zh) * | 2019-12-24 | 2020-05-01 | 腾讯科技(深圳)有限公司 | 数据处理方法及装置、系统、计算机可读存储介质 |
CN111177178A (zh) * | 2019-12-03 | 2020-05-19 | 腾讯科技(深圳)有限公司 | 一种数据处理方法及相关设备 |
CN111752758A (zh) * | 2020-07-01 | 2020-10-09 | 浪潮云信息技术股份公司 | 一种双主架构的InfluxDB高可用系统 |
CN112134909A (zh) * | 2019-06-24 | 2020-12-25 | 同方威视科技江苏有限公司 | 时序数据处理方法、装置、系统、服务器及可读存储介质 |
-
2021
- 2021-07-14 CN CN202110796937.4A patent/CN113282604B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103092532A (zh) * | 2013-01-21 | 2013-05-08 | 浪潮(北京)电子信息产业有限公司 | 一种集群存储系统的存储方法 |
CN107850882A (zh) * | 2015-08-07 | 2018-03-27 | 西门子公司 | 自动化和控制分布式数据管理系统 |
US20180322437A1 (en) * | 2017-05-08 | 2018-11-08 | Datapipe, Inc. | System and method for rapid and asynchronous multitenant telemetry collection and storage |
CN107391600A (zh) * | 2017-06-30 | 2017-11-24 | 北京百度网讯科技有限公司 | 用于在内存中存取时序数据的方法和装置 |
CN112134909A (zh) * | 2019-06-24 | 2020-12-25 | 同方威视科技江苏有限公司 | 时序数据处理方法、装置、系统、服务器及可读存储介质 |
CN111177178A (zh) * | 2019-12-03 | 2020-05-19 | 腾讯科技(深圳)有限公司 | 一种数据处理方法及相关设备 |
CN111090687A (zh) * | 2019-12-24 | 2020-05-01 | 腾讯科技(深圳)有限公司 | 数据处理方法及装置、系统、计算机可读存储介质 |
CN111752758A (zh) * | 2020-07-01 | 2020-10-09 | 浪潮云信息技术股份公司 | 一种双主架构的InfluxDB高可用系统 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114416737A (zh) * | 2022-01-04 | 2022-04-29 | 北京中电兴发科技有限公司 | 基于动态权重均衡时序数据库集群的时序数据存储方法 |
CN114416737B (zh) * | 2022-01-04 | 2022-08-05 | 北京中电兴发科技有限公司 | 基于动态权重均衡时序数据库集群的时序数据存储方法 |
CN114629783A (zh) * | 2022-03-14 | 2022-06-14 | 上海英方软件股份有限公司 | 状态监控方法、系统、设备及计算机可读存储介质 |
CN114629783B (zh) * | 2022-03-14 | 2024-03-26 | 上海英方软件股份有限公司 | 状态监控方法、系统、设备及计算机可读存储介质 |
CN114745387A (zh) * | 2022-04-20 | 2022-07-12 | 浙江立昂数智科技有限公司 | 一种多集群管控方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN113282604B (zh) | 2021-10-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113282604B (zh) | 基于消息队列实现的高可用时序数据库集群系统 | |
CN112860393B (zh) | 一种分布式任务调度方法及系统 | |
CN110795503A (zh) | 分布式存储系统的多集群数据同步方法及相关装置 | |
CN111198662B (zh) | 一种数据存储方法、装置和计算机可读存储介质 | |
CN111787055B (zh) | 一种基于Redis且面向事务机制和多数据中心的数据分发方法和系统 | |
CN111552701B (zh) | 确定分布式集群中数据一致性的方法及分布式数据系统 | |
CN114265753A (zh) | 消息队列的管理方法、管理系统和电子设备 | |
CN114020819A (zh) | 一种多系统参数同步方法及装置 | |
CN110661652A (zh) | 一种互联网设备连接及数据转发处理方法 | |
CN112437160B (zh) | 一种基于redis实现大文件实时传输处理方法及系统 | |
CN103338160B (zh) | 基于缓存队列的轮询业务的优化系统及优化方法 | |
CN112445809A (zh) | 一种分布式数据库节点存活状态检测模块及方法 | |
CN115729164B (zh) | 一种工业通信系统管理方法、装置及工业通信系统 | |
CN116540938A (zh) | 数据读取方法、装置、分布式存储系统、设备和存储介质 | |
CN114564458B (zh) | 集群间数据同步的方法、装置、设备和存储介质 | |
CN113268395B (zh) | 业务数据的处理方法、处理装置及终端 | |
CN111815449B (zh) | 一种基于流计算的多主机行情系统的异常检测方法及系统 | |
CN111752758B (zh) | 一种双主架构的InfluxDB高可用系统 | |
CN113434297A (zh) | 热点削峰方法、装置、存储服务器、客户端及存储介质 | |
CN112799835A (zh) | 一种分布式数据库系统元数据的处理方法及系统 | |
CN116016265B (zh) | 消息全链路监控方法、装置、系统、设备和存储介质 | |
CN117395263B (zh) | 一种数据同步方法、装置、设备和存储介质 | |
CN117827544B (zh) | 热备份系统、方法、电子设备及存储介质 | |
CN112306781B (zh) | 一种线程故障处理方法、装置、介质及设备 | |
CN115766498B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |