一种数据处理方法及装置的制造方法

文档序号:9914462阅读:422来源:国知局
一种数据处理方法及装置的制造方法
【技术领域】
[0001 ]本发明涉及互联网技术领域,特别涉及一种数据处理方法及装置。
【背景技术】
[0002]采用网络互联设备可实现两种不同类型的网络的互访与通信,并能够协调不同网络的速率与带宽的差别。常见的网络互联设备有中继器、网桥、路由器、接入设备、网关等。由于网络的普遍应用,网络类型越来越多,为了在更大范围内实现相互通信和资源共享,网络之间的互联便成为一种信息快速传达的最好方式,在网络互联时,则需要用到网络互联设备。例如,各类服务器与访问该服务器的各类客户端之间通常都采用网络互联设备实现服务器与客户端之间的互联。
[0003]然而,在服务器和客户端进行互联时,网络互联设备在接收到客户端的连接请求后,会为每个客户端创建一个新的线程进行链路处理,当客户端访问量增加后,服务端的线程个数和客户端成正比关系,当线程数膨胀后,系统同时处理的线程数过大,因而,系统的性能将急剧下降,随着并发访问量的继续增大,系统会发生线程堆栈溢出、新线程创建失败等问题,并最终导致进程宕机或者僵死,不能对外提供服务,因而,如何解决并发访问量过大而导致的问题,提高服务器与客户端之间的通信能力,成为一亟待解决的技术问题。

【发明内容】

[0004]本发明提供一种数据处理方法及装置,用以提高服务器与客户端的通信能力。
[0005]本发明提供一种数据处理方法,包括:
[0006]通过套接字接口与预设客户端建立第一通信渠道并通过网络服务接口与预设服务器建立第二通讯渠道;
[0007]检测所述第一通信渠道和所述第二通信渠道中是否存在处于就绪状态的数据;
[0008]当检测到所述第一通信渠道中存在处于就绪状态的数据时,读取所述第一通信渠道中处于就绪状态的数据;
[0009]将从所述第一通信渠道中读取到的数据写入本地缓冲池中用于存储从客户端发送到服务器的数据的第一数据队列的队尾;
[0010]当检测到所述第二通信渠道中存在处于就绪状态的数据时,读取所述第二通信渠道中处于就绪状态的数据;
[0011]将从所述第二通信渠道中读取到的数据写入本地缓冲池中用于存储从服务器发送到客户端的数据的第二数据队列的队尾。
[0012]本发明的有益效果在于:由于增加了本地缓冲池,使系统在读取到数据之后,不必立即处理,而是将读取到的数据写入本地缓冲池中相应的数据队列的队尾,从而,降低了同时处理的数据数目,降低了线程的并发数,保证了在并发访问量过大时,系统性能的稳定性,提高了服务器与客户端之间的通信能力,提升了服务器与客户端之间的通信效果。
[0013]在一个实施例中,所述方法还包括:
[0014]轮询所述缓冲池中第一数据队列的队首;
[0015]当所述第一数据队列的队首有处于就绪状态的数据时,读取所述处于就绪状态的数据;
[0016]判断所述读取到的数据的类型是否属于所述预设服务器支持的数据类型;
[0017]当所述数据的类型属于所述预设服务器支持的数据类型时,将所述读取到的数据发送给预设服务器;
[0018]当所述数据的类型不属于所述预设服务器支持的数据类型时,将所述数据的类型转换为所述预设服务器支持的数据类型;
[0019]当转换完成时,将转换类型之后的数据发送给预设服务器。
[0020]本实施例的有益效果在于:轮询缓冲池中第一数据队列的队首,当第一数据队列的队首有处于就绪状态的数据时,读取处于就绪状态的数据,从而,由于存在第一数据队列,使网络互联设备在接收到客户端数据时无需立即处理,降低了线程的并发数,其次,预先判断该数据的类型是否属于服务器支持的数据类型,当不属于服务器支持的数据类型时,将该数据类型转换为服务器支持的数据类型,从而保证了服务器与客户端交互的有效性,进一步提高了服务器与客户端之间的通信能力,提升了服务器与客户端之间的通信效果O
[0021]在一个实施例中,所述第二数据队列的数据中携带有接收所述数据的目标客户端的客户端标识,所述方法还包括:
[0022]轮询所述缓冲池中第二数据队列的队首;
[0023]当所述第二数据队列的队首有处于就绪状态的数据时,读取所述处于就绪状态的数据;
[0024]根据所述读取到的数据中携带的客户端标识确定所述客户端标识对应的客户端支持的数据类型;
[0025]判断所述读取到的数据的类型是否属于所述客户端标识对应的客户端支持的数据类型;
[0026]当所述读取到的数据的类型属于所述客户端标识对应的客户端支持的数据类型时,将所述读取到的数据发送给所述数据中携带的客户端标识对应的客户端;
[0027]当所述数据的类型不属于所述客户端标识对应的客户端时,将所述数据的类型转换为所述客户端标识对应的客户端支持的数据类型;
[0028]当转换完成时,将转换类型之后的数据发送给所述数据中携带的客户端标识对应的客户端。
[0029]本实施例的有益效果在于:轮询缓冲池中第二数据队列的队首,当第二数据队列的队首有处于就绪状态的数据时,读取处于就绪状态的数据,从而,由于存在第二数据队列,使网络互联设备在接收到服务器的数据时无需立即处理,降低了线程的并发数,其次,预先判断该数据的类型是否属于客户端支持的数据类型,当不属于客户端支持的数据类型时,将该数据类型转换为客户端支持的数据类型,从而保证了服务器与客户端交互的有效性,进一步提高了服务器与客户端之间的通信能力,提升了服务器与客户端之间的通信效果O
[0030]在一个实施例中,当所述预设客户端为多个时,所述通过套接字接口与所述客户端建立第一通信渠道,包括:
[0031]通过套接字接口与多个客户端建立多个第一通信渠道,每个客户端对应一个通信渠道;
[0032]所述方法还包括:
[0033]建立处理线程;
[0034]通过所述处理线程同时监听所述多个第一通信渠道。
[0035]本实施例的有益效果在于:当存在多个客户端时,每个客户端对应一个通信渠道,从而,使客户端与通信渠道一一对应,避免了数据的紊乱,其次,能够通过一个处理线程同时监听多个第一通信渠道,从而,降低了线程的并发数,保证了系统性能的稳定性。
[0036]在一个实施例中,所述多个第一通信渠道具有不同的优先级,所述当检测到所述第一通信渠道中存在处于就绪状态的数据时,读取所述第一通信渠道中处于就绪状态的数据,包括:
[0037]当检测到多个第一通信渠道中存在处于就绪状态的数据时,获取所述第一通信渠道的优先级;
[0038]根据所述第一通信渠道的优先级从高到低的顺序对所述第一通信渠道的数据进行依次读取。
[0039]本实施例的有益效果在于,能够根据通信渠道的优先级从高到低的顺序依次读取第一通信渠道中的数据,从而,在建立通信渠道时,可为重要的客户端赋予较高的优先级,避免紧急数据的读取被延误。
[0040]本发明还提供一种数据处理装置,包括:
[0041]第一建立模块,用于通过套接字接口与预设客户端建立第一通信渠道并通过网络服务接口与预设服务器建立第二通讯渠道;
[0042]检测模块,用于检测所述第一通信渠道和所述第二通信渠道中是否存在处于就绪状态的数据;
[0043]第一读取模块,用于当检测到所述第一通信渠道中存在处于就绪状态的数据时,读取所述第一通信渠道中处于就绪状态的数据;
[0044]第一写入模块,用于将从所述第一通信渠道中读取到的数据写入本地缓冲池中用于存储从客户端发送到服务器的数据的第一数据队列的队尾;
[0045]第二读取模块,用于当检测到所述第二通信渠道中存在处于就绪状态的数据时,读取所述第二通信渠道中处于就绪状态的数据;
[0046]第二写入模块,用于将从所述第二通信渠道中读取到的数据写入本地缓冲池中用于存储从服务器发送到客户端的数据的第二数据队列的队尾。
[0047]在一个实施例中,所述装置还包括:
[0048]第一轮询模块,用于轮询所述缓冲池中第一数据队列的队首;
[0049]第三读取模块,用于当所述第一数据队列的队首有处于就绪状态的数据时,读取所述处于就绪状态的数据;
[0050]第一判断模块,用于判断所述读取到的数据的类型是否属于所述预设服务器支持的数据类型;
[0051 ]第一发送模块,用于当所述数据的类型属于所述预设服务器支持的数据类型时,将所述读取到的数据发送给预设服务器;
[0052]第一转换模块,用于当所述数据的类型不属于所述预设服务器支持的数据类型时,将所述数据的类型转换为所述预设服务器支持
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1