CN104320404B - 一种多线程高性能http代理实现方法及系统 - Google Patents

一种多线程高性能http代理实现方法及系统 Download PDF

Info

Publication number
CN104320404B
CN104320404B CN201410619737.1A CN201410619737A CN104320404B CN 104320404 B CN104320404 B CN 104320404B CN 201410619737 A CN201410619737 A CN 201410619737A CN 104320404 B CN104320404 B CN 104320404B
Authority
CN
China
Prior art keywords
client
socket
server
epoll
stored
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201410619737.1A
Other languages
English (en)
Other versions
CN104320404A (zh
Inventor
陆世亮
朱明�
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
University of Science and Technology of China USTC
Original Assignee
University of Science and Technology of China USTC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by University of Science and Technology of China USTC filed Critical University of Science and Technology of China USTC
Priority to CN201410619737.1A priority Critical patent/CN104320404B/zh
Publication of CN104320404A publication Critical patent/CN104320404A/zh
Application granted granted Critical
Publication of CN104320404B publication Critical patent/CN104320404B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/566Grouping or aggregating service requests, e.g. for unified processing

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明公开了一种多线程高性能http代理实现方法及系统,本发明的方案综合使用了epoll事件通知机制和多线程技术,通过合理的建模和设计,极大的提高了http代理的并发处理能力,有效地解决了现有http代理实现方案无法有效处理特大并发请求这一问题。

Description

一种多线程高性能http代理实现方法及系统
技术领域
本发明涉及互联网信息传输领域,尤其涉及一种多线程高性能http代理实现方法及系统
背景技术
近十年来,互联网飞速发展,互联网的使用人数也在急剧膨胀,这就对传统C/S(客户机/服务器)模式下的http(超文本传送协议)代理服务器提出了很大的挑战,代理服务器需要有足够大的并发处理能力才能去满足日常的用户需求,随着互联网使用率的不断增大,这样的并发处理能力要求也在不断的增加,而传统的http代理服务器在并发处理能力上则没有跟上步伐。
关于如何提升http代理服务器的并发服务能力,以满足大并发情景下用户的需求,方法有多种,既可以在现有http代理服务器的基础上优化配置,也可以使用最新的技术重新设计http代理的架构,传统的http代理实现方案包括apache http代理项目以及haproxy项目等。
下面将分别介绍apache http代理项目以及haproxy项目这两种现有的http代理实现方案。
apache http代理项目是目前互联网上最流行的http代理实现方案。
它提供多进程多线程的代理解决方案,用户可以通过配置文件的方式来控制代理的运行模式,运行级别,以及其他的信息。其稳定的性能能够为互联网上绝大多数的网站提供良好的对外服务。
apache http代理项目也存在着不足之处:首先配置文件过于庞大,这是因为apache http代理项目的目标是通用性,就难免要兼顾到各种情形,从这种意义上讲,它已经不是单纯的http代理,再者就是其经过公测的并发处理能力并不能满足特定情境下的用户需求,使得使用该项目的网站在特大并发请求的冲击下容易出现瘫痪。
haproxy项目是提供高可用性,负载均衡和基于TCP和HTTP应用的代理。
haproxy项目的实现技术是事件驱动,单一进程,同样具有稳定的并发处理能力,并且易于整合,也易于部署。但是,haproxy项目也存在这不足之处,仅仅采用单进程,单线程技术,并没有能够充分的利用系统的资源,这一定程度上限制了其并发处理能力的进一步提高,使得在特大并发情境下,采用该项目的网站仍然容易出现瘫痪。
发明内容
本发明的目的是提供一种多线程高性能http代理实现方法及系统,有效地解决了现有http代理实现方案无法有效处理特大并发请求这一问题。
本发明的目的是通过以下技术方案实现的:
一种多线程高性能http代理实现方法,该方法包括:
通过指定的地址接收来自客户端的连接请求,在成功连接后,根据该连接请求中携带的描述符创建客户端套接字并存储在哈希表中,且将该客户端套接字及其EPOLLIN事件注册到epoll中;
当触发客户端的EPOLLIN事件时,通过所述客户端套接字读取来自客户端的http请求,并将该http请求存储至本地后进行解析,若解析成功,但本地缓存未命中时向服务器发起连接,在成功连接服务器后,生成一对应的服务器套接字并存储在哈希表中,且将该服务器套接字及其EPOLLOUT事件注册到epoll中;
从哈希表中定位该客户端套接字,并触发服务器的EPOLLOUT事件,通过该客户端套接字取出存储在本地的http请求后通过所述服务器套接字转发给对应的服务器,且将该服务器套接字及其EPOLLIN事件注册到epoll中;
当触发服务器的EPOLLIN事件时,通过该服务器从哈希表中定位对应的客户端套接字,从服务器中读取该客户端套接字对应客户端http请求的响应消息并存储,且将该客户端套接字及其EPOLLOUT事件注册到epoll中;
通过该服务器从哈希表中定位该客户端套接字,并触发EPOLLOUT事件,通过该客户端套接字取出存储在本地的响应消息后通过所述客户端套接字发送至对应的客户端。
进一步的,所述通过该客户端套接字取出存储在本地的响应消息后通过所述客户端套接字发送至对应的客户端之后包括:
判断是否与该客户端继续保持连接;
若是,则将该客户端套接字重新注册到epoll中;否则,在哈希表删除该客户端的相关信息并关闭连接。
一种多线程高性能http代理实现系统,该系统包括:
接收连接模块,用于通过指定的地址接收来自客户端的连接请求,在成功连接后,根据该连接请求中携带的描述符创建客户端套接字并存储在哈希表中,且将该客户端套接字及其EPOLLIN事件注册到epoll中;
读取请求模块,用于当触发客户端的EPOLLIN事件时,通过所述客户端套接字读取来自客户端的http请求,并将该http请求存储至本地后进行解析,若解析成功,但本地缓存未命中时向服务器发起连接,在成功连接服务器后,生成一对应的服务器套接字并存储在哈希表中,且将该服务器套接字及其EPOLLOUT事件注册到epoll中;
转发请求模块,用于从哈希表中定位该客户端套接字,并触发服务器的EPOLLOUT事件,通过该客户端套接字取出存储在本地的http请求后通过所述服务器套接字转发给对应的服务器,且将该服务器套接字及其EPOLLIN事件注册到epoll中;
读取响应模块,用于当触发服务器的EPOLLIN事件时,通过该服务器从哈希表中定位对应的客户端套接字,从服务器中读取该客户端套接字对应客户端http请求的响应消息并存储,且将该客户端套接字及其EPOLLOUT事件注册到epoll中;
响应转发模块,用于通过该服务器从哈希表中定位该客户端套接字,并触发EPOLLOUT事件,通过该客户端套接字取出存储在本地的响应消息后通过所述客户端套接字发送至对应的客户端。
进一步的,所述通过该客户端套接字取出存储在本地的响应消息后通过所述客户端套接字发送至对应的客户端之后包括:
判断是否与该客户端继续保持连接;
若是,则将该客户端套接字重新注册到epoll中;否则,在哈希表删除该客户端的相关信息并关闭连接。
由上述本发明提供的技术方案可以看出,本发明所提供的方案综合使用了epoll事件通知机制和多线程技术,通过合理的建模和设计,极大的提高了http代理的并发处理能力,有效地解决了现有http代理实现方案无法有效处理特大并发请求这一问题。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他附图。
图1为本发明实施例一提供的一种多线程高性能http代理实现方法的流程图;
图2为本发明实施例一提供的接收连接模块流程图;
图3为本发明实施例一提供的读取请求模块流程图;
图4为本发明实施例一提供的转发请求模块流程图;
图5为本发明实施例一提供的读取响应模块流程图;
图6为本发明实施例一提供的转发响应模块流程图;
图7为本发明实施例二提供的一种多线程高性能http代理实现系统的示意图。
具体实施方式
下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明的保护范围。
实施例一
图1为本发明实施例一提供的一种多线程高性能http代理实现方法的流程图。如图1所示,该方法主要包括如下步骤:
步骤11、通过指定的地址接收来自客户端的连接请求,在成功连接后,根据该连接请求中携带的描述符创建客户端套接字并存储在哈希表中,且将该客户端套接字及其EPOLLIN事件注册到epoll中。
步骤12、当触发客户端的EPOLLIN事件时,通过所述客户端套接字读取来自客户端的http请求,并将该http请求存储至本地后进行解析,若解析成功,但本地缓存未命中时向服务器发起连接,在成功连接服务器后,生成一对应的服务器套接字并存储在哈希表中,且将该服务器套接字及其EPOLLOUT事件注册到epoll中。
步骤13、从哈希表中定位该客户端套接字,并触发服务器的EPOLLOUT事件,通过该客户端套接字取出存储在本地的http请求后通过所述服务器套接字转发给对应的服务器,且将该服务器套接字及其EPOLLIN事件注册到epoll中。
步骤14、当触发服务器的EPOLLIN事件时,通过该服务器从哈希表中定位对应的客户端套接字,从服务器中读取该客户端套接字对应客户端http请求的响应消息并存储,且将该客户端套接字及其EPOLLOUT事件注册到epoll中。
步骤15、通过该服务器从哈希表中定位该客户端套接字,并触发EPOLLOUT事件,通过该客户端套接字取出存储在本地的响应消息后通过所述客户端套接字发送至对应的客户端。
其中,所述通过该服务器套接字取出响应消息后通过所述客户端套接字发送至对应的客户端之后包括:判断是否与该客户端继续保持连接;若是,则将该客户端套接字重新注册到epoll中;否则,在哈希表删除该客户端的相关信息并关闭连接。
本发明实施例中,套接字及其事件的管理使用了如下的epoll机制:(1)初始化阶段完成epoll机制的准备工作,完成epoll的初始化;(2)在注册套接字及其事件的时候声明使用EPOLLONESHOT属性;(3)在修改套接字事件的时候使用MOD操作。
同时,本发明实施例中大并发连接的处理使用了如下的多线程机制:上述5个步骤都有对应的线程进行实施;且使用互斥锁和条件变量来进行线程同步。
另外,本发明实施例中对于线程的管理使用了如下的线程池方法:(1)全部线程的整体状态通过线程池中的变量群来标识,并且变量群的维护在每一个线程中自主完成;(2)线程池中的线程数量由专门的动态管理算法来决定。(3)动态管理算法的运行有专门的动态管理线程维护。
为了便于理解,下面结合附图2-6对上述5个步骤做详细的说明。
步骤11为接收连接的过程,其工作流程如图2所示。首先,创建需要的对象,进行相应的初始化,然后在一个无限循环中,不断的接收来自客户端的连接请求,如果失败,则记录在日志文件中,对于接受成功的连接,将相关的信息(套接字及其描述符)存储在哈希表中,并且将该套接字及EPOLLIN事件注册到epoll当中。
当成功接收连接后操作系统会为这条连接分配一个新的描述符来创建一新的套接字,用于双方的通信,且每个客户端的套接字都不一样,服务器则是通过套接字和客户端通信的,客户端和套接字是一一对应的。
本发明实施例中引入了epoll事件,epoll事件包括EPOLLIN事件与EPOLLOUT事件。其中,EPOLLIN事件指的是当中套接字有数据进来,epoll机制就会触发EPOLLIN事件,然后由服务器读取数据;EPOLLOUT事件则是指若该套接字有数据要发送,则epoll机制触发EPOLLOUT事件,然后由服务器通过套接字把数据发送出去。
本步骤中将EPOLLIN事件注册到epoll当中是为了采用epoll的事件通知机制,即用户无需一直等待客户端发送请求,而是可以去处理其他事务,比如说处理其它客户端套接字中的数据;当客户端通过该套接字发送请求时epoll机制则会通知用户。
步骤12为读取http请求的过程,其工作流程如图3所示。首先,通过客户端套接字读取客户端的http请求(即此处已经触发步骤11中注册的EPOLLIN事件),对于暂时不可读的套接字,则再次注册到epoll当中,稍后再读;对于可以读取的,则将读取到的http请求存储到本地,并且解析该请求,解析失败则返回错误给客户端,解析成功则在本地缓存未命中的情况下向服务器发起连接,并且将成功的服务器套接字与EPOLLOUT事件注册到epoll当中。
本发明实施例所述的本地缓存未命中表示本地没有对应于该http的响应。具体来说,任何一个http代理都会有缓存的功能,也就是说本地的http代理会缓存一部分后台服务器发来的响应,当下次有新的http请求到来的时候,首先在本地查找,看看有没有对应的响应,如果有的话就直接把响应发给客户端了,这样可以分担一部分后台服务器的压力;但是如果本地的http代理没有对应的响应,则应该转发给服务器,此时有一个专有名词,称为缓存未命中。
步骤13为转发请求的过程,其工作流程如图4所示。首先,从哈希表中定位客户端套接字(即此处已经触发步骤12中注册的EPOLLOUT事件),如果定位失败,则进行错误处理;如果定位成功,则从本地取出与该客户端套接字相对应的http请求通过所述服务器套接字转发给对应的服务器,并且将服务器套接字及EPOLLIN事件注册到epoll当中。
步骤14为读取响应的过程,其工作流程如图5所示。首先,通过服务器定位到哈希表中的对应客户端套接字(即此处已经触发步骤13中注册的EPOLLIN事件),如果定位失败,进行错误处理;如果定位成功,则从服务器中读取该客户端套接字对应的http请求的响应消息并存储在本地,且将该客户端套接字及EPOLLOUT事件注册到epoll中。
步骤15为转发响应的过程,其工作流程如图6所示。首先,通过该服务器从哈希表中再次定位该客户端套接字,(即此处已经触发步骤14中注册的EPOLLOUT事件),定位失败,则进行错误处理;如果定位成功,则通过该客户端套接字取出存储在本地的响应消息后通过所述客户端套接字发送至对应的客户端,再判断是否保持连接,如果保持,则重新注册到epoll当中,如果不保持,则删除哈希节点,并且关闭连接。
本发明实施例的方案综合使用了epoll事件通知机制和多线程技术,通过合理的建模和设计,极大的提高了http代理的并发处理能力,有效地解决了现有http代理实现方案无法有效处理特大并发请求这一问题。
实施例二
本发明实施例二提供一种多线程高性能http代理实现系统,该系统可以部署在连接于客户端与服务器池之间的代理服务器中。如图7所示,该系统主要包括:
接收连接模块71,用于通过指定的地址接收来自客户端的连接请求,在成功连接后,根据该连接请求中携带的描述符创建客户端套接字并存储在哈希表中,且将该客户端套接字及其EPOLLIN事件注册到epoll中;
读取请求模块72,用于当触发客户端的EPOLLIN事件时,通过所述客户端套接字读取来自客户端的http请求,并将该http请求存储至本地后进行解析,若解析成功,但本地缓存未命中时向服务器发起连接,在成功连接服务器后,生成一对应的服务器套接字并存储在哈希表中,且将该服务器套接字及其EPOLLOUT事件注册到epoll中;
转发请求模块73,用于从哈希表中定位该客户端套接字,并触发服务器的EPOLLOUT事件,通过该客户端套接字取出存储在本地的http请求后通过所述服务器套接字转发给对应的服务器,且将该服务器套接字及其EPOLLIN事件注册到epoll中;
读取响应模块74,用于当触发服务器的EPOLLIN事件时,通过该服务器从哈希表中定位对应的客户端套接字,从服务器中读取该客户端套接字对应客户端http请求的响应消息并存储,且将该客户端套接字及其EPOLLOUT事件注册到epoll中;
响应转发模块75,用于通过该服务器从哈希表中定位该客户端套接字,并触发EPOLLOUT事件,通过该客户端套接字取出存储在本地的响应消息后通过所述客户端套接字发送至对应的客户端。
其中,所述通过该客户端套接字取出存储在本地的响应消息后通过所述客户端套接字发送至对应的客户端之后包括:判断是否与该客户端继续保持连接;若是,则将该客户端套接字重新注册到epoll中;否则,在哈希表删除该客户端的相关信息并关闭连接。
本发明实施例所提供的系统可以部署在连接于客户端与服务器池之间的代理服务器中。
需要说明的是,上述系统中包含的各个功能模块所实现的功能的具体实现方式在前面的各个实施例中已经有详细描述,故在这里不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将系统的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例可以通过软件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,上述实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明披露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。

Claims (4)

1.一种多线程高性能http代理实现方法,其特征在于,该方法包括:
通过指定的地址接收来自客户端的连接请求,在成功连接后,根据该连接请求中携带的描述符创建客户端套接字并存储在哈希表中,且将该客户端套接字及其EPOLLIN事件注册到epoll中;
当触发客户端的EPOLLIN事件时,通过所述客户端套接字读取来自客户端的http请求,并将该http请求存储至本地后进行解析,若解析成功,但本地缓存未命中时向服务器发起连接,在成功连接服务器后,生成一对应的服务器套接字并存储在哈希表中,且将该服务器套接字及其EPOLLOUT事件注册到epoll中;
从哈希表中定位该客户端套接字,并触发服务器的EPOLLOUT事件,通过该客户端套接字取出存储在本地的http请求后通过所述服务器套接字转发给对应的服务器,且将该服务器套接字及其EPOLLIN事件注册到epoll中;
当触发服务器的EPOLLIN事件时,通过该服务器从哈希表中定位对应的客户端套接字,从服务器中读取该客户端套接字对应客户端http请求的响应消息并存储,且将该客户端套接字及其EPOLLOUT事件注册到epoll中;
通过该服务器从哈希表中定位该客户端套接字,并触发客户端的EPOLLOUT事件,通过该客户端套接字取出存储在本地的响应消息后通过所述客户端套接字发送至对应的客户端。
2.根据权利要求1所述的方法,其特征在于,所述通过该客户端套接字取出存储在本地的响应消息后通过所述客户端套接字发送至对应的客户端之后包括:
判断是否与该客户端继续保持连接;
若是,则将该客户端套接字重新注册到epoll中;否则,在哈希表删除该客户端的相关信息并关闭连接。
3.一种多线程高性能http代理实现系统,其特征在于,该系统包括:
接收连接模块,用于通过指定的地址接收来自客户端的连接请求,在成功连接后,根据该连接请求中携带的描述符创建客户端套接字并存储在哈希表中,且将该客户端套接字及其EPOLLIN事件注册到epoll中;
读取请求模块,用于当触发客户端的EPOLLIN事件时,通过所述客户端套接字读取来自客户端的http请求,并将该http请求存储至本地后进行解析,若解析成功,但本地缓存未命中时向服务器发起连接,在成功连接服务器后,生成一对应的服务器套接字并存储在哈希表中,且将该服务器套接字及其EPOLLOUT事件注册到epoll中;
转发请求模块,用于从哈希表中定位该客户端套接字,并触发服务器的EPOLLOUT事件,通过该客户端套接字取出存储在本地的http请求后通过所述服务器套接字转发给对应的服务器,且将该服务器套接字及其EPOLLIN事件注册到epoll中;
读取响应模块,用于当触发服务器的EPOLLIN事件时,通过该服务器从哈希表中定位对应的客户端套接字,从服务器中读取该客户端套接字对应客户端http请求的响应消息并存储,且将该客户端套接字及其EPOLLOUT事件注册到epoll中;
响应转发模块,用于通过该服务器从哈希表中定位该客户端套接字,并触发客户端的EPOLLOUT事件,通过该客户端套接字取出存储在本地的响应消息后通过所述客户端套接字发送至对应的客户端。
4.根据权利要求3所述的系统,其特征在于,所述通过该客户端套接字取出存储在本地的响应消息后通过所述客户端套接字发送至对应的客户端之后包括:
判断是否与该客户端继续保持连接;
若是,则将该客户端套接字重新注册到epoll中;否则,在哈希表删除该客户端的相关信息并关闭连接。
CN201410619737.1A 2014-11-05 2014-11-05 一种多线程高性能http代理实现方法及系统 Active CN104320404B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410619737.1A CN104320404B (zh) 2014-11-05 2014-11-05 一种多线程高性能http代理实现方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410619737.1A CN104320404B (zh) 2014-11-05 2014-11-05 一种多线程高性能http代理实现方法及系统

Publications (2)

Publication Number Publication Date
CN104320404A CN104320404A (zh) 2015-01-28
CN104320404B true CN104320404B (zh) 2017-10-03

Family

ID=52375574

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410619737.1A Active CN104320404B (zh) 2014-11-05 2014-11-05 一种多线程高性能http代理实现方法及系统

Country Status (1)

Country Link
CN (1) CN104320404B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109766131B (zh) * 2017-11-06 2022-04-01 上海宝信软件股份有限公司 基于多线程技术实现软件智能化自动升级的系统及方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1997000A (zh) * 2005-12-31 2007-07-11 腾讯科技(深圳)有限公司 一种基于虚拟主机的web服务器及用户获取访问数据的方法
CN103164256A (zh) * 2011-12-08 2013-06-19 深圳市快播科技有限公司 一种实现单机支持高并发处理方法及系统
CN103312625A (zh) * 2012-03-09 2013-09-18 深圳市腾讯计算机系统有限公司 一种网络通信的方法和系统
CN103329113A (zh) * 2010-10-10 2013-09-25 阿卡麦科技公司 配置用于分级高速缓存的代理服务器以及动态站点加速和自定义对象和相关的方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9384071B2 (en) * 2011-03-31 2016-07-05 Solarflare Communications, Inc. Epoll optimisations

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1997000A (zh) * 2005-12-31 2007-07-11 腾讯科技(深圳)有限公司 一种基于虚拟主机的web服务器及用户获取访问数据的方法
CN103329113A (zh) * 2010-10-10 2013-09-25 阿卡麦科技公司 配置用于分级高速缓存的代理服务器以及动态站点加速和自定义对象和相关的方法
CN103164256A (zh) * 2011-12-08 2013-06-19 深圳市快播科技有限公司 一种实现单机支持高并发处理方法及系统
CN103312625A (zh) * 2012-03-09 2013-09-18 深圳市腾讯计算机系统有限公司 一种网络通信的方法和系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
一种内核级多进程负载均衡会话保持方法;张颖楠等;《计算机工程》;20140315;第40卷(第3期);第76-81页 *
基于epoll+线程池的服务器性能增强设计技术的研究;朱丹青等;《武汉工业学院学报》;20130930;第32卷(第3期);第40-43页 *

Also Published As

Publication number Publication date
CN104320404A (zh) 2015-01-28

Similar Documents

Publication Publication Date Title
US10491523B2 (en) Load distribution in data networks
EP3389219B1 (en) Access request conversion method and device
CN104054316B (zh) 用于对sms中心进行负载平衡和建立虚拟专用网络的系统和方法
CN104620559B (zh) 用于支持分布式数据网格集群中的可伸缩消息总线的系统和方法
CN101193089B (zh) 有状态会话系统及其实现方法
EP3837604B1 (en) In situ triggered function as a service within a service mesh
CN103209223B (zh) 分布式应用会话信息共享方法、系统和应用服务器
CN102523234B (zh) 一种应用服务器集群实现方法及系统
JP5931934B2 (ja) マルチサーバー予約システムにおける集中型予約コンテキスト管理のための方法及びシステム
CN102624881B (zh) 一种面向移动设备的服务缓存系统架构及开发方法
CN106713391B (zh) 一种session信息的共享方法和共享系统
CN103503424A (zh) 用于实现多核系统中的连接镜像的系统和方法
US11741075B2 (en) Methods and system of tracking transactions for distributed ledger
CN103490886A (zh) 权限数据的验证方法、装置及系统
CN109905409A (zh) 基于Socket.IO的物联网网关实时双向通信系统
CN103200212A (zh) 一种在云计算环境下实现分布式会话的方法和系统
CN107302582B (zh) 千万级物联网场景的数据采集及弱推送方法
CN102055771B (zh) 面向云服务的多并发业务流控制装置及控制方法
CN112149079A (zh) 基于微服务架构的规划评审管理平台及用户访问授权方法
CN104811476A (zh) 一种面向应用服务的高可用部署实现方法
CN105872856A (zh) 一种流媒体文件分发方法及系统
US20160308871A1 (en) Network element data access method and apparatus, and network management system
Abdelfattah et al. RSAM: An enhanced architecture for achieving web services reliability in mobile cloud computing
CN103428288A (zh) 基于分区状态表和协调节点的副本同步方法
CN104320404B (zh) 一种多线程高性能http代理实现方法及系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant