一种基于磁盘大流量的缓冲控制方法和系统技术方案

技术编号:21850523 阅读:26 留言:0更新日期:2019-08-14 00:18
本发明专利技术公开了一种基于磁盘的大流量缓冲控制方法,包括:动态监听磁盘IO使用率,更新全局状态表;接收客户端数据请求,进行数据验证,验证成功的数据等待写入磁盘;检测全局状态表,通知客户端调整数据发送频率和发送大小;将验证成功的数据,根据不同数据类型,建立数据与磁盘目录的对应表;扫描等待写入磁盘的数据以及数据与磁盘目录的对应表,按不同数据类型将数据写入磁盘目录中。本发明专利技术还同时公开了一种基于磁盘的大流量缓冲控制系统。

A Buffer Control Method and System Based on Large Flow of Disk

【技术实现步骤摘要】
一种基于磁盘大流量的缓冲控制方法和系统
本专利技术涉及计算机软件领域,具体涉及一种基于磁盘的大流量下缓冲控制的方法和系统。
技术介绍
目前,应对服务器大流量情况的主流技术方案包括横向扩展方案和纵向扩展方案。从横向扩展角度来讲,主要采用负载均衡技术,横向扩展多个业务节点。比较典型的是服务器集群负载均衡技术。根据形态不同,可以分为硬件均衡和软件均衡技术。对软件均衡而言,可分为域名负载均衡,IP负载均衡,链路层负载均衡等。最早的负载均衡技术,利用域名解析实现负载均衡。大型网站总是部分使用域名解析,作为第一级负载均衡。IP负载均衡在网络层通过修改请求目标地址进行负载均衡。从纵向扩展来看,就是提高单机配置,比如加大内存。使用各种缓冲机制,减少对IO敏感的数据库的冲击。比如使用Redis,Redis是一个开源的使用ANSIC语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。在比如Memcached,它是一个分布式的高性能内存对象缓存系统,可以缓存数据,如果没有它,就必须从数据库中获取数据,加重数据库的负担.有了它,减轻数据库负载,减少应用程序对数据库的调用,加快了数据的访问.综合来看目前应对大流量环境的可用技术主要为分布式集群技术,其加大单机服务能力,提供缓存机制。然而无论单独使用硬件还是软件,其复杂度都很高,且需要大量的硬件资源作为支撑。目前为止,仍缺少能圆满解决服务器在有限资源环境下大流量写入的处理方案。
技术实现思路
针对现有技术中的缺陷,本专利技术提供一种基于磁盘的大流量缓冲控制方法和系统。以应对服务器有限资源下大流量的情况,降低磁盘负载,提高系统可用性。为实现本专利技术的专利技术目的,本专利技术提出一种基于磁盘的大流量缓冲控制方法,包括以下步骤:动态监听磁盘IO使用率,更新全局状态表;接收客户端数据请求,进行数据验证,验证成功的数据等待写入磁盘;检测全局状态表,通知客户端调整数据发送频率和发送大小;将验证成功的数据,根据不同数据类型,建立数据与磁盘目录的对应表,等待数据写入磁盘;扫描等待写入磁盘的数据以及数据与磁盘目录的对应表,按不同数据类型将数据写入磁盘目录中。进一步的,所述更新全局状态表的具体方法为,每间隔一定时长监听一次磁盘IO使用率,当所述磁盘IO使用率低于第一阈值时或高于第二阈值时,更新全局状态表。进一步的,所述进行数据验证的具体方法为,判定服务器端数据接收次数与客户端数据发送次数是否相同,相同则通过验证,不同则丢弃数据。进一步的,所述通知客户端的具体方法为,向客户端发送间隔信号或大小信号。进一步的,在所述对应表中建立全局自增长ID,保证每个数据的全局唯一性。进一步的,通过worker线程机制周期性的实现数据扫描和数据写入。为实现本专利技术的专利技术目的,本专利技术还提出一种基于磁盘的大流量缓冲控制系统,包括磁盘、监听模块、数据验证模块、状态检测模块、数据目录模块、写入模块,所述磁盘用于存储数据库数据;所述监听模块用于动态监听磁盘IO使用率,更新全局状态表;所述数据验证模块用于接收客户端数据请求,进行数据验证,验证通过的数据等待写入磁盘;所述状态检测模块,用于检测全局状态表,通知客户端调整数据发送频率和发送大小;所述数据目录模块,用于将验证成功的数据,根据不同数据类型,建立数据与磁盘目录的对应表,等待数据写入磁盘;所述写入模块,用于扫描所述等待写入磁盘的数据以及所述对应表,按不同数据类型将数据写入磁盘目录中。进一步的,所述控制模块每间隔一定时长监听一次磁盘IO使用率,当所述磁盘IO使用率低于第一阈值时或高于第二阈值时,更新全局状态表。进一步的,所述数据验证模块判定服务器数据接收次数与客户端数据发送数据次数是否相同,相同则验证成功,不同则丢弃数据。进一步的,所述状态检测模块向客户端发送间隔信号或大小信号,通知客户端调整数据发送频率和发送大小。进一步的,所述数据目录模块在所述对应表中建立全局自增长ID,保证每个数据的全局唯一性。进一步的,所述写入模块通过worker线程机制周期性的实现数据扫描和数据写入。本专利技术的有益效果体现在:监听服务器磁盘IO使用率,动态调整客户端数据发送大小和发送间隔,建立数据与磁盘对应表,采用worker线程机制,保证数据的分布写入,降低磁盘负载,简单高效地解决有限资源下大流量数据写入服务器的问题。同时,通过数据验证,保证数据一致性,降低重发攻击。附图说明为了更清楚地说明本专利技术具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍。图1为本专利技术实施例一公开的一种基于磁盘的大流量缓冲控制方法;图2为本专利技术实施例一公开的一种基于磁盘的大流量缓冲控制系统。具体实施方式下面将结合附图对本专利技术技术方案的实施例进行详细的描述。以下实施例仅用于更加清楚地说明本专利技术的技术方案,因此只作为示例,而不能以此来限制本专利技术的保护范围。需要注意的是,除非另有说明,本申请使用的技术术语或者科学术语应当为本专利技术所属领域技术人员所理解的通常意义。如图1所示,本专利技术提供一种基于磁盘的大流量缓冲控制方法,包括以下步骤:步骤S1,动态监听磁盘IO使用率,更新全局状态表;步骤S2,接收客户端数据请求,进行数据验证,验证成功的数据等待写入磁盘;步骤S3,检测全局状态表,通知客户端调整数据发送频率和发送大小;步骤S4,将验证成功的数据,根据不同数据类型,建立数据与磁盘目录的对应表,等待数据写入磁盘;步骤S5,扫描等待写入磁盘的数据以及数据与磁盘目录的对应表,按不同数据类型将数据写入磁盘目录中。可选的,所述更新全局状态表的具体方法为,每间隔一定时长监听一次磁盘IO使用率,当所述磁盘IO使用率低于第一阈值时或高于第二阈值时,更新全局状态表。具体的,采用周期性的监听方式查看磁盘内部总体写入读出量即磁盘IO使用率,每间隔一定时长进行一次监听,该间隔时长可自由设定,一般设定为10秒。当服务器磁盘IO使用率低于第一阈值时,代表服务器磁盘负载较低,此时更新全局状态表;当服务器磁盘IO使用率高于第二阈值时,代表服务器磁盘负载较高,不便于新数据的写入,此时更新全局状态表。所述全局状态表记录了此时的磁盘IO使用率及对应时间等。通过全局状态表内容确定服务器磁盘负载高低情况,从而辅助客户端更改数据发送策略。本专利技术中,当客户端发送数据,线程池接收客户端数据请求,取出线程,在该线程中进行数据验证。可选的,数据验证的具体方法为,判定服务器端数据接收次数与客户端数据发送次数是否相同,相同则验证成功,不同则丢弃数据。本专利技术中,客户端发送到服务器端的数据序列中包含了seq数值,seq数值用于记录当前客户端发送数据的次数。服务器端接收seq数值并保存,通过检测服务器端的seq数值与客户端的seq数值是否一致来验证数据唯一性:当seq数值相同,代表服务器端数据接收次数与客户端数据发送数据次数相同,数据验证成功;当seq数值不相同,代表数据丢失或数据重发,此时将客户端发送至服务器端的数据丢弃,通知客户端不进入后续数据处理。以此保障服务器不受到重发攻击。本专利技术中,线程池动态检测全局状态表,以此确定服务器磁盘负载大小。当负载较小,通过API接口通知客户端增加发送数据大小和发本文档来自技高网...

