[发明专利]一种通用的用户自定义会话系统及其会话管理方法在审
申请号: | 201510143736.9 | 申请日: | 2015-03-30 |
公开(公告)号: | CN104836839A | 公开(公告)日: | 2015-08-12 |
发明(设计)人: | 曹春;马晓星;张婕 | 申请(专利权)人: | 南京大学 |
主分类号: | H04L29/08 | 分类号: | H04L29/08 |
代理公司: | 南京苏高专利商标事务所(普通合伙) 32204 | 代理人: | 柏尚春 |
地址: | 210008 江*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 通用 用户 自定义 会话 系统 及其 管理 方法 | ||
技术领域
本发明涉及用户会话技术,具体涉及一种通用的用户自定义会话系统及其会话管理方法。
背景技术
由于服务器的负载越来越大,服务器集群中通常会使用负载均衡器,将用户请求分发给不同的服务器,以减轻服务器负载。同样,云计算中的PaaS平台为保障应用的高可用性,通常会扩展多个实例运行,以达到负载均衡的目的。因此PaaS平台中可能会引入一个负载均衡器,当应用的访问请求量较大时,由负载均衡器将请求转发给应用的不同实例。由于HTTP是无状态的,而有些请求可能需要维护用户状态,因此用户和服务器之间需要维护用户会话(session),如购物车需要使用session来记录用户选择的商品。在一个应用服务器上存储会话信息可能比在不同服务器间共享该信息更为高效,因此一般使用负载均衡器,将用户的一系列访问请求转发到同一个应用实例所在的服务器上,也就是说,负载均衡器需要提供黏性转发的功能。
一个典型的系统一般使用唯一的session ID来收集客户的会话信息。开始时,用户的第一个请求并不包含session ID,处理该请求的服务器会生成一个会话,并生成一个该会话的唯一的标识,即session ID。服务器在请求返回结果中加入该session ID,该用户在后续的请求中,就可以使用该唯一的session ID,将请求交由同一个服务器处理。session ID可能被编码在URL中,也有可能存储在服务器生成的cookie中。
在一些分布式系统中,负载均衡器或者路由器用于接收客户端请求,并检测出其中的session ID,然后将该请求转发给生成该session ID的服务器,这样保证了该会话存储在同一台服务器中。一般将使用session ID来选择处理用户请求的服务器的技术称为黏性会话、黏性负载均衡或者黏性路由,因为session ID使得该会话中所有的用户请求都黏到同一个服务器。
现有的负载均衡器一般是应用类型相关的,只支持特定类型的应用的请求的转发,而部署在PaaS平台的应用类型是多样的,现有的负载均衡器并不能满足这种需求,则需要对传统的负载均衡器进行扩展,以支持多种应用类型的负载均衡。
负载均衡器为了实现黏性转发,一般需要维护一张session ID和服务器的映射表,然后路由器或者负载均衡器根据session ID在该表中查找相应的服务器。一般的Java Web应用服务器生成的会话的名字为JSESSIONID,如Tomcat、Weblogic;而PHP服务器生成的会话的名字一般为PHPSESSIONID。因此,目前迫切需要一种通用的会话管理的机制。
发明内容
发明目的:本发明的目的在于解决现有技术存在的不足,提供一种通用的用户自定义会话系统及其会话管理方法。
技术方案:本发明的一种通用的用户自定义会话系统,包括若干客户端、网络、负载均衡器(例如可以是PaaS平台中的负载均衡器)以及若干应用服务器,所述客户端与网络相互连通,网络的另一端与负载均衡器相连通,负载均衡器上连接有应用服务器;
所述客户端通过网络向应用服务器发出会话请求,请求经过负载均衡器转发至应用服务器,应用服务器处理用户请求,并产生及存储相应的会话。
本发明还公开了一种通用的用户自定义会话系统的会话管理方法,包括以下步骤:
(1)用户从客户端发出请求;若请求中没有会话信息,则随机选择一个可用的应用服务器并记录转发的服务器,若请求中含有会话,则负载均衡器查表并找到相应的应用服务器;最后负载均衡器将请求转发至应用服务器;
(2)应用服务器向负载均衡器注册并指明支持的应用类型type及服务器地址;
(3)负载均衡器检查是否有该类型的注册表;若有该类型的注册表,则负载均衡器在注册表中登记应用服务器的地址;若负载均衡器检查出没有该类型的注册表,则负载均衡器创建一个该类型的注册表,最后负载均衡器也在该新建的注册表中登记应用服务器的地址;
进一步的,客户端发出的请求头部包含有黏性转发字段(即SessionKey字段),负载均衡器接收到请求时,根据黏性转发字段查找相应的注册表并转发;负载均衡器为不同的应用类型创建不同的会话映射表;所述黏性转发字段由用户自定义其关键字。
用户可以指明黏性转发字段是JSESSIONID,表明是一般的Java Web应用;也可以指明黏性转发字段是PHPSESSIONID,用于一般的PHP应用;或者可以自己定义一个黏性转发字段,如Transaction。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京大学,未经南京大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510143736.9/2.html,转载请声明来源钻瓜专利网。