CN103049317B - 云环境下基于队列的高并发数据快速写入系统及方法 - Google Patents

云环境下基于队列的高并发数据快速写入系统及方法 Download PDF

Info

Publication number
CN103049317B
CN103049317B CN201310008606.5A CN201310008606A CN103049317B CN 103049317 B CN103049317 B CN 103049317B CN 201310008606 A CN201310008606 A CN 201310008606A CN 103049317 B CN103049317 B CN 103049317B
Authority
CN
China
Prior art keywords
queue
write
data
management
cloud environment
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.)
Active
Application number
CN201310008606.5A
Other languages
English (en)
Other versions
CN103049317A (zh
Inventor
王朝硕
周震震
高锡明
朱永虎
朱义
曾春
郭涑炜
邢春晓
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tsinghua University
Super High Transmission Co of China South Electric Net Co Ltd
Original Assignee
Tsinghua University
Super High Transmission Co of China South Electric Net Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tsinghua University, Super High Transmission Co of China South Electric Net Co Ltd filed Critical Tsinghua University
Priority to CN201310008606.5A priority Critical patent/CN103049317B/zh
Publication of CN103049317A publication Critical patent/CN103049317A/zh
Application granted granted Critical
Publication of CN103049317B publication Critical patent/CN103049317B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明公开了一种云环境下基于队列的高并发数据快速写入系统及方法,具体包括以下步骤:建立同步管理,使两台服务器具有相同的队列、配置,并且具有数据后备修复机制;配置管理,生成队列的基本属性,通过配置管理模块动态的增加或删除队列;队列管理,根据配置动态的完成对队列创建及生命周期的管理;写入操作,将各队列中的数据按优先级依次写入存储设备。采用本发明可以避免对磁盘和数据库的写竞争,避免死锁,由于本方法同时注意了灾备的考虑,不失为一种高效高并发数据写入的方法。

Description

云环境下基于队列的高并发数据快速写入系统及方法
技术领域
本发明涉及一种软件开发技术领域,尤其涉及的是一种云环境下基于队列的高并发数据快速写入系统及方法。
背景技术
近些年来,物联网的应用和大规模在线交易的出现,这些高并发轻量级任务的及时处理和响应是好的用户体验的基础。在处理这些交易数据,一方面要保证及时处理,另一方面也要保证数据的安全。通过在双机环境下利用队列技术,通过批量的写入技术达到高效处理高并发轻量级任务的能力,并且利用双机来达到灾备的目的。
本发明是在国家863计划项目基金资助下,在高并发开发领域,利用高速内存中的多队列技术,通过高速缓存,利用批写入技术,避免多个小任务的竞争写入磁盘技术,能够避免系统的死锁和崩溃。利用队列技术可以支持同步、异步和请求响应多个多并发任务。各个队列中的数据通过调度算法顺序写入硬盘。利用两个物理主机能够达到灾备的目的。
因此,现有技术还有待于改进和发展。
发明内容
本发明的目的在于提供一种云环境下基于队列的高并发数据快速写入系统及方法,旨在解决在云环境下高并发轻量级并发任务的数据快速写入的问题。
本发明的技术方案如下:
一种云环境下基于队列的高并发数据快速写入系统,其包括:
同步管理两台机器之间的数据一致的同步管理模块;
管理请求用户和内存队列的对应关系,队列的优先级,文件或数据库中数据要写入的配置及位置的配置管理模块;
根据配置文件初始化生成队列,管理队列的增长和回收机制的队列管理模块;
根据配置文件把队列中的数据根据优先级写入到文件或数据库中的写入模块。
所述的云环境下基于队列的高并发数据快速写入系统,其中,所述同步管理模块是通过同步机制使两台机器具有相同的队列、配置,并且具有数据后备修复机制。
所述的云环境下基于队列的高并发数据快速写入系统,其中,所述配置管理模块具有动态的增加或删除队列的功能。
所述的云环境下基于队列的高并发数据快速写入系统,其中,所述队列管理模块利用效率和可扩展性高的类或开源软件实现队列创建和管理。
所述的云环境下基于队列的高并发数据快速写入系统,其中,所述队列管理模块主要包括以下子模块:根据配置文件提供的类型来生成队列的队列生成子模块;把请求存储的数据放入高速内存队列缓存的队列数据写入子模块;在写入模块执行写入存储设备的操作时,从高速内存队列取出数据并删除的队列数据提取子模块;能够动态的添加队列的队列添加子模块,能删除废弃队列的队列删除子模块。
一种云环境下基于队列的高并发数据快速写入方法,其中,通过网络把包括计算资源、存储资源和网络端口资源的资源进行集中的池化管理,然后由主机再进行资源的虚拟分配,形成虚拟服务器,通过在每个服务器中按照配置在内存中设置队列,并安装有同步机制,当一台服务器收到数据写入请求,由其中一台自动同另一台同步数据,同步成功或写入成功向用户返回成功,否则为失败。
所述的云环境下基于队列的高并发数据快速写入方法,其中,具体包括以下步骤:
步骤S1:建立同步管理,使两台服务器具有相同的队列、配置,并且具有数据后备修复机制;
步骤S2:配置管理,生成队列的基本属性,通过配置管理模块动态的增加或删除队列;
步骤S3:队列管理,根据配置动态的完成对队列创建及生命周期的管理;
步骤S4:写入操作,将各队列中的数据按优先级依次写入存储设备。
所述的云环境下基于队列的高并发数据快速写入方法,其中,其写入操作按设定的时间间隔按块批量写入磁盘或盘阵。
所述的云环境下基于队列的高并发数据快速写入方法,其中,还通过按优先级循环选择内存中的队列,根据配置文件把队列中的数据读出,并批量写入到存储设备中,根据并发数据的数量和重要性设定不同的优先级。
本发明的有益效果:本发明通过使用内存中的队列作为缓存,在时间或队列中的排队数达到设定的阈值后进行批量写入,避免写入磁盘的竞争和死锁,大大提高了写入的速度。使用在云环境不同的两个机器,其中一个机器作为备份,这样可以避免一台机器出现异常而使数据丢失,大大提高数据写入的安全性。通过使用XML配置文件作为服务提供,可以对不同的数据源写入不同的格式和位置。这样可以提供给不同企业和应用使用。
本发明涉及云环境下高并发轻量级并发任务的数据快速写入技术,并且使用双机灾备技术来保证写入系统的可靠性和稳定性。它利用消息队列和Web服务技术,具有很强的可扩展性和实用性,对于高并发任务中的数据写入文件系统和数据库都有很好的适应。
附图说明
图1为本发明提供的方法流程图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。
参见图1,一种云环境下基于队列的高并发数据快速写入方法包括下述步骤:
步骤S1:建立同步管理,使两台服务器具有相同的队列、配置,并且具有数据后备修复机制;
步骤S2:配置管理,生成队列的基本属性,通过配置管理模块动态的增加或删除队列;
步骤S3:队列管理,根据配置动态的完成对队列创建及生命周期的管理;
步骤S4:写入操作,将各队列中的数据按优先级依次写入存储设备。
本发明提供的云环境下基于队列高并发数据快速写入方法是在两个物理主机或云数据中心中的两个虚拟机上,根据不同需求配置相应的内存和磁盘空间以便应对不同的高并发需求和数据快速写入和备份的目的。
通过网络把计算资源、存储资源和网络端口资源等进行集中的池化管理,然后由主机再进行资源的虚拟分配,形成虚拟服务器。通过在每个服务器中按照配置在内存中设置队列,队列的大小和增长方式在配置文件中规定。两台服务器中安装有同步机制,用户只需要向一台服务器发送数据写入请求,由其中一台自动同另一台同步数据,同步成功或写入成功向用户返回成功,否则为失败。
另外,其写入程序按一定的时间间隔批量写入磁盘或盘阵,由于按块批量写入存储设备,大大提高了写入效率,同时每次写入同一文件或数据库的数据,避免了写入竞争和死锁。
其中,两台物理主机,根据并发的多少可配置1-8G的内存,并配置相应大小的磁盘阵列,CPU速度在1GHz以上;或者在数据中心申请同样速度和大小的CPU,内存和存储的两台虚拟机。
在两台机器或虚拟机上安装相同的基础软件和配置文件,可以使用开源或商用的消息队列服务软件或开发自己的消息队列软件,配置文件主要包含以下内容:
1)用户名、密码;队列名、队列长度、写入间隔时间;是否写入文件以及写入文件的路径;
2)是否写入数据库:写入的数据库名,数据库配置:驱动、端口、用户和密码等;
3)两台机器配置相同的软件,为了达到备份的目的,配置同步机制,达到双方消息队列同步的目的,并提供统一的接口服务,让使用者感觉就像在操作一台机器一样。
本发明通过WEBService来提供统一的服务,用户通过验证来调用相应的服务,然后通过服务把数据存入相应的队列。
还通过按优先级循环选择内存中的队列,根据配置文件把队列中的数据读出,并批量写入到存储设备中。这样可以根据并发数据的数量和重要性采用不同的优先级,以不同的时间间隔来处理内存中的队列数据,既可以优先把最重要地数据优先写入,又可以优先选择写入高并发和数据量大的队列中的数据。这样可以避免大量的占用内存,造成内存泄露。
在双机环境下利用队列技术写入模型,实现对云环境的数据快速写入。利用内存作为缓存,在排队数达到设定的阈值后进行批量写入,避免写入磁盘的竞争和死锁。按一定的时间间隔批量写入磁盘或盘阵,由于按块批量写入存储设备,提高了写入效率。
本发明中进行配置的具体实施方式如下:
本发明优选实施例提供了一种基于队列的高并发数据快速写入系统,包括:用于同步管理两台机器之间的数据一致的同步管理模块;用于管理请求用户和内存队列的对应关系,队列的优先级,文件或数据库中数据要写入的配置及位置的配置管理模块;用于根据配置文件初始化生成队列,管理队列的增长和回收机制的队列管理模块和用于根据配置文件把队列中的数据根据优先级写入到文件或数据库中的写入模块。
所述同步管理模块主要为了灾备的目的,以防一台机器死机,数据写入错误或者不能使用。同步机制可以使两台机器具有相同的队列、配置,并且具有数据后备修复机制。一台机器死机后,另一台机器继续工作,死机的机器一旦修复完毕,启动同步管理机制,就可以把死机这段时间没有写入的数据同步过来,达到双方机器上存储装置内数据的一致。
所述配置管理模块主要负责要生成队列的基本属性设置,包括队列名、优先级、使用该队列的用户名和密码、队列对应写入的文件名、文件路径或数据库及相应的配置(数据库名、驱动类、数据库用户和密码、URL等)。通过这个模块可以动态的增加或删除队列,在需要时增加相应的队列来满足扩展的需要,在不需要时把对应的内存队列删除,减少对内存的占用。
所述队列管理模块主要根据配置动态的完成对队列创建及生命周期的管理。该模块可以自己利用编程语言来创建和管理这些队列,可以利用效率和可扩展性高的类来实现,如:ArrayList;也可以利用成熟开源软件来实现,如Mule或RabbitMQ等来实现,利用它们提供的消息队列可以快速实现程序的功能,它们也提供丰富的接口和选项,方便下一步的写入操作。
所述队列管理模块主要包括以下子模块:
根据配置文件提供的类型来生成队列的队列生成子模块。把请求存储的数据放入高速内存队列缓存的队列数据写入子模块。在写入模块写入存储设备时,从高速内存队列取出数据并删除的队列数据提取子模块。当业务需要时,能够动态的添加队列的队列添加子模块。当一个队列已经不再使用,用户可以对它进行删除的队列删除子模块。
所述写入模块用于负责将各队列中的数据按优先级依次写入存储设备。它根据配置文件中的配置信息从队列中取出数据,按批写入到存储设备中。它根据优先级按一定的时间间隔从队列中取出要存入的数据。因为每次都是取出大量的数据,可以按块来批写入,减少寻道时间和写竞争,大大提高了写入效率。
由上述本发明实施例提供的技术方案可以看出,本发明实施例提供了一种含灾备的双机高并发数据的快速写入系统,该系统由内存中的多队列作为缓存和批量写入方法支持。只要是高并发微数据的入库和存档等写入操作,使用该方法都能达到快速写入,避免死锁的目的。通过本方法,可以避免对磁盘和数据库的写竞争,避免死锁,由于本方法同时注意了灾备的考虑,不失一种高效高并发数据写入的方法。
应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。

Claims (8)

1.一种云环境下基于队列的高并发数据快速写入系统,其特征在于,包括:
同步管理两台机器之间的数据一致的同步管理模块;
管理请求用户和内存队列的对应关系,队列的优先级,文件或数据库中数据要写入的配置及位置的配置管理模块;
根据配置文件初始化生成队列,管理队列的增长和回收机制的队列管理模块;
根据配置文件把队列中的数据根据优先级写入到文件或数据库中的写入模块。
2.根据权利要求1所述的云环境下基于队列的高并发数据快速写入系统,其特征在于,所述同步管理模块是通过同步机制使两台机器具有相同的队列、配置,并且具有数据后备修复机制。
3.根据权利要求1所述的云环境下基于队列的高并发数据快速写入系统,其特征在于,所述配置管理模块具有动态的增加或删除队列的功能。
4.根据权利要求1所述的云环境下基于队列的高并发数据快速写入系统,其特征在于,所述队列管理模块利用效率和可扩展性高的类或开源软件实现队列创建和管理。
5.根据权利要求1所述的云环境下基于队列的高并发数据快速写入系统,其特征在于,所述队列管理模块主要包括以下子模块:根据配置文件提供的类型来生成队列的队列生成子模块;把请求存储的数据放入高速内存队列缓存的队列数据写入子模块;在写入模块执行写入存储设备的操作时,从高速内存队列取出数据并删除的队列数据提取子模块;能够动态的添加队列的队列添加子模块;能删除废弃队列的队列删除子模块。
6.一种云环境下基于队列的高并发数据快速写入方法,其特征在于,通过网络把包括计算资源、存储资源和网络端口资源的资源进行集中的池化管理,然后由主机再进行资源的虚拟分配,形成虚拟服务器,通过在每个服务器中按照配置在内存中设置队列,并安装有同步机制,当一台服务器收到数据写入请求,由其中一台自动同另一台同步数据,同步成功或写入成功向用户返回成功,否则为失败。
7.根据权利要求6所述的云环境下基于队列的高并发数据快速写入方法,其特征在于,具体包括以下步骤:
步骤S1:建立同步管理,使两台服务器具有相同的队列、配置,并且具有数据后备修复机制;
步骤S2:配置管理,生成队列的基本属性,通过配置管理模块动态的增加或删除队列;
步骤S3:队列管理,根据配置动态的完成对队列创建及生命周期的管理;
步骤S4:写入操作,将各队列中的数据按优先级依次写入存储设备。
8.根据权利要求7所述的云环境下基于队列的高并发数据快速写入方法,其特征在于,其写入操作按设定的时间间隔按块批量写入磁盘或盘阵。
CN201310008606.5A 2013-01-10 2013-01-10 云环境下基于队列的高并发数据快速写入系统及方法 Active CN103049317B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310008606.5A CN103049317B (zh) 2013-01-10 2013-01-10 云环境下基于队列的高并发数据快速写入系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310008606.5A CN103049317B (zh) 2013-01-10 2013-01-10 云环境下基于队列的高并发数据快速写入系统及方法

