一种数据处理方法、装置、存储介质及终端制造方法及图纸

技术编号:24352661 阅读:21 留言:0更新日期:2020-06-03 01:55
本发明专利技术公开了一种数据处理方法、装置、存储介质及终端,该方法包括:为每个套接字添加一个事件,且在操作系统内核的中断程序中建立回调函数;在监听到有对应套接字的数据包的情况下,启动回调函数,调用事件处理线程池中的线程对所述数据包进行处理;其中,通过一个线程记录和跟踪多个套接字的状态。通过上述方案可以解决现有的为每个Socket绑定一个线程,多个Socket需要启动多个线程所导致的内存开销过大,网络I/0的吞吐量较低的问题,达到了有效减少系统的内存开销,提升资源利用率和处理效率的技术效果。

A data processing method, device, storage medium and terminal

【技术实现步骤摘要】
一种数据处理方法、装置、存储介质及终端
本专利技术属于互联网
,具体涉及一种数据处理方法、装置、存储介质及终端。
技术介绍
在信息化时代,数据是非常重要的,相应的,保存数据的数据库服务器资源也是很重要的。对于多应用程序操作MySQL数据库,当连接数过多的时候就会出现异常错误,且CPU和内存服务器资源占用过多。这主要是因为,创建线程数过多,操作系统会在线程之间进行切换,更多的线程就需要更多的内存空间,且有的线程在执行慢查询语句的时候长时间占用系统资源使得这些系统资源无法被释放,也就导致数据库的查询功能变得很慢。针对上述这种情况,目前的做法是建立线程池,创建几个固定的线程与数据库建立连接,当应用程序连接数据库时就从线程池中获取已经创建好的线程与数据库建立连接。这样可以解决服务器资源使用过高的问题,但是线程池线程数量固定会造成应用程序连接数据库过少时的系统资源浪费,过多时系统资源不足的问题,且慢查询语句及操作数据库时间过长会造成线程系统资源长时间不能被释放,后面的应用程序无法连接数据库。针对上述数据库服务过程中所存在的问题,目前尚未提出有效的解决方案。
技术实现思路
本专利技术的目的在于,针对上述缺陷,提供一种数据处理方法、装置、存储介质及终端,以解决现有技术中对数据库进行操作的过程中资源利用率低,事件处理效率低的问题,达到了有效提升资源利用率和处理效率的技术效果。本专利技术提供一种数据处理方法,包括:为每个套接字添加一个事件,且在操作系统内核的中断程序中建立回调函数;在监听到有对应套接字的数据包的情况下,启动回调函数,调用事件处理线程池中的线程对所述数据包进行处理;其中,通过一个线程记录和跟踪多个套接字的状态。在一个实施方式中,调用事件处理线程池中的线程对所述数据包进行处理,包括:在对所述数据包的处理为查询事件且查询事件超出预设时长的情况下,通过缓存表存放热数据;通过热数据加热和热数据放凉的方式,对所述缓存表中的数据进行存放管理。在一个实施方式中,调用事件处理线程池中的线程对所述数据包进行处理,包括:通过内存复制的方式将所述数据包复制到缓冲区中;调用事件处理线程池中的空闲线程对所述数据包进行处理,其中,所述事件处理线程池中的线程数量小于等于预设的线程数阈值。在一个实施方式中,在调用事件处理线程池中的空闲线程对所述数据包进行处理的过程中,还包括:将所述数据包存入预设的双链表中;清除所述缓冲区中的所述数据包。在一个实施方式中,在操作系统内核的中断程序中建立回调函数之前,所述方法还包括:在操作系统内核中申请一个文件系统;将所述每个套接字添加至所述文件系统中;为每个事件绑定一个网卡驱动程序,其中,该网卡驱动程序用于监听该事件对应的套接字的数据包。与上述方法相匹配,本专利技术另一方面提供一种数据处理装置,包括:添加模块,用于为每个套接字添加一个事件,且在操作系统内核的中断程序中建立回调函数;调用模块,用于在监听到有对应套接字的数据包的情况下,启动回调函数,调用事件处理线程池中的线程对所述数据包进行处理;其中,通过一个线程记录和跟踪多个套接字的状态。在一个实施方式中,所述调用模块包括:第一存放单元,用于在对所述数据包的处理为查询事件且查询事件超出预设时长的情况下,通过缓存表存放热数据;第二存放单元,用于通过热数据加热和热数据放凉的方式,对所述缓存表中的数据进行存放管理。在一个实施方式中,所述调用模块包括:复制单元,用于通过内存复制的方式将所述数据包复制到缓冲区中;调用单元,用于调用事件处理线程池中的空闲线程对所述数据包进行处理,其中,所述事件处理线程池中的线程数量小于等于预设的线程数阈值。在一个实施方式中,上述数据处理装置还包括:存入单元,用于在调用事件处理线程池中的空闲线程对所述数据包进行处理的过程中,将所述数据包存入预设的双链表中;清除单元,用于清除所述缓冲区中的所述数据包。在一个实施方式中,上述数据处理装置还包括:申请模块,用于在操作系统内核的中断程序中建立回调函数之前,在操作系统内核中申请一个文件系统;添加模块,用于将所述每个套接字添加至所述文件系统中;绑定模块,用于为每个事件绑定一个网卡驱动程序,其中,该网卡驱动程序用于监听该事件对应的套接字的数据包。与上述装置相匹配,本专利技术再一方面提供一种终端,包括:以上所述的数据处理装置。与上述方法相匹配,本专利技术再一方面提供一种存储介质,包括:所述存储介质中存储有多条指令;所述多条指令,用于由处理器加载并执行以上所述的数据处理方法。与上述方法相匹配,本专利技术再一方面提供一种终端,包括:处理器,用于执行多条指令;存储器,用于存储多条指令;其中,所述多条指令,用于由所述存储器存储,并由所述处理器加载并执行以上所述的数据处理方法。由此,本专利技术的方案,仅通过一个线程对多个套接字的状态进行跟踪和记录,对于每个操作事件而言,在监听到有对应套接字的数据包的情况下,启动回调函数,调用事件处理线程池中的线程对所述数据包进行处理,这样就不需要为每个套接字都分配一个线程,仅在需要的时候才分配线程。通过上述方案可以解决现有的为每个Socket绑定一个线程,多个Socket需要启动多个线程所导致的内存开销过大,网络I/0的吞吐量较低的问题,达到了有效减少系统的内存开销,提升资源利用率和处理效率的技术效果。本专利技术的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本专利技术而了解。下面通过附图和实施例,对本专利技术的技术方案做进一步的详细描述。附图说明图1为本专利技术的数据处理方法的一实施例的流程示意图;图2为本专利技术的方法中中间件的架构示意图;图3为本专利技术的数据处理装置的一实施例的结构示意图。具体实施方式为使本专利技术的目的、技术方案和优点更加清楚,下面将结合本专利技术具体实施例及相应的附图对本专利技术技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。考虑到现有的数据库连接数过多造成连接异常,以及CPU和内存等系统资源消耗过多的问题,主要是因为对于I/O流都需要绑定一个线程,这样就导致在I/O流过多的时候,就需要过多的线程。为此,在本例中通过建立一个线程来记录跟踪每一个Socket(I/O流)的状态,从而通过该线程来同时管理多个I/O流。同时,绑定网卡驱动程序监控数据包,在操作系统内核中断处理程序中注册一个回调函数,一旦有该句柄的Socket数据包,内核就会启动回调函数,通过内存复制的方式将数据包复制到缓冲区,然后,调用事件处理线程池(在该线程池中仅设置最大线程本文档来自技高网...

【技术保护点】
1.一种数据处理方法,其特征在于,包括:/n为每个套接字添加一个事件,且在操作系统内核的中断程序中建立回调函数;/n在监听到有对应套接字的数据包的情况下,启动回调函数,调用事件处理线程池中的线程对所述数据包进行处理;/n其中,通过一个线程记录和跟踪多个套接字的状态。/n

【技术特征摘要】
1.一种数据处理方法,其特征在于,包括:
为每个套接字添加一个事件,且在操作系统内核的中断程序中建立回调函数;
在监听到有对应套接字的数据包的情况下,启动回调函数,调用事件处理线程池中的线程对所述数据包进行处理;
其中,通过一个线程记录和跟踪多个套接字的状态。


2.根据权利要求1所述的方法,其特征在于,调用事件处理线程池中的线程对所述数据包进行处理,包括:
在对所述数据包的处理为查询事件且查询事件超出预设时长的情况下,通过缓存表存放热数据;
通过热数据加热和热数据放凉的方式,对所述缓存表中的数据进行存放管理。


3.根据权利要求1或2所述的方法,其特征在于,调用事件处理线程池中的线程对所述数据包进行处理,包括:
通过内存复制的方式将所述数据包复制到缓冲区中;
调用事件处理线程池中的空闲线程对所述数据包进行处理,其中,所述事件处理线程池中的线程数量小于等于预设的线程数阈值。


4.根据权利要求1-3之一所述的方法,其特征在于,在调用事件处理线程池中的空闲线程对所述数据包进行处理的过程中,还包括:
将所述数据包存入预设的双链表中;
清除所述缓冲区中的所述数据包。


5.根据权利要求1-4之一所述的方法,其特征在于,在操作系统内核的中断程序中建立回调函数之前,所述方法还包括:
在操作系统内核中申请一个文件系统;
将所述每个套接字添加至所述文件系统中;
为每个事件绑定一个网卡驱动程序,其中,该网卡驱动程序用于监听该事件对应的套接字的数据包。


6.一种数据处理装置,其特征在于,包括:
添加模块,用于为每个套接字添加一个事件,且在操作系统内核的中断程序中建立回调函数;
调用模块,用于在监听到有对应套接字的数据包的情况下,启动回调函数,调用事件处理线程池中的线程对所述数据包进行处理;
其中,通过一个线程记录和跟踪...

【专利技术属性】
技术研发人员:张小柯宋德超王沅召
申请(专利权)人:珠海格力电器股份有限公司
类型:发明
国别省市:广东;44

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

1