分布式集群系统下的session共享方法、装置及系统制造方法及图纸

技术编号:14554059 阅读:83 留言:0更新日期:2017-02-05 03:15
本发明专利技术公开了一种分布式集群系统下的session共享方法、装置及系统,上述方法包括:tomcat服务器接收客户端发送的携带参数TokenId的请求;tomcat服务器根据该请求携带的参数TokenId确定session值,并根据确定的session值从一个集群性质的redis服务器获取session数据。本发明专利技术公开的分布式集群系统下的session共享方法、装置及系统,能够实现基于redis集群模式的session共享。

Method, device and system for sharing session in distributed cluster system

The invention discloses a distributed cluster system under the session sharing method, device and system. The method comprises the following steps: carrying the parameters of the TokenId Tomcat server receives a request sent by the client Tomcat server; the value of session is determined according to the parameters of the TokenId request to carry, and to determine the value of session to obtain session data from a redis server cluster properties according to the. The invention discloses a method, a device and a system for sharing session under a distributed cluster system, which can realize the session sharing based on the redis cluster mode.

【技术实现步骤摘要】

本专利技术涉及计算机
,尤指一种分布式集群系统下的session共享方法、装置及系统
技术介绍
目前,session(在网络应用中,称为“会话”)共享比较普遍的做法是复制容器间的session,以保持一致性,但是存在消耗系统性能、技术复杂、横向扩展受限的缺点。虽然后续引入了分布式高速缓存memcache来同步session,但是存在memcache支持的数据结构比较单一的缺点。另外,目前还引入了redis缓存来同步session,但是存在的缺点是redis单个master出现故障时,不会自动切换。
技术实现思路
为了解决上述技术问题,本专利技术提供了一种分布式集群系统下的session共享方法、装置及系统,能够实现基于redis集群模式的session共享。为了达到本专利技术目的,本专利技术提供一种分布式集群系统下的session共享方法,包括:tomcat服务器接收客户端发送的携带参数TokenId的请求;tomcat服务器根据该请求携带的参数TokenId确定session值,并根据确定的session值从一个集群性质的redis服务器获取session数据。进一步地,所述tomcat服务器配置有自定义的参数sessionKey,通过所述参数sessionKey建立参数TokenId与session值的映射关系。进一步地,所述tomcat服务器还配置有自定义的参数encoding和/或maxInactiveInterval,其中,所述参数encoding用于过滤编码,所述参数maxInactiveInterval用于设置session数据的超时时间。进一步地,所述参数sessionKey、encoding以及maxInactiveInterval配置在所述tomcat服务器的conf目录下的context.xml文件中。进一步地,所述tomcat服务器接收客户端发送的携带参数TokenId的请求之后,该方法还包括:所述tomcat服务器通过将不同项目的session数据进行关联,根据该请求携带的参数TokenId获取跨项目的session数据。进一步地,该方法还包括:tomcat服务器接收客户端发送的请求,保存自定义的session值,用于指向redis服务器中的session数据,并建立该session值与参数TokenId的映射关系。本专利技术还提供一种分布式集群系统下的session共享装置,应用于tomcat服务器,包括:接收模块,用于接收客户端发送的携带参数TokenId的请求;处理模块,用于根据该请求携带的参数TokenId确定session值,并根据确定的session值从一个集群性质的redis服务器获取session数据。进一步地,所述处理模块,还用于在所述接收模块接收到客户端发送的请求时,保存自定义的session值,用于指向redis服务器中的session数据,并建立该session值与参数TokenId的映射关系。进一步地,所述处理模块,还用于通过将不同项目的session数据进行关联,根据该请求携带的参数TokenId获取跨项目的session数据。本专利技术还提供一种分布式集群系统下的session共享系统,包括:一个集群性质的redis服务器、多个负载均衡的tomcat服务器以及客户端;所述tomcat服务器接收客户端发送的携带参数TokenId的请求,根据该请求携带的参数TokenId确定session值,并根据确定的session值从redis服务器获取session数据。在本专利技术中,tomcat服务器接收客户端发送的携带参数TokenId的请求,tomcat服务器根据该请求携带的参数TokenId确定session值,并根据确定的session值从一个集群性质的redis服务器获取session数据。如此,本专利技术提供的基于redis集群模式的session共享可以实现多个tomcat服务器共享同一个session。此外,本专利技术能够支持tomcat6、tomcat7、tomcat8黏性和非黏性session,无单一故障点,能够处理tomcat故障转移,能够处理redis故障转移,实现插件式session序列化,能够允许异步保存session,以提高响应速度,实现redis集群响应。进一步地,tomcat服务器通过将不同项目的session数据进行关联,根据客户端请求携带的参数TokenId获取跨项目的session数据。如此,本专利技术实现跨项目之间的session共享。附图说明附图用来提供对本专利技术技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本专利技术的技术方案,并不构成对本专利技术技术方案的限制。图1为本专利技术实施例提供的分布式集群系统下的session共享方法的流程图;图2为本专利技术一具体实施例的部署示意图;图3为本专利技术一具体实施例的流程图。本专利技术目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。具体实施方式应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。图1为本专利技术实施例提供的分布式集群系统下的session共享方法的流程图。如图1所示,本实施例提供的分布式集群系统下的session共享方法,包括以下步骤:步骤101:tomcat服务器接收客户端发送的携带参数TokenId的请求;步骤102:tomcat服务器根据该请求携带的参数TokenId确定session值,并根据确定的session值从一个集群性质的redis服务器获取session数据。于此,集群性质的redis服务器用于保存session数据,可以避免由于单一redis服务器故障造成的session服务中断。于实际应用中,通过基本的配置即可实现Linux环境下搭建redis集群环境。于此,tomcat服务器例如为多个负载均衡的tomcat服务器。其中,通过多个nginx搭配多个tomcat服务器达到负载均衡。于此,在每个tomcat服务器中进行相同的配置。于此,用户通过客户端浏览网页时发出相应的请求。session数据例如为用户帐号、登陆状态等用户信息或其他信息。然而,本专利技术对此并不限定。进一步地,tomcat服务器配置有自定义的参数sessionKey,通过所述参数sessionKey建立参数TokenId与session值的映射关系。进一步地,所述tomcat服务器还配置有自本文档来自技高网...

