线程池和共享池组合优化大负荷通讯服务器的制造方法

文档序号:7817291阅读:169来源:国知局
线程池和共享池组合优化大负荷通讯服务器的制造方法
【专利摘要】本发明提供一种线程池和共享池组合优化大负荷通讯服务器的方法。GPS监控平台上有成千上万台监控终端,它们不停的向监控中心发送数据报文。由于报文的数量庞大,同时还需要解析,给通讯服务器带来了很大的压力。本发明的基于线程池和共享池组合优化方法主要用于当服务器连接成千上万的GPS客户端时,需要对上报数据及时解析入库的情况。为服务器的稳定、及时响应提供了一种高效的处理方法。
【专利说明】线程池和共享池组合优化大负荷通讯服务器

【技术领域】
[0001]本发明属于信息【技术领域】通讯服务器的一个优化方案,是一种利用线程池技术和共享池技术组合,大大提高通讯服务器性能的有效方法。

【背景技术】
[0002]GPS监控平台上有成千上万台监控终端,它们不停的向监控中心发送数据报文。由于报文的数量庞大,同时还需要解析,给通讯服务器带来了很大的压力。在使用过程中暴露出一些问题,主要体现在以下几点:
1、往往由于通讯服务器不能及时响应,而造成上报数据丢失;
2、上报数据量太大,造成服务器假死机;
3、服务器处理速度跟不上客户端的上报速度,造成大量上报数据挤压,不能及时入库。
[0003]目前解决此类问题的方法主要有:
1、增加硬件配置,采用高性能服务器,可以在一定程度上解决问题。
[0004]2、采用分布式服务器,把监控平台划成几个区域,每个区域有专门的服务器,每个区域的客户端只要上报到区域服务器即可,然后区域服务器处理完成后统一入到一个后台数据库中。
[0005]这些方法都能在一定程度上解决服务器的负荷问题,但是需要增加额外的投入,硬件的巨大开支使得GPS平台的运营举步维艰。


【发明内容】

[0006]本发明的目的是提供一种基于线程池和共享池组合的优化技术,在不增加任何硬件成本的前提下,极大的提高服务器的效率。
[0007]所述方法包括如下步骤:
1、服务器初始化缓冲队列,绑定端口开始监听;
2、接收客户端数据,放入缓冲队列;
3、根据缓冲队列的记录数,计算出需要的线程数,所有线程通过线程池管理;
4、线程读取缓冲队列数据,到共享池中搜索历史解析语句,如果没有找到,就开始解析并把解析结果放到共享池中,以备下次直接使用;
5、根据解析的结果形成数据库入库指令;
6、进行入库操作,完成后线程退出。
[0008]本发明相对于现有技术的创新点是:
1、从客户端接收的数据不是直接解析,而是先放入缓冲队列,避免了大规模数据浪涌时造成的服务器宕机;
2、利用线程池来处理缓冲队列的数据,可以有效管理所有线程的活动,避免了线程僵死;
3、利用共享池存放解析过的指令,避免了指令的重复解析,提高了解析效率。

【专利附图】

【附图说明】
[0009]图1是服务器初始化接收数据流程图;
图2是利用线程池管理线程流程图;
图3是线程池和共享池优化解析数据流程。

【具体实施方式】
[0010]结合附图给出本发明的一个具体实施例。
[0011]本发明的基于线程池和共享池组合优化方法主要用于当服务器连接成千上万的GPS客户端时,需要对上报数据及时解析入库的情况。为服务器的稳定、及时响应提供了一种高效的处理方法。
[0012]为了实现该优化方法,首先需要初始化连接缓冲队列,从客户端接收的数据不是直接解析,而是先放入缓冲队列,避免了大规模数据浪涌时造成的服务器宕机。对数据的处理采用异步多线程方式,所有线程通过线程池统一管理。线程对数据解析时,首先在共享池中查找是否解析过该指令,如果有则直接使用解析结果,没有则进行解析并把结果存到共享池中,避免了以后的重复解析。
[0013]具体流程如下:
1、在步骤101中,服务器进行初始化工作,包括缓冲队列、线程池和共享池;
2、在步骤102中,绑定主机端口进行监听;
3、在步骤103中,接收客户端发送的数据;
4、在步骤104中,将接收的数推入缓冲队列,继续接收新的数据;
5、在步骤201中,获取缓冲队列记录数,按每个线程解析50条指令计算,根据记录数,计算需要的线程数;
6、在步骤202中,如果线程数过少,则自动创建新线程;
8、在步骤301中,定时器触发,线程从缓冲队列获取数据;
9、在步骤302中,线程在共享池中查找,如果查到,则直接获取结果,如果没有找到,则进行解析,同时将解析后的数据写到共享池中;
10、在步骤303中,根据解析的结果,形成入库指令;
11、在步骤304中,执行入库指令,写入数据库;
12、在步骤305中,将线程解析计数加I,并判断解析数是否达到50个,达到了就自动终止,没有达到就在下一个时钟周期继续从缓冲队列读取数据进行处理。
【权利要求】
1.本发明的目的是提供一种基于线程池和共享池组合的优化技术,在不增加任何硬件成本的前提下,极大的提高服务器的效率。
2.所述方法包括如下步骤: 1)、服务器初始化缓冲队列,绑定端口开始监听; 2)、接收客户端数据,放入缓冲队列; 3)、根据缓冲队列的记录数,计算出需要的线程数,所有线程通过线程池管理; 4)、线程读取缓冲队列数据,到共享池中搜索历史解析语句,如果没有找到,就开始解析并把解析结果放到共享池中,以备下次直接使用; 5)、根据解析的结果形成数据库入库指令; 6 )、进行入库操作,完成后线程退出。
3.本发明相对于现有技术的创新点是: 1)、从客户端接收的数据不是直接解析,而是先放入缓冲队列,避免了大规模数据浪涌时造成的服务器宕机; 2)、利用线程池来处理缓冲队列的数据,可以有效管理所有线程的活动,避免了线程僵死; 3)、利用共享池存放解析过的指令,避免了指令的重复解析,提高了解析效率。
【文档编号】H04L12/861GK104301253SQ201410561346
【公开日】2015年1月21日 申请日期:2014年10月21日 优先权日:2014年10月21日
【发明者】胡平 申请人:合肥星服信息科技有限责任公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1