一种处理高频率多并发的数据连接方法技术

技术编号:17784077 阅读:20 留言:0更新日期:2018-04-22 15:26
本发明专利技术公开了一种处理高频率多并发的数据连接方法,该方法是服务启动后,根据预先设定的最大连接可能数量,先期进行申请内存空间、分配连接资源的操作,并将连接资源放入缓存列表,当每次收到连接数据后,直接从缓存列表取出一条连接资源,对收到的数据进行处理,数据处理完成后,不对连接资源进行释放,而是重新放入缓存,留待下次连接继续使用,这样大大节省了服务器的开销,使相同配置的服务器能够容纳的数据连接扩充三倍以上。

【技术实现步骤摘要】
一种处理高频率多并发的数据连接方法
本专利技术涉及一种数据处理方法,属于计算机网络通信

技术介绍
随着物联网和大数据的发展,出现了很多实时性要求高、终端分布多、并发请求量大的应用情形,比如一个采集中央空调各个参数的检测控制系统,需要时刻监控空调设备的各项参数是否发生异常,当有异常发生时,能够第一时间通知维保人员,以便尽快排出故障或消除故障,这就要求需要每隔三到五秒进行一次数据采集并发送给服务器进行判断,其数据处理方法在服务器端,收到连接请求,需要申请内存空间、分配连接资源、处理数据、释放连接资源等操作,当有很多采集终端连接到同一台服务器时,对服务器的性能要求将非常之高,以往每台双核2.0GHzCPU、4GB内存配置的服务器最多能同时接收100个终端已经是满负荷运行,如何在不增加服务器配置的情况下,能够容纳更多的数据连接已经成为行业亟待解决的问题。
技术实现思路
为了克服现有技术的不足,本专利技术提供一种使相同配置的服务器能够容纳更多数据连接的处理高频率多并发的数据连接方法。本专利技术解决其技术问题所采用的技术方案是:一种处理高频率多并发的数据连接方法,该方法的数据连接步骤如下:S01:开始;S02:建立端口并绑定IP;S03:建立客户端连接池,注册接收事件参数和发送事件参数的缓存列表;S04:进入侦听状态;S05:开始接收客户端异步数据;S06:判断数据是否为空,如果是执行步骤S07,如果否则执行步骤S08;S07:建立异步客户端事件参数,并注册接收完成事件参数;S08:释放上次绑定的客户端,等待下一个客户端连接;S09:异步等待连接;S10:接收到连接,将连接加入到缓存列表,从客户端连接池中Pop出一个用户端口,并绑定当前客户端,准备接收数据,同时准备下一个连接;S11:异步接收客户端数据;S12:判断是否有绑定协议,否则执行步骤S13,是则执行步骤S16;S13:根据协议定义,将当前客户端绑定协议对象;S14:判断是否绑定成功,如果否则执行步骤S15,是则执行步骤S16;S15:非法连接,关闭并回收用户端口到连接池;S16:处理数据,同时接收其它客户端数据;S17:解析对应协议数据;S18:判断解析是否正确,否则执行步骤S19,是则执行步骤S20;S19:回应客户端处理失败;S20:处理协议,识别数据类型,并按照数据类型执行相应的程序,该步骤中,将数据分成数据采集D1、控制指令D2和日志数据D3三种。数据采集D1类型的处理流程如下:如果识别为其它控制命令的返回数据D4,则不做处理,如果识别为正常采集数据D5,则执行步骤S21,如果识别为异常数据D6,则执行步骤S24;S21:保存数据;S22:判断是否保存成功,否执行步骤S23,是执行步骤S25;S23:回应客户端保存失败;S24:记录异常信息,保存到异常记录表;S25:回应客户端处理结果。控制指令D2类型的处理流程如下:S26:查找对应客户端的用户参数;S27:发送对应命令给对应客户端。日志数据D3类型的处理流程如下:S28:连续下发日志信息给客户端,并将日志信息保存到此客户端对应的数据库中。本专利技术的有益效果是:本专利技术的方法是服务启动后,根据预先设定的最大连接可能数量,先期进行申请内存空间、分配连接资源的操作,并将连接资源放入缓存列表,当每次收到连接数据后,直接从缓存列表取出一条连接资源,对收到的数据进行处理,数据处理完成后,不对连接资源进行释放,而是重新放入缓存,留待下次连接继续使用,这样大大节省了服务器的开销,使相同配置的服务器能够容纳的数据连接扩充三倍以上。附图说明下面结合附图和实施例对本专利技术进一步说明。图1是本专利技术的流程图。具体实施方式参照图1,一种处理高频率多并发的数据连接方法,该方法的数据连接步骤如下:S01:开始;S02:建立端口并绑定IP(SocketBind(IPPort);S03:建立客户端连接池(ClientTokenPool),注册接收事件参数(ReceiveEventArgs)和发送事件参数(SendEventArgs)的缓存列表(IO_complete);S04:进入侦听状态;S05:开始接收客户端异步数据(StartAcceptSocketAsyncEventArgs);S06:判断数据是否为空,如果是执行步骤S07,如果否则执行步骤S08;S07:建立异步客户端事件参数(SocketAsyncEventArgs),并注册接收完成事件参数(AcceptEventArgCompleted);S08:释放上次绑定的客户端(Socket),等待下一个客户端(Socket)连接;S09:异步等待连接(AcceptAsync);S10:接收到连接,将连接加入到缓存列表(IO_complete)(ProcessAcceptSocketAsyncEventArgs),从客户端连接池(ClientTokenPool)中Pop出(弹出操作)一个用户端口(UserToken),并绑定当前客户端(Socket),准备接收数据,同时准备下一个连接;S11:异步接收客户端数据(ClientToken.Socket.ReceiveAsyncReceiveEventArgs);S12:判断是否有绑定协议,否则执行步骤S13,是则执行步骤S16;S13:根据协议定义,将当前客户端绑定协议对象(BuildingSocketInvokeElement);S14:判断是否绑定成功,如果否则执行步骤S15,是则执行步骤S16;S15:非法连接(CloseSocket),关闭并回收用户端口到连接池;S16:处理数据(SocketInvokeElement..ProcessReceive),同时接收其它客户端数据;S17:解析对应协议数据(Frame.Parsedata);S18:判断解析是否正确,否则执行步骤S19,是则执行步骤S20;S19:回应客户端处理失败(SendResult);S20:处理协议,识别数据类型,并按照数据类型执行相应的程序;该步骤中,将数据分成数据采集D1、控制指令D2和日志数据D3三种。数据采集D1类型的处理流程如下:如果识别为其它控制命令的返回数据D4,则不做处理,如果识别为正常采集数据D5,则执行步骤S21,如果识别为异常数据D6,则执行步骤S24;S21:保存数据;S22:判断是否保存成功,否执行步骤S23,是执行步骤S25;S23:回应客户端保存失败(SendResult);S24:记录异常信息,保存到异常记录表;S25:回应客户端处理结果(SendResult)。控制指令D2类型的处理流程如下:S26:查找对应客户端的用户参数(UserToken);S27:发送对应命令给对应客户端(Send)。日志数据D3类型的处理流程如下:S28:连续下发日志信息给客户端,并将日志信息保存到此客户端对应的数据库中。本专利技术的方法是服务启动后,根据预先设定的最大连接可能数量(比如300),先期进行申请内存空间、分配连接资源的操作,并将连接资源放入缓存列表,当每次收到连接数据后,直接从缓存列表取出一条连接资源,对收到的数据进行处理,数据处理完成后,不对连接资源进行释放,而是重新放入缓存,留待下次连接继续使用,这样大大节省了服务器的开销本文档来自技高网...
一种处理高频率多并发的数据连接方法

【技术保护点】
一种处理高频率多并发的数据连接方法,其特征在于该方法的数据连接步骤如下:S01:开始;S02:建立端口并绑定IP;S03:建立客户端连接池,注册接收事件参数和发送事件参数的缓存列表;S04:进入侦听状态;S05:开始接收客户端异步数据;S06:判断数据是否为空,如果是执行步骤S07,如果否则执行步骤S08;S07:建立异步客户端事件参数,并注册接收完成事件参数;S08:释放上次绑定的客户端,等待下一个客户端连接;S09:异步等待连接;S10:接收到连接,将连接加入到缓存列表,从客户端连接池中Pop出一个用户端口,并绑定当前客户端,准备接收数据,同时准备下一个连接;S11:异步接收客户端数据;S12:判断是否有绑定协议,否则执行步骤S13,是则执行步骤S16;S13:根据协议定义,将当前客户端绑定协议对象;S14:判断是否绑定成功,如果否则执行步骤S15,是则执行步骤S16;S15:非法连接,关闭并回收用户端口到连接池;S16:处理数据,同时接收其它客户端数据;S17:解析对应协议数据;S18:判断解析是否正确,否则执行步骤S19,是则执行步骤S20;S19:回应客户端处理失败;S20:处理协议,识别数据类型,并按照数据类型执行相应的程序。...

【技术特征摘要】
1.一种处理高频率多并发的数据连接方法,其特征在于该方法的数据连接步骤如下:S01:开始;S02:建立端口并绑定IP;S03:建立客户端连接池,注册接收事件参数和发送事件参数的缓存列表;S04:进入侦听状态;S05:开始接收客户端异步数据;S06:判断数据是否为空,如果是执行步骤S07,如果否则执行步骤S08;S07:建立异步客户端事件参数,并注册接收完成事件参数;S08:释放上次绑定的客户端,等待下一个客户端连接;S09:异步等待连接;S10:接收到连接,将连接加入到缓存列表,从客户端连接池中Pop出一个用户端口,并绑定当前客户端,准备接收数据,同时准备下一个连接;S11:异步接收客户端数据;S12:判断是否有绑定协议,否则执行步骤S13,是则执行步骤S16;S13:根据协议定义,将当前客户端绑定协议对象;S14:判断是否绑定成功,如果否则执行步骤S15,是则执行步骤S16;S15:非法连接,关闭并回收用户端口到连接池;S16:处理数据,同时接收其它客户端数据;S17:解析对应协议数据;S18:判断解析是否正确,否则执行步骤S19,是则执行步骤S20;...

【专利技术属性】
技术研发人员:尚志锋曾生辉王高飞何剑清林嘉文何卫明
申请(专利权)人:中山路得斯空调有限公司
类型:发明
国别省市:广东,44

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

1