【技术保护点】
1.一种基于磁盘的大流量缓冲控制方法,包括以下步骤:动态监听磁盘IO使用率,更新全局状态表;接收客户端数据请求,进行数据验证,验证成功的数据等待写入磁盘;检测全局状态表,通知客户端调整数据发送频率和发送大小;将验证成功的数据,根据不同数据类型,建立数据与磁盘目录的对应表;扫描等待写入磁盘的数据以及数据与磁盘目录的对应表,按不同数据类型将数据写入磁盘目录中。

【技术特征摘要】
1.一种基于磁盘的大流量缓冲控制方法,包括以下步骤:动态监听磁盘IO使用率,更新全局状态表;接收客户端数据请求,进行数据验证,验证成功的数据等待写入磁盘;检测全局状态表,通知客户端调整数据发送频率和发送大小;将验证成功的数据,根据不同数据类型,建立数据与磁盘目录的对应表;扫描等待写入磁盘的数据以及数据与磁盘目录的对应表,按不同数据类型将数据写入磁盘目录中。2.如权利要求1所述的一种基于磁盘的大流量缓冲控制方法,其特征在于,所述更新全局状态表的具体方法为,每间隔一定时长监听一次磁盘IO使用率,当所述磁盘IO使用率低于第一阈值时或高于第二阈值时,更新全局状态表。3.如权利要求1所述的一种基于磁盘的大流量缓冲控制方法,其特征在于,所述进行数据验证的具体方法为,判定服务器端数据接收次数与客户端数据发送次数是否相同,相同则通过验证,不同则丢弃数据。4.如权利要求1所述的一种基于磁盘的大流量缓冲控制方法,其特征在于,在所述对应表中建立全局自增长ID,保证每个数据的全局唯一性。5.如权利要求1所述的一种基于磁盘的大流量缓冲控制方法,其特征在于,通过worker线程机制周期性的实现数据扫描和数据写入。6.一种基于磁盘的大流量缓冲控制系统,包括磁盘、监听模块、数据验证模块、状态检测模块、...

【专利技术属性】
技术研发人员:程波焦东辉
申请(专利权)人:北京杰思安全科技有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1