【技术保护点】
一种分布式集群系统下的session共享方法,其特征在于,包括:tomcat服务器接收客户端发送的携带参数TokenId的请求;tomcat服务器根据该请求携带的参数TokenId确定session值,并根据确定的session值从一个集群性质的redis服务器获取session数据。

【技术特征摘要】
1.一种分布式集群系统下的session共享方法,其特征在于,包括:
tomcat服务器接收客户端发送的携带参数TokenId的请求;
tomcat服务器根据该请求携带的参数TokenId确定session值,并根据确
定的session值从一个集群性质的redis服务器获取session数据。
2.根据权利要求1所述的方法,其特征在于,所述tomcat服务器配置有
自定义的参数sessionKey,通过所述参数sessionKey建立参数TokenId与
session值的映射关系。
3.根据权利要求2所述的方法,其特征在于,所述tomcat服务器还配置
有自定义的参数encoding和/或maxInactiveInterval,其中,所述参数encoding
用于过滤编码,所述参数maxInactiveInterval用于设置session数据的超时时
间。
4.根据权利要求3所述的方法,其特征在于,所述参数sessionKey、
encoding以及maxInactiveInterval配置在所述tomcat服务器的conf目录下的
context.xml文件中。
5.根据权利要求1所述的方法,其特征在于,所述tomcat服务器接收客
户端发送的携带参数TokenId的请求之后,还包括:所述tomcat服务器通过
将不同项目的session数据进行关联,根据该请求携带的参数TokenId获取跨
项目的session数据。
6.根据权利要求1所述的方法,其特征在于,还包括:...

【专利技术属性】
技术研发人员:黄琼
申请(专利权)人:努比亚技术有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1