Publications (2)

Publication Number Publication Date
CN103049317A CN103049317A (zh) 2013-04-17
CN103049317B true CN103049317B (zh) 2016-03-23

Family

ID=48061967

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310008606.5A Active CN103049317B (zh) 2013-01-10 2013-01-10 云环境下基于队列的高并发数据快速写入系统及方法

Country Status (1)

Country Link
CN (1) CN103049317B (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104753817B (zh) * 2013-12-25 2019-02-05 中国移动通信集团公司 一种云计算消息队列服务本地模拟方法和系统
CN103701719A (zh) * 2013-12-27 2014-04-02 乐视网信息技术(北京)股份有限公司 服务器中的数据队列的更新方法及系统
CN104866602A (zh) * 2015-06-01 2015-08-26 走遍世界(北京)信息技术有限公司 队列处理方法及装置
CN105630635B (zh) * 2015-12-29 2019-07-30 北京京东尚科信息技术有限公司 数据容灾系统和方法
CN106022747B (zh) * 2016-05-12 2019-09-27 苏州朗动网络科技有限公司 一种基于分布式高并发条件下的计费方法
CN108173892B (zh) * 2016-12-07 2020-11-13 腾讯科技(深圳)有限公司 云端镜像操作方法和装置
CN106844682B (zh) * 2017-01-25 2019-08-16 北京百分点信息科技有限公司 数据交换方法、装置及系统
CN107920136B (zh) * 2017-12-29 2019-09-17 Oppo广东移动通信有限公司 数据同步控制方法、装置以及服务器
CN108958950A (zh) * 2018-05-29 2018-12-07 联发科技(新加坡)私人有限公司 电子存储设备的任务管理方法、主机和存储装置
CN112241240A (zh) * 2019-07-19 2021-01-19 伊姆西Ip控股有限责任公司 用于并行传输数据的方法、设备和计算机程序产品
CN113010297A (zh) * 2021-04-23 2021-06-22 北京秒针人工智能科技有限公司 基于消息队列的数据库写入调度器、写入方法和存储介质
CN115510020A (zh) * 2021-06-23 2022-12-23 比亚迪股份有限公司 一种数据归档方法、电子设备及可读存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6161169A (en) * 1997-08-22 2000-12-12 Ncr Corporation Method and apparatus for asynchronously reading and writing data streams into a storage device using shared memory buffers and semaphores to synchronize interprocess communications
CN101635638A (zh) * 2008-07-25 2010-01-27 中兴通讯股份有限公司 一种容灾系统及其容灾方法
CN101854392A (zh) * 2010-05-20 2010-10-06 清华大学 一种基于云计算环境的个人数据管理方法
CN102647452A (zh) * 2012-03-20 2012-08-22 广东电子工业研究院有限公司 基于大规模云计算平台的自适应资源监控系统及其方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6161169A (en) * 1997-08-22 2000-12-12 Ncr Corporation Method and apparatus for asynchronously reading and writing data streams into a storage device using shared memory buffers and semaphores to synchronize interprocess communications
CN101635638A (zh) * 2008-07-25 2010-01-27 中兴通讯股份有限公司 一种容灾系统及其容灾方法
CN101854392A (zh) * 2010-05-20 2010-10-06 清华大学 一种基于云计算环境的个人数据管理方法
CN102647452A (zh) * 2012-03-20 2012-08-22 广东电子工业研究院有限公司 基于大规模云计算平台的自适应资源监控系统及其方法

Also Published As

Publication number Publication date
CN103049317A (zh) 2013-04-17

Similar Documents

Publication Publication Date Title
CN103049317B (zh) 云环境下基于队列的高并发数据快速写入系统及方法
JP6223569B2 (ja) ビジネスフローをスケジュールするためのコンピュータ装置、方法及び装置
CN102843418B (zh) 一种资源调度系统
US9063790B2 (en) System and method for performing distributed parallel processing tasks in a spot market
CN109491859A (zh) 针对Kubernetes集群中容器日志的收集方法
CN107329799A (zh) 一种融合Docker容器与KVM虚拟化技术的系统
CN106325758B (zh) 一种队列存储空间管理方法及装置
CN104486255A (zh) 业务资源调度方法和装置
CN104937564B (zh) 组表格的数据冲洗
CN104657149A (zh) 一种存储系统的管理模块的软件框架实现方法
CN102521014A (zh) 虚拟机的部署方法及装置
CN104077199A (zh) 基于共享磁盘的高可用集群的隔离方法和系统
CN103442036A (zh) 一种基于云平台的设计开发、后期制作及数据存储一体化系统
WO2015106656A1 (zh) 一种跨数据中心的数据同步方法
CN110083306A (zh) 一种分布式对象存储系统及存储方法
CN114722119A (zh) 数据同步方法及系统
CN104410666A (zh) 云计算下实现异构存储资源管理的方法及系统
WO2024046188A1 (zh) 一种云环境下的i/o卸载方法、设备、系统及存储介质
US9798483B2 (en) Object storage power consumption optimization
CN110532058B (zh) 容器集群服务的管理方法、装置、设备及可读存储介质
CN106874343B (zh) 一种时序数据库的数据删除方法及系统
CN108897822A (zh) 一种数据更新方法、装置、设备及可读存储介质
CN110737504A (zh) 一种深度学习模型训练容错方法、系统、终端及存储介质
CN107528871A (zh) 存储系统中的数据分析
CN109992575B (zh) 大数据的分布式存储系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant