一种分布式Session管理中间件的制作方法

文档序号:9600866阅读:900来源:国知局
一种分布式Session管理中间件的制作方法
【技术领域】
[0001]本发明涉及Sess1n管理技术领域,特别涉及一种分布式Sess1n管理中间件。
【背景技术】
[0002]随着互联网的发展,人们要求服务器系统具有更高的性能和稳定性,由此使得服务器集群系统的应用越来越广泛,而服务器集群系统中的Sess1n管理模式也由此从单机管理模式逐渐向集群管理模式扩展,Sess1n在集群节点之间的同步、存储成为了其核心技术问题。
[0003]目前,基于Tomcat或WebLogic中间件对于Sess1n的同步均是米用组播的方式,在各个集群节点进行Sess1n复制,这样需要对大量的Sess1n信息进行复制,在用户数量和集群数量达到一定规模后,对Sess1n信息的复制操作便成为了系统的性能瓶颈,从而降低了对Sess1n信息的管理效率。
[0004]综上所述可以看出,如何提高对Sess1n信息的管理效率,避免大量信息同步是目前亟待解决的问题。

【发明内容】

[0005]有鉴于此,本发明的目的在于提供一种分布式Sess1n管理中间件,提高了对Sess1n信息的管理效率,避免大量信息同步。其具体方案如下:
[0006]—种分布式Sess1n管理中间件,应用于服务器集群系统,所述服务器集群系统包括N台节点服务器,N为正整数,其中,所述N台节点服务器中包括一台中心节点服务器;所述分布式Sess1n管理中间件包括Sess1n生命周期管理模块和Sess1n存储器;其中,
[0007]所述Sess1n生命周期管理模块,用于当用户通过浏览器向所述服务器集群系统发送的本次会话请求为首次会话请求时,创建与本次会话请求对应的Sess1n信息,并将该Sess1n信息发送至所述Sess1n存储器;当用户通过浏览器向所述服务器集群系统发送的本次会话请求并非首次会话请求时,从所述Sess1n存储器中读取出与该用户通过当前浏览器发送的首次会话请求所对应的Sess1n信息;
[0008]所述Sess1n存储器,用于对每次所述Sess1n生命周期管理模块发送的Sess1n信息进行存储,并且当有新的节点服务器被添加到所述服务器集群系统中时,通过所述中心节点服务器,将自身存储的所有Sess1n信息下发至所述新的节点服务器。
[0009]优选的,所述Sess1n存储器包括Sess1n缓冲池和MongoDB数据库;其中,
[0010]所述Sess1n缓冲池,用于在每次接收到所述Sess1n生命周期管理模块发送的Sess1n信息后,对该Sess1n信息进行缓存处理,并将该Sess1n信息转发至所述MongoDB数据库;
[0011]所述MongoDB数据库,用于在每次接收到所述Sess1n缓冲池发送的Sess1n信息后,对该Sess1n信息进行持久化存储,并且当有新的节点服务器被添加到所述服务器集群系统中时,通过所述中心节点服务器,将自身存储的所有Sess1n信息下发至所述新的节点服务器。
[0012]优选的,所述中心节点服务器包括:
[0013]指令接收单元,用于当有新的节点服务器被添加到所述服务器集群系统中时,获取所述新的节点服务器发送的Sess1n信息请求指令;
[0014]信息传输单元,用于当所述指令接收单元接收到所述Sess1n信息请求指令时,将所述MongoDB数据库中存储的所有Sess1n信息传输至所述新的节点服务器。
[0015]优选的,所述Sess1n生命周期管理模块包括:
[0016]请求拦截单元,用于对用户通过浏览器向所述服务器集群系统发送的本次会话请求进行拦截;
[0017]请求判断单元,用于判断所述请求拦截单元拦截到的本次会话请求中是否携带Sess1nID,如果否,则判定本次会话请求为首次会话请求,如果是,则判定本次会话请求并非首次会话请求;
[0018]Sess1n创建单元,用于当本次会话请求没有携带Sess1nID时,创建与本次会话请求对应的Sess1n信息,并将该Sess1n信息发送至所述Sess1n缓冲池,其中,每个Sess1n信息均包含与其对应的Sess1nID ;
[0019]Sess1n读取单元,用于当本次会话请求携带有Sess1nID时,利用该Sess1nID,确定当前所述Sess1n缓冲池中是否存储有与该Sess1nID对应的Sess1n信息,如果是,则从所述Sess1n缓冲池中读取出与该Sess1nID对应的Sess1n信息,如果否,贝>J从所述MongoDB数据库读取出与该Sess1nID对应的Sess1n信息。
[0020]优选的,所述分布式Sess1n管理中间件还包括超时Sess1n销毁模块,其中,
[0021]所述超时Sess1n销毁模块,用于对所述Sess1n缓冲池的每个Sess1n信息是否超时进行判断,当判断出所述Sess1n缓冲池的任一 Sess1n信息超时后,对该Sess1n信息进行销毁处理;
[0022]所述Sess1n缓冲池,还用于当所述所述超时Sess1n销毁模块对所述Sess1n缓冲池中的任一 Sess1n信息进行销毁后,发送相应指令到所述MongoDB数据库,以通知所述MongoDB数据库对相应的Sess1n信息进行销毁处理。
[0023]优选的,所述超时Sess1n销毁模块包括:
[0024]超时监控单元,用于对所述Sess1n缓冲池中的每个Sess1n信息进行扫描,并计算当前时刻与每个Sess 1n信息对应的上一次会话请求的时刻之间的时间差,判断每个Sess1n信息对应的时间差是否大于或等于预设值;
[0025]销毁指令发送单元,用于当所述超时监控单元判断出任一 Sess1n信息对应的时间差大于或等于所述预设值时,向所述Sess1n缓冲池发送与该Sess1n信息对应的Sess1n销毁指令,以使所述Sess1n缓冲池根据该Sess1n销毁指令对相应的Sess1n信息进行销毁处理。
[0026]优选的,所述分布式Sess1n管理中间件还包括:
[0027]Sess1n属性更新单元,用于当需要对已创建的任一 Sess1n信息的属性进行更新时,同时对所述Sess1n缓冲池和所述MongoDB数据库中相应的Sess1n信息的属性进行更新处理。
[0028]优选的,所述分布式Sess1n管理中间件还包括:
[0029]Sess1n会话时间变更单元,用于当需要对已创建的任一 Sess1n信息的会话时间进行变更时,仅对所述Sess1n缓冲池中的相应Sess1n信息的会话时间进行变更。
[0030]优选的,所述分布式Sess1n管理中间件还包括:
[0031 ] Sess1n监控模块,用于对所述Sess1n缓冲池中的Sess1n信息的数量以及占用内存情况进行监控,并对所述MongoDB数据库的运行状态进行监控。
[0032]优选的,所述分布式Sess1n管理中间件还包括:
[0033]MongoDB副本集,用于对所述MongoDB数据库中存储的数据进行备份处理。
[0034]本发明中,分布式Sess1n管理中间件包括Sess1n生命周期管理模块和Sess1n存储器;其中,Sess1n生命周期管理模块用于当用户通过浏览器向服务器集群系统发送的本次会话请求为首次会话请求时,仓ll建与本次会话请求对应的Sess1n信息,并将该Sess1n信息发送至Sess1n存储器;Sess1n存储器用于对每次Sess1n生命周期管理模块发送的Sess1n信息进行存储,并且当有新的节点服务器被添加到服务器集群系统中时,通过中心节点服务器,将自身存储的所有Sess1n信息下发至新的节点服务器。可见,本发明中,当用户通过浏览器向服务器集群系统发送首次会话请求时,均通过Sess1n生命周期管理模块创建相应的Sess1n信息,并通过Sess1n存储器对Sess1n生命周期管理模块创建的Sess1n信息进行存储,当有新的节点服务器被添加到服务器集群系统中时,便可通过中心节点服务器将Sess1n存储器存储的所有Sess1n信息下发至新的节点服务器,这样相当于在Sess1n存储器中存储了所有的Sess1n信息,当需要向新的节点服务器同步Sess1n信息时,只需通过中心节点服务器将Sess1n存储器中存储的Sess1n信息下发至该新的节点服务器便可,从而避免了现有技术中由于采用组播的方式进行Sess1n信息同步而造成的需要对大量信息进行同步的问题,从而提高了对Sess1n信息的管理效率。
【附图说明】
[0035]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
[0036]图1为本发明实施例公开的一
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1