高并发连接实现方法和装置的制造方法

文档序号:9865341阅读:577来源:国知局
高并发连接实现方法和装置的制造方法
【技术领域】
[0001]本申请涉及计算机技术,特别涉及高并发连接实现方法和装置。
【背景技术】
[0002]目前,在Java和PHP这类语言中,每个连接都会生成一个新线程,每个新线程可能需要2MB的配套内存,基于此,以一个拥有8GB RAM的系统为例,则理论上最大的并发连接数量是4000个用户。然而,随着客户群的增长,如果希望Web应用程序支持更多用户,则就必须添加更多服务器,这会增加服务器成本、流量成本和人工成本等成本。
[0003]除这些成本上升外,还有一个潜在技术问题,即用户可能针对每个请求使用不同的服务器,因此,任何共享资源都必须在所有服务器之间共享。

【发明内容】

[0004]本申请提供了高并发连接实现方法和装置,以实现高并发连接,防止当客户增多时只能通过添加更多服务器等带来的技术缺陷。
[0005]本申请提供的技术方案包括:
[0006]—种高并发连接实现方法,包括:
[0007]客户端通过公共网关cmngate连接到服务器群;服务器群中包含两个以上服务器,所述服务器群中的服务器是基于Node.js建立的;
[0008]客户端利用直译式脚本语言JavaScript回调函数的方式与服务器群中的服务器实现异步输入/输出I/O。
[0009]—种高并发连接实现装置,包括:
[0010]连接模块,用于通过公共网关cmngate将客户端连接到服务器群;服务器群中包含两个以上服务器,所述服务器群中的服务器是基于Node, js建立的;
[0011]输入/输出模块,用于利用直译式脚本语言JavaScript回调函数的方式使客户端与服务器群中的服务器实现异步输入/输出I/O。
[0012]由以上技术方案可以看出,本发明中,客户端把函数传递给服务器后,且在服务器执行完该函数之前,客户端还是可以处理其他事件的,并非仅仅等待服务器的处理结果,而当服务器执行完函数时,客户端回调该函数,继续该函数的处理,即实现了异步处理。通过该异步处理,能够实现客户端与服务器之间的高并发连接。
【附图说明】
[0013]图1为本发明提供的方法流程图;
[0014]图2为本发明提供的实施例结构图;
[0015]图3为本发明提供的装置结构示意图。
【具体实施方式】
[0016]为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。
[0017]在本发明提供的方法中,能够实现高并发连接,这能够避免【背景技术】中当客户增多时只能通过添加更多服务器等带来的技术缺陷。
[0018]下面通过图1对本发明提供的方法进行描述:
[0019]参见图1,图1为本发明提供的方法流程图。如图1所示,该流程可包括以下步骤:
[0020]步骤101,客户端通过公共网关(cmngate)连接到服务器群,服务器群中包含两个以上服务器,服务器群中的服务器是基于Node.js建立的。
[0021]Node是一个服务器端JavaScrip讀军释器,它将改变服务器应该如何工作的概念,它的目标是帮助程序员构建高度可伸缩的应用程序,编写能够处理数万条同时连接到一个(只有一个)物理机的连接代码。
[0022]Node.js的优点有:
[0023]I)、采用事件驱动、异步编程,为网络服务而设计。
[0024]2)、Node.jS非阻塞模式的I/O处理给Node, js带来在相对低系统资源耗用下的高性能与出众的负载能力,非常适合用作依赖其它I/o资源的中间层服务。
[0025]3)、Node.jS轻量高效,可以认为是数据密集型分布式部署环境下的实时应用系统的完美解决方案。Node非常适合如下情况:在响应客户端之前,预计可能有很高的流量,但所需的服务器端逻辑和处理不一定很多。
[0026]本发明中的服务器基于Node,js建立,贝Ij建立后的服务器能够实现Node, js的上述优点。
[0027]步骤102,客户端利用JavaScript回调函数的方式与服务器群中的服务器实现异步输入/输出(1/0)。
[0028]在本发明中,作为一个优选实施例,客户端利用JavaScript回调函数的方式与服务器群中的服务器实现异步(1/0)包括:
[0029]步骤al,客户端将1/0相关联的函数作为参数通过1/0请求传递给服务器群中的服务器。
[0030]通过步骤al,实现了函数的传递。
[0031]步骤a2,服务器接收到所述1/0请求时执行所述1/0请求携带的函数,客户端在所述服务器执行所述1/0请求携带的函数时继续执行其他处理,并在所述服务器执行完所述函数时回调该函数。
[0032]也即,在本发明中,客户端把函数传递给服务器后,且在服务器执行完该函数之前,客户端还是可以处理其他事件的,并非仅仅等待服务器的处理结果。而当服务器执行完函数时,客户端回调该函数,继续该函数的处理,即实现了异步处理。通过该异步处理,能够实现客户端与服务器之间的高并发连接。
[0033]下面通过图2举一个实施例对图1所示的流程进行描述:
[0034]在图2中,以两个客户端为例,这两个客户端记为:Clientl、Client2。如图2所示,client 1、cl ient2均通过cmngate连接到服务器群。在图2中,clientl、client2与服务器群的每个连接发射一个在Node引擎的进程中运行的事件,以触发客户端后续基于事件驱动回调函数,而不是为每个连接生成一个新的OS线程(并为其分配一些配套内存)。
[0035]在图2中,服务器群中有多个逻辑服务器(logisSvr),各个1gisSvr是基于Node, js建立的,可以作为简单的web服务器、弱联网的游戏服务器、HTTP服务器、或者其他功能的服务器。
[0036]图2以服务器群中的1gisSvr为HTTP服务器为例。下述代码举例描述了HTTP服务器的建立:
[0037]var http = require(//http//);
[0038]http.createServer(funct1n(request,response){
[003
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1