CN111338821A - 一种实现数据负载均衡的方法、系统及电子设备 - Google Patents
一种实现数据负载均衡的方法、系统及电子设备 Download PDFInfo
- Publication number
- CN111338821A CN111338821A CN202010117062.6A CN202010117062A CN111338821A CN 111338821 A CN111338821 A CN 111338821A CN 202010117062 A CN202010117062 A CN 202010117062A CN 111338821 A CN111338821 A CN 111338821A
- Authority
- CN
- China
- Prior art keywords
- key information
- consistent
- module
- partition
- reading
- 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
- 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
- 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/5083—Techniques for rebalancing the load in a distributed system
-
- 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
Abstract
本发明涉及一种实现数据负载均衡的方法、系统及电子设备,通过提取各消息中相应的的关键信息和内容,然后将各关键信息插入分布式消息队列中,将各关键信息与各相应的内容插入至分布式内存数据库(DMDB),实现了各处理进程间的数据负载均衡,最后通过读取分布式消息队列中各关键信息,相应地从分布式内存数据库中读取各相应的内容进行处理,即通过结合分布式消息队列(KAFKA)和分布式内存数据库(DMDB),保证各进程之间数据负载均衡,进而保证处理单元具有高性能的处理能力。
Description
技术领域
本发明涉及通信领域,尤其涉及一种实现数据负载均衡的方法、系统及电子设备。
背景技术
随着电信支撑系统的云化,电信支撑系统的处理能力趋于集群化,其中,每个处理单元由具备相同能力的处理进程完成,通过大并发达到高速数据处理的目的,目前,各个处理进程之间通过分布式消息队列(KAFKA)中的生产者-消费者的队列协同来进行数据负载,在数据安全级别较低时,分布式消息队列(KAFKA)的数据负载的性能较好,但是在安全级别较高或进行高速数据处理时,分布式消息队列容易出现队列不协同以使数据负载不均衡,从而导致处理单元的处理能力发生异常。
因此如何实现各个处理进程之间数据负载均衡是亟待解决的技术问题。
发明内容
本发明所要解决的技术问题是针对现有技术的不足,提供了一种实现数据负载均衡的方法、系统及电子设备。
本发明的一种实现数据负载均衡的方法的技术方案如下:
S1、接收多个消息,并提取每个消息中的关键信息和内容;
S2、将各所述关键信息按照时间顺序插入分布式消息队列中,并将各所述关键信息和与每个关键信息相应的内容插入至分布式内存数据库;
S3、读取所述分布式消息队列中多个第一关键信息,根据各所述第一关键信息从所述分布式内存数据库中读取到相一致的各第二关键信息,然后读取所述相一致的第二关键信息的相应的内容。
本发明的一种实现数据负载均衡的方法的有益效果如下:
通过提取各消息中相应的的关键信息和内容,然后将各关键信息插入分布式消息队列中,将各关键信息与各相应的内容插入至分布式内存数据库(DMDB),实现了各处理进程间的数据负载均衡,最后通过读取分布式消息队列中各关键信息,相应地从分布式内存数据库中读取各相应的内容进行处理,即通过结合分布式消息队列(KAFKA)和分布式内存数据库(DMDB),保证各进程之间数据负载均衡,进而保证处理单元具有高性能的处理能力。
在上述方案的基础上,本发明的一种实现数据负载均衡的方法还可以做如下改进。
进一步,还包括如下步骤:
S10、每间隔预设时间段在所述分布式内存数据库设置第一表和第二表,按照时间顺序将所述提取的各所述关键信息与各相应的内容插入至所第一表内;
S11、根据各所述第一关键信息从所述第一表中读取到相一致的各第二关键信息,然后读取各相应的内容,并将所述相一致的第二关键信息插入所述第二表内;
S12、每间隔所述预设时间段判断所述第一表与所述第二表中的关键信息是否相同;若否,则对所述第一表中存在且尚未在所述第二表中读取到的关键信息重新进行处理;若是,删除所述第一表和所述第二表。
采用上述进一步方案的有益效果是:通过校验第一表和第二表是否一致,能准确地判断出在高速数据处理时即对消息进行高速处理时是否发生异常,并作出相应的处理。
进一步,采用trunck方式删除所述第一表和所述第二表。
采用上述进一步方案的有益效果是:分布式内存数据库(DMDB)的删除(DELETE)性能较低,通过trunck方式来删除第一表和第二表,进一步提高了处理单元的处理能力。
进一步,还包括如下步骤:所述分布式内存数据库中包括多个分区,每间隔所述预设时间段在各所述分区中分别生成每个分区的第一表和第二表。
进一步,还包括如下步骤:
S100、根据各所述第一关键信息,从第一个分区的第一表中读取相一致的第三关键信息和与所述相一致的第三关键信息的相应的内容,并将每个所述相一致的第三关键信息插入所述分布式消息队列的中间件和所述第一个分区的第二表中,将每个所述相一致的第三关键信息和与每个所述相一致的第三关键信息相应的内容插入第二个分区的第一表中;
S110、根据所述第一个中间件中的每个第三关键信息,从第二个分区的第一表中读取相一致的第四关键信息和与所述相一致的第四关键信息的相应的内容;并将每个所述相一致的第四关键信息插入所述分布式消息队列中的另外一个中间件中和所述第二个分区的第二表中,将每个所述相一致的第四关键信息和与每个所述相一致的第四关键信息相应的内容插入第三个分区的第一表中;
S120、对其余的分区重复执行S100和S110。
采用上述进一步方案的有益效果是:实现所接收的消息在不同的分区之间进行传递。
本发明的一种实现数据负载均衡的系统的技术方案如下:
包括接收提取模块、插入模块和处理模块;
所述接收提取模块用于接收多个消息,并提取每个消息中的关键信息和内容;
所述插入模块用于将各所述关键信息按照时间顺序插入分布式消息队列中,并将各所述关键信息和与每个关键信息相应的内容插入至分布式内存数据库;
所述读取模块用于读取所述分布式消息队列中的多个第一关键信息,根据各所述第一关键信息从所述分布式内存数据库中读取到相一致的各第二关键信息,然后读取所述相一致的第二关键信息的相应的内容。
本发明的一种实现数据负载均衡的系统的有益效果如下:
接收提取模块通过提取各消息中相应的的关键信息和内容,然后通过插入模块将各关键信息插入分布式消息队列中,将各关键信息与各相应的内容插入至分布式内存数据库(DMDB),实现了各处理进程间的数据负载均衡,最后读取模块通过读取分布式消息队列中各关键信息,相应地从分布式内存数据库中读取各相应的内容进行处理,即通过结合分布式消息队列(KAFKA)和分布式内存数据库(DMDB),保证各进程之间数据负载均衡,进而保证处理单元具有高性能的处理能力。
在上述方案的基础上,本发明的一种实现数据负载均衡的系统还可以做如下改进。
进一步,每间隔预设时间段,所述生成模块在所述分布式内存数据库设置第一表和第二表,所述插入模块按照时间顺序将所述提取的各所述关键信息与各相应的内容插入至所第一表内;
所述读取模块根据各所述第一关键信息从所述第一表中对应读取相一致的各关键信息,然后读取各相应的内容,并通过所述插入模块将已读取的关键信息插入所述第二表内;
所述判断模块用于每间隔所述预设时间段判断所述第一表与所述第二表中的关键信息是否相同;若否,则对所述第一表中存在且尚未在所述第二表中读取到的关键信息重新进行处理;若是,删除所述第一表和所述第二表。
采用上述进一步方案的有益效果是:判断模块通过校验第一表和第二表是否一致,能准确地判断出在高速数据处理时即对消息进行高速处理时是否发生异常,并作出相应的处理。
进一步,还包括trunck模块,所述trunck模块采用trunck方式删除所述第一表和所述第二表。
采用上述进一步方案的有益效果是:分布式内存数据库(DMDB)的删除(DELETE)性能较低,通过trunck方式来删除第一表和第二表,进一步提高了处理单元的处理能力。
进一步,所述分布式内存数据库中包括多个分区,所述生成模块每间隔所述预设时间段在各所述分区中分别生成每个分区的第一表和第二表。
进一步,所述读取模块根据各所述第一关键信息,从第一个分区的第一表中读取相一致的第三关键信息和与所述相一致的第三关键信息的相应的内容,并通过所述插入模块将每个所述相一致的第三关键信息插入所述分布式消息队列的中间件和所述第一个分区的第二表中,将每个所述相一致的第三关键信息和与每个所述相一致的第三关键信息相应的内容插入第二个分区的第一表中;
所述读取模块根据所述第一个中间件中的每个第三关键信息,从第二个分区的第一表中读取相一致的第四关键信息和与所述相一致的第四关键信息的相应的内容;并通过所述插入模块将每个所述相一致的第四关键信息插入所述分布式消息队列中的另外一个中间件中和所述第二个分区的第二表中,将每个所述相一致的第四关键信息和与每个所述相一致的第四关键信息相应的内容插入第三个分区的第一表中
以此类推,所述读取模块和插入模块对其余的分区重复进行操作。
采用上述进一步方案的有益效果是:实现所接收的消息在不同的分区之间进行传递。
本发明的一种电子设备的技术方案为:包括存储器、处理器及存储在所述存储器上并在所述处理器上运行的程序,所述处理器执行所述程序时实现上述任一项所述的一种实现数据负载均衡的方法的步骤。
本发明的一种电子设备的有益效果是:通过提取各消息中相应的的关键信息和内容,然后将各关键信息插入分布式消息队列中,将各关键信息与各相应的内容插入至分布式内存数据库(DMDB),实现了各处理进程间的数据负载均衡,最后通过读取分布式消息队列中各关键信息,相应地从分布式内存数据库中读取各相应的内容进行处理,即通过结合分布式消息队列(KAFKA)和分布式内存数据库(DMDB),保证各进程之间数据负载均衡,进而保证处理单元具有高性能的处理能力。
附图说明
图1为本发明实施例的一种实现数据负载均衡的方法的流程示意图;
图2为本发明实施例一种实现数据负载均衡的方法的逻辑示意图;
图3为本发明实施例的一种实现数据负载均衡的系统的结构示意图;
具体实施方式
如图1所示,本发明实施例的一种实现数据负载均衡的方法,包括如下步骤:
S1、接收多个消息,并提取每个消息中的关键信息和内容;
S2、将各关键信息按照时间顺序插入分布式消息队列中,并将各关键信息和与每个关键信息相应的内容插入至分布式内存数据库;
S3、读取分布式消息队列中多个第一关键信息,根据各第一关键信息从分布式内存数据库中读取到相一致的各第二关键信息,然后读取相一致的第二关键信息的相应的内容通过提取各消息中相应的的关键信息和内容,然后将各关键信息插入分布式消息队列中,将各关键信息与各相应的内容插入至分布式内存数据库(DMDB),实现了各处理进程间的数据负载均衡,最后通过读取分布式消息队列中各关键信息,相应地从分布式内存数据库中读取各相应的内容进行处理,即通过结合分布式消息队列(KAFKA)和分布式内存数据库(DMDB),保证各进程之间数据负载均衡,进而保证处理单元具有高性能的处理能力。
其中,关键信息可为按照时间顺序人为设定的序号,也可为消息的关键字。
较优地,在上述技术方案中,进一步,还包括如下步骤:
S10、每间隔预设时间段在分布式内存数据库设置第一表和第二表,按照时间顺序将提取的各关键信息与各相应的内容插入至所第一表内;
S11、根据各第一关键信息从第一表中读取到相一致的各第二关键信息,然后读取各相应的内容,并将相一致的第二关键信息插入第二表内;
S12、每间隔预设时间段判断第一表与第二表中的关键信息是否相同;若否,则对第一表中存在且尚未在第二表中读取到的关键信息重新进行处理;若是,删除第一表和第二表。
通过校验第一表和第二表中的关键信息是否一致,能准确地判断出在高速数据处理时即对消息进行高速处理时是否发生异常,并作出相应的处理。
其中,第一表和第二表的分区设计一致,可通过封装的函数来实现上述步骤,具体地:
1)设置名称为Producer的函数,Producer将各关键信息发送至分布式消息队列(KAFKA),并将各关键信息和内容发送至第一表中;
2)设置名称为Consumer的函数,Consumer读取分布式消息队列(KAFKA)中的各关键信息即各第一关键信息,例如,此时读取到的第一关键信息为第一条关键信息,根据第一条关键信息从第一表中读取相一致的第二关键信息,也就是在第一表中也会检索到第一条关键信息,由于第一表中还存储了第一条关键信息相对应的第一条内容,所以,进而读取到第一条内容,对第一条内容进行处理后,Consumer会将第一条关键信息发送至第二表,以此类推,按照时间顺序,依次进行读取和处理。
其中,可设置预设时间段为10分钟,在初始时刻即零时刻,生成第一表和第二表,假设在10分钟内,详细地:
1)若在第一表中的第二关键信息有600条,在第二表中的第二关键信息有599条,则表示存在尚未读取到的消息,进一步假设确定出第二表中缺少第300条消息所对应的关键信息,则将第300条消息进行重新处理;
2)若在第一表中的第二关键信息有600条,在第二表中的第二关键信息有600条,则不存在未处理的消息,则将删除第一表与第二表,降低数据负载,使其处于高性能状态。
3)若超过10分钟,在第一表中的第二关键信息有600条,在第二表中的第二关键信息有599条,则表示存在尚未读取到的消息,进一步假设确定出第二表中缺少第300条消息所对应的关键信息,则将第300条消息进行重新处理;
4)若超过10分钟,在第一表中的第二关键信息有600条,在第二表中的第二关键信息有599条,则表示存在尚未读取到的消息,则所有消息进行重新处理;
其中,可将预设时间段设置3分钟、5分钟等,预设时间段可理解为:第一表与第二表的有效时间,当每个预设时间段终止时,第一表与第二表均失效,重新生成新的第一表与第二表。
另外,可生成多个不同表名的第一表,将接收的消息的数量存储在不同的第一表中,如设置第090000个至第090959个消息发送表名为“090000-090959”的第一表,设置第091000个至第091959个消息发送表名为“091000-091959”的第一表,根据不同的关键信息,可根据第一表的表名查找到不同的第一表,然后进行消息处理。
较优地,在上述技术方案中,还包括如下步骤:采用trunck方式删除第一表和第二表,由于分布式内存数据库(DMDB)的删除(DELETE)性能较低,通过trunck方式来删除第一表和第二表,进一步提高了处理单元的处理能力。
在另外一个实施例中,每间隔预设时间段判定第一表与第二表中的关键信息相同时,利用trunck方式删除第一表和第二表。
较优地,在上述技术方案中,还包括:分布式内存数据库包括多个主题,每间隔预设时间段,在各主题中生成第一表和第二表。在不同的主题中均生成第一表和第二表,进一步提高提高了处理单元的处理能力,详细地:
例如,分布式内存数据库包括两个主题,分别记为第一主题和第二主题,在第一主题中生成第一表和第二表,在第二主题中生成第二表,若接收的消息为两个类型时,分别记为第一类型和第二类型,继续假设第一类型与第一主题相对应,第二类型与第二主题相对应,那么:
将第一类型中的各消息与第一主题中的第一表和第二表进行上述处理过程,将第二类型中的各消息与与第二主题中的第一表和第二表进行上述处理过程。
较优地,在上述技术方案中,还包括如下步骤:分布式内存数据库中包括多个分区,每间隔预设时间段在各分区中分别生成每个分区的第一表和第二表。
较优地,在上述技术方案中,还包括如下步骤:
S100、根据各第一关键信息,从第一个分区的第一表中读取相一致的第三关键信息和与相一致的第三关键信息的相应的内容,并将每个相一致的第三关键信息插入分布式消息队列的中间件和第一个分区的第二表中,将每个相一致的第三关键信息和与每个相一致的第三关键信息相应的内容插入第二个分区的第一表中;
S110、根据第一个中间件中的每个第三关键信息,从第二个分区的第一表中读取相一致的第四关键信息和与相一致的第四关键信息的相应的内容;并将每个相一致的第四关键信息插入分布式消息队列中的另外一个中间件中和第二个分区的第二表中,将每个相一致的第四关键信息和与每个相一致的第四关键信息相应的内容插入第三个分区的第一表中;
S120、对其余的分区重复执行S100和S110。
在另外一个实施例进行阐述,如图2所示,具体地:
PROXY表示代理服务器,PA表示协议适配器,RF表示计费引擎,在分布式内存数据库中设置与PA相对应的第一分区,和设置与RF相对应的第二分区,在第一分区中设置与PA相对应地第一表和第二表,分别标记为A-PA和B-PA;在第二分区中设置与RF相对应地第一表和第二表,分别标记为A-RF和B-RF,其中,PROXY和外部网元可通过socket通信方式接收消息和返回应答消息,在PROXY接收消息后进入电信业务支撑系统,那么:
PROXY接收来自外部网元的消息,记为计费消息,提取计费消息的关键信息和内容,分别标记为计费关键信息和计费内容,PROXY把计费关键信息输入到分布式消息队列,且PROXY把计费关键信息和计费内容输入分布式内存数据库的A-PA中,其中,分发的路由通过分布式消息队列的broken即缓存代理不同取值区分;
首先,PA通过读分布式消息队列中的计费关键信息即第一关键信息,并根据计费关键信息,读取分布式内存数据库的A-PA的计费信息,也就是从第一分区的第一表中读取相一致的第三关键信息和与相一致的第三关键信息的相应的内容,然后将已处理的计费关键信息和计费信息存入下一个环节即存入A-RF中,也就是将每个相一致的第三关键信息插入分布式消息队列的中间件和第一个分区的第二表中,并将已处理的计费关键信息存入到分布式消息队列的中间件中,并把已处理的计费关键信息存入B-PA,也就是将每个相一致的第三关键信息和与每个相一致的第三关键信息相应的内容插入第二分区的第一表中;
然后,RF通过读分布式消息队列的中间件中的计费关键信息,并根据中间件中的计费关键信息,读取分布式内存库的A-RF的计费信息,也就是根据第一个中间件中的每个第三关键信息,从第二分区的第一表中读取相一致的第四关键信息和与相一致的第四关键信息的相应的内容,把已处理的计费关键信息即第四关键信息存入到分布式内存库的表B-RF中,也就是并将每个相一致的第四关键信息插入分布式消息队列中的另外一个中间件中和第二分区的第二表中,由此实现计费消息的传递即从PA传递到RF,可再设置其它的适配器等,将每个相一致的第四关键信息和与每个相一致的第四关键信息相应的内容插入下一个分区的第一表中,依此类图,实现消息的传递;
其中,通过比较A-PA和B-PA比较中的计费关键信息是否相同,A-RF和B-RF中的计费关键信息是否相同,然后再进行删除或重新处理等操作;
若计费消息至RF后,不需再向下一个环节传递时,也就是说,计费消息经RF后已处理完毕,则通过PROXY向外部网元返回应答消息,表示该计费消息已处理。
以PROXY和PA之间的交互为例再进一步进行阐述:
首先,PROXY接收外部网元所发送的计费消息后,提取计费消息的计费关键信息和计费消息,将计费关键信息插入分布式消息队列中,将计费关键信息和计费消息插入A-PA中;
其次,PA作为消息消费者,读取分布式消息队列中的计费关键信息,根据计费关键信息读取A-PA中的计费消息,每处理完一条计费消息,PA把计费关键信息插入到表B-PA中,然后将消息传给下一个环节,即传递到RF中。
如图3所示,本发明实施例的一种实现数据负载均衡的系统200,包括接收提取模块210、插入模块220和处理模块;
接收提取模块210用于接收多个消息,并提取每个消息中的关键信息和内容;
插入模块220用于将各关键信息按照时间顺序插入分布式消息队列中,并将各关键信息和与每个关键信息相应的内容插入至分布式内存数据库;
读取模块230用于读取分布式消息队列中的多个第一关键信息,根据各第一关键信息从分布式内存数据库中读取到相一致的各第二关键信息,然后读取相一致的第二关键信息的相应的内容。
接收提取模块210通过提取各消息中相应的的关键信息和内容,然后通过插入模块220将各关键信息插入分布式消息队列中,将各关键信息与各相应的内容插入至分布式内存数据库(DMDB),实现了各处理进程间的数据负载均衡,最后读取模块230通过读取分布式消息队列中各关键信息,相应地从分布式内存数据库中读取各相应的内容进行处理,即通过结合分布式消息队列(KAFKA)和分布式内存数据库(DMDB),保证各进程之间数据负载均衡,进而保证处理单元具有高性能的处理能力。
较优地,在上述技术方案中,每间隔预设时间段,生成模块在分布式内存数据库设置第一表和第二表,插入模块220按照时间顺序将提取的各关键信息与各相应的内容插入至所第一表内;
读取模块230根据各第一关键信息从第一表中对应读取相一致的各关键信息,然后读取各相应的内容,并通过插入模块220将已读取的关键信息插入第二表内;
判断模块用于每间隔预设时间段判断第一表与第二表中的关键信息是否相同;若否,则对第一表中存在且尚未在第二表中读取到的关键信息重新进行处理;若是,删除第一表和第二表。
判断模块通过校验第一表和第二表是否一致,能准确地判断出在高速数据处理时即对消息进行高速处理时是否发生异常,并作出相应的处理。
较优地,在上述技术方案中,还包括trunck模块,trunck模块采用trunck方式删除第一表和第二表。
分布式内存数据库(DMDB)的删除(DELETE)性能较低,通过trunck方式来删除第一表和第二表,进一步提高了处理单元的处理能力。
较优地,在上述技术方案中,还包括:每间隔预设时间段,trunck模块判定第一表与第二表中的关键信息相同时,采用trunck方式删除第一表和第二表。
较优地,在上述技术方案中,还包括,分布式内存数据库中包括多个分区,生成模块每间隔预设时间段在各分区中分别生成每个分区的第一表和第二表。
较优地,在上述技术方案中,读取模块230根据各第一关键信息,从第一个分区的第一表中读取相一致的第三关键信息和与相一致的第三关键信息的相应的内容,并通过插入模块220将每个相一致的第三关键信息插入分布式消息队列的中间件和第一个分区的第二表中,将每个相一致的第三关键信息和与每个相一致的第三关键信息相应的内容插入第二个分区的第一表中;
读取模块230根据第一个中间件中的每个第三关键信息,从第二个分区的第一表中读取相一致的第四关键信息和与相一致的第四关键信息的相应的内容;并通过插入模块220将每个相一致的第四关键信息插入分布式消息队列中的另外一个中间件中和第二个分区的第二表中,将每个相一致的第四关键信息和与每个相一致的第四关键信息相应的内容插入第三个分区的第一表中
以此类推,读取模块230和插入模块220对其余的分区重复进行操作。实现所接收的消息在不同的分区之间进行传递。
上述关于本发明的一种实现数据负载均衡的系统200中的各参数和各个单元模块实现相应功能的步骤,可参考上文中关于一种实现数据负载均衡的方法的实施例中的各参数和步骤,在此不做赘述。
本发明的一种电子设备,包括存储器、处理器及存储在存储器上并在处理器上运行的程序,处理器执行程序时实现上述任一实施例中的一种实现数据负载均衡的方法的步骤。
通过提取各消息中相应的的关键信息和内容,然后将各关键信息插入分布式消息队列中,将各关键信息与各相应的内容插入至分布式内存数据库(DMDB),实现了各处理进程间的数据负载均衡,最后通过读取分布式消息队列中各关键信息,相应地从分布式内存数据库中读取各相应的内容进行处理,即通过结合分布式消息队列(KAFKA)和分布式内存数据库(DMDB),保证各进程之间数据负载均衡,进而保证处理单元具有高性能的处理能力。
其中,电子设备可以选用电脑、手机等,相对应地,其程序为电脑软件或手机APP等。
且上述关于本发明的一种电子设备中的各参数和步骤,可参考上文中关于一种实现数据负载均衡的实施例中的各参数和步骤,在此不做赘述。
在本发明中,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (10)
1.一种实现数据负载均衡的方法,其特征在于,包括如下步骤:
S1、接收多个消息,并提取每个消息中的关键信息和内容;
S2、将各所述关键信息按照时间顺序插入分布式消息队列中,并将各所述关键信息和与每个关键信息相应的内容插入至分布式内存数据库;
S3、读取所述分布式消息队列中多个第一关键信息,根据各所述第一关键信息从所述分布式内存数据库中读取到相一致的各第二关键信息,然后读取所述相一致的第二关键信息的相应的内容。
2.根据权利要求1所述的一种实现数据负载均衡的方法,其特征在于,还包括如下步骤:
S10、每间隔预设时间段在所述分布式内存数据库设置第一表和第二表,按照时间顺序将所述提取的各所述关键信息与各相应的内容插入至所第一表内;
S11、根据各所述第一关键信息从所述第一表中读取到相一致的各第二关键信息,然后读取各相应的内容,并将所述相一致的第二关键信息插入所述第二表内;
S12、每间隔所述预设时间段判断所述第一表与所述第二表中的关键信息是否相同;若否,则对所述第一表中存在且尚未在所述第二表中读取到的关键信息重新进行处理;若是,删除所述第一表和所述第二表。
3.根据权利要求2所述的一种实现数据负载均衡的方法,其特征在于,采用trunck方式删除所述第一表和所述第二表。
4.根据权利要2或3所述的一种实现数据负载均衡的方法,其特征在于,还包括如下步骤:
所述分布式内存数据库中包括多个分区,每间隔所述预设时间段在各所述分区中分别生成每个分区的第一表和第二表。
5.根据权利要求4所述的一种实现数据负载均衡的方法,其特征在于,还包括如下步骤:
S100、根据各所述第一关键信息,从第一个分区的第一表中读取相一致的第三关键信息和与所述相一致的第三关键信息的相应的内容,并将每个所述相一致的第三关键信息插入所述分布式消息队列的中间件和所述第一个分区的第二表中,将每个所述相一致的第三关键信息和与每个所述相一致的第三关键信息相应的内容插入第二个分区的第一表中;
S110、根据所述第一个中间件中的每个第三关键信息,从第二个分区的第一表中读取相一致的第四关键信息和与所述相一致的第四关键信息的相应的内容;并将每个所述相一致的第四关键信息插入所述分布式消息队列中的另外一个中间件中和所述第二个分区的第二表中,将每个所述相一致的第四关键信息和与每个所述相一致的第四关键信息相应的内容插入第三个分区的第一表中;
S120、对其余的分区重复执行S100和S110。
6.一种实现数据负载均衡的系统,其特征在于,包括接收提取模块、插入模块和处理模块;
所述接收提取模块用于接收多个消息,并提取每个消息中的关键信息和内容;
所述插入模块用于将各所述关键信息按照时间顺序插入分布式消息队列中,并将各所述关键信息和与每个关键信息相应的内容插入至分布式内存数据库;
所述读取模块用于读取所述分布式消息队列中的多个第一关键信息,根据各所述第一关键信息从所述分布式内存数据库中读取到相一致的各第二关键信息,然后读取所述相一致的第二关键信息的相应的内容。
7.根据权利要求6所述的一种实现数据负载均衡的系统,其特征在于,还包括生成模块和判断模块,
每间隔预设时间段,所述生成模块在所述分布式内存数据库设置第一表和第二表,所述插入模块按照时间顺序将所述提取的各所述关键信息与各相应的内容插入至所第一表内;
所述读取模块根据各所述第一关键信息从所述第一表中对应读取相一致的各关键信息,然后读取各相应的内容,并通过所述插入模块将已读取的关键信息插入所述第二表内;
所述判断模块用于每间隔所述预设时间段判断所述第一表与所述第二表中的关键信息是否相同;若否,则对所述第一表中存在且尚未在所述第二表中读取到的关键信息重新进行处理;若是,删除所述第一表和所述第二表。
8.根据权利要求7所述的一种实现数据负载均衡的系统,其特征在于,还包括:
所述分布式内存数据库中包括多个分区,每间隔所述预设时间段在各所述分区中分别生成每个分区的第一表和第二表。
9.根据权利要求8所述的一种实现数据负载均衡的系统,其特征在于,
所述读取模块根据各所述第一关键信息,从第一个分区的第一表中读取相一致的第三关键信息和与所述相一致的第三关键信息的相应的内容,并通过所述插入模块将每个所述相一致的第三关键信息插入所述分布式消息队列的中间件和所述第一个分区的第二表中,将每个所述相一致的第三关键信息和与每个所述相一致的第三关键信息相应的内容插入第二个分区的第一表中;
所述读取模块根据所述第一个中间件中的每个第三关键信息,从第二个分区的第一表中读取相一致的第四关键信息和与所述相一致的第四关键信息的相应的内容;并通过所述插入模块将每个所述相一致的第四关键信息插入所述分布式消息队列中的另外一个中间件中和所述第二个分区的第二表中,将每个所述相一致的第四关键信息和与每个所述相一致的第四关键信息相应的内容插入第三个分区的第一表中;
以此类推,所述读取模块和插入模块对其余的分区重复进行操作。
10.一种电子设备,包括存储器、处理器及存储在所述存储器上并在所述处理器上运行的程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至5任一项所述的一种实现数据负载均衡的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010117062.6A CN111338821B (zh) | 2020-02-25 | 2020-02-25 | 一种实现数据负载均衡的方法、系统及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010117062.6A CN111338821B (zh) | 2020-02-25 | 2020-02-25 | 一种实现数据负载均衡的方法、系统及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111338821A true CN111338821A (zh) | 2020-06-26 |
CN111338821B CN111338821B (zh) | 2023-04-07 |
Family
ID=71183670
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010117062.6A Active CN111338821B (zh) | 2020-02-25 | 2020-02-25 | 一种实现数据负载均衡的方法、系统及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111338821B (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040153511A1 (en) * | 2001-01-02 | 2004-08-05 | Tony Maynard | Exchanging electronic messages between a host computer system and a distributed computer system |
US7315903B1 (en) * | 2001-07-20 | 2008-01-01 | Palladia Systems, Inc. | Self-configuring server and server network |
CN104346401A (zh) * | 2013-08-08 | 2015-02-11 | 中国电信股份有限公司 | 云管理平台中各组件间消息转发的方法与装置 |
CN105574054A (zh) * | 2014-11-06 | 2016-05-11 | 阿里巴巴集团控股有限公司 | 一种分布式缓存范围查询方法、装置及系统 |
CN106453564A (zh) * | 2016-10-18 | 2017-02-22 | 北京京东尚科信息技术有限公司 | 弹性云分布式海量请求处理的方法、装置及系统 |
KR20180058880A (ko) * | 2016-11-24 | 2018-06-04 | (주)케이아이엔엑스 | 오픈스택 기반의 분산 클라우드 데이터센터 환경에서 메시지 큐 부하 분산 및 성능 최적화 방법 |
CN109257320A (zh) * | 2017-07-13 | 2019-01-22 | 北京京东尚科信息技术有限公司 | 消息存储方法和装置 |
KR20190011353A (ko) * | 2017-07-24 | 2019-02-07 | 주식회사 닷넷소프트 | 빅데이터로서 사용을 위해 데이터를 수집, 처리, 변환 및 저장하는 시스템 |
CN110083616A (zh) * | 2019-04-19 | 2019-08-02 | 深圳前海微众银行股份有限公司 | 页面数据处理方法、装置、设备及计算机可读存储介质 |
CN110427307A (zh) * | 2019-06-21 | 2019-11-08 | 平安科技(深圳)有限公司 | 日志解析方法、装置、计算机设备及存储介质 |
-
2020
- 2020-02-25 CN CN202010117062.6A patent/CN111338821B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040153511A1 (en) * | 2001-01-02 | 2004-08-05 | Tony Maynard | Exchanging electronic messages between a host computer system and a distributed computer system |
US7315903B1 (en) * | 2001-07-20 | 2008-01-01 | Palladia Systems, Inc. | Self-configuring server and server network |
CN104346401A (zh) * | 2013-08-08 | 2015-02-11 | 中国电信股份有限公司 | 云管理平台中各组件间消息转发的方法与装置 |
CN105574054A (zh) * | 2014-11-06 | 2016-05-11 | 阿里巴巴集团控股有限公司 | 一种分布式缓存范围查询方法、装置及系统 |
CN106453564A (zh) * | 2016-10-18 | 2017-02-22 | 北京京东尚科信息技术有限公司 | 弹性云分布式海量请求处理的方法、装置及系统 |
KR20180058880A (ko) * | 2016-11-24 | 2018-06-04 | (주)케이아이엔엑스 | 오픈스택 기반의 분산 클라우드 데이터센터 환경에서 메시지 큐 부하 분산 및 성능 최적화 방법 |
CN109257320A (zh) * | 2017-07-13 | 2019-01-22 | 北京京东尚科信息技术有限公司 | 消息存储方法和装置 |
KR20190011353A (ko) * | 2017-07-24 | 2019-02-07 | 주식회사 닷넷소프트 | 빅데이터로서 사용을 위해 데이터를 수집, 처리, 변환 및 저장하는 시스템 |
CN110083616A (zh) * | 2019-04-19 | 2019-08-02 | 深圳前海微众银行股份有限公司 | 页面数据处理方法、装置、设备及计算机可读存储介质 |
CN110427307A (zh) * | 2019-06-21 | 2019-11-08 | 平安科技(深圳)有限公司 | 日志解析方法、装置、计算机设备及存储介质 |
Non-Patent Citations (4)
Title |
---|
CAO NGUYEN,等: "A Case Study of Leveraging High-Throughput Distributed Message Queue System for Many-Task Computing on Hadoop" * |
DIBYAJYOTI GUHA, 等: "Load balancing using past information of queue" * |
王帅: "呼叫中心即时消息子系统的设计与实现" * |
王群峰: "基于分布式Kafka队列和流计算集群的铁道供电监控实时处理研究" * |
Also Published As
Publication number | Publication date |
---|---|
CN111338821B (zh) | 2023-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102769687B (zh) | 信息群发系统及方法 | |
CN104065540A (zh) | 一种数据监控系统和方法 | |
EP2741217A1 (en) | Database synchronization | |
CN111400407A (zh) | 数据的同步方法及装置、存储介质及电子装置 | |
CN113391979A (zh) | 监控数据展示的处理方法、设备、系统及存储介质 | |
CN107870982A (zh) | 数据处理方法、系统和计算机可读存储介质 | |
CN107066341B (zh) | 一种软件模块间的事件路由框架及方法 | |
US20200211027A1 (en) | Business rules processing framework | |
CN100359891C (zh) | 一种通过缓存提高多媒体消息中心业务处理性能的方法 | |
CN102421073B (zh) | 一种短信的处理方法和设备 | |
CN112860412B (zh) | 业务数据处理方法、装置、电子设备及存储介质 | |
CN111338821B (zh) | 一种实现数据负载均衡的方法、系统及电子设备 | |
CN108512943A (zh) | 基于消息队列的嵌入式设备数据保存系统及保存方法 | |
CN113783913A (zh) | 一种消息推送管理方法和装置 | |
CN105827739B (zh) | 联系人信息同步方法、装置、服务器及系统 | |
CN101729675B (zh) | 基于彩信业务的适配方法及适配器装置 | |
CN116016117A (zh) | 网络设备运维数据采集方法、系统、电子设备及存储介质 | |
CN109165259B (zh) | 基于网络附属存储的索引表更新方法、处理器及存储装置 | |
CN109669941A (zh) | 数据异步持久化方法、装置及计算机可读存储介质 | |
CN115766610A (zh) | 一种基于发布订阅的消息队列 | |
CN111258821B (zh) | 一种基于云计算的备份数据快速提取方法 | |
CN114500352A (zh) | 用于医疗物联网消息路由装置的插件热更新系统及方法 | |
CN110708676B (zh) | 一种s1口集群消息处理方法、网络节点及基站 | |
CN110019259B (zh) | 分布式索引服务引擎的数据更新方法、装置及存储介质 | |
JPS6319939A (ja) | 通信制御装置 |
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 |