会话控制方法、装置及系统的制作方法

文档序号:7919516阅读:137来源:国知局
专利名称:会话控制方法、装置及系统的制作方法
技术领域
本发明涉及网络技术领域,更具体地说,涉及一种会话(Session)控制方
法、装置及系统。
背景技术
Session即是用户端通过浏览器或者其他工具访问某网站时,与该网站的 某台服务器之间建立的一次会话。用户端访问某网站时,该网站的某台服务 器将针对接收到的Session请求,生成Session信息,通过Session为该用 户端才是供Session服务。session信息可以包含一些用户信息,以方便在整个 会话中使用,比如用户登录的用户名,密码.当用户刷新网页的时候,如果 session中没有用户名,密码,则会要求用户重新登录,如果session信息中已经 有了,就不需要登录了。
当该服务器发生故障时,其无法利用生成的Session信息为用户端提供 Session服务,我们将这种情况称为Session失效。现有技术对Session失 效的普遍采取的方式主要有以下两种
第一种方式全复制Session方式。即服务器集群中的某台服务器针 对Session请求生成Session信息后,将该Session信息复制到服务器集群 中其他各台服务器中。
第二种方式配对复制Session方式。即服务器集群中的某台服务器 针对Session请求生成Session信息后,将该Session信息复制到服务器集 群中另外一台服务器中。
可以看出,上述两种方式均存在一些问题,第一种方式会占用大量空间, 并且当并发量很大的情况下容易造成网络风暴,从而降低系统的吞吐量;而 第二种方式虽然能够一定程度上解决上述第一种方式的缺点,但是增大了
Session失效恢复出错的概率,因为当备份的服务器也同时发生故障而无法正 常工作,则无法对Session失效进行恢复。

发明内容
有鉴于此,本发明实施例提供一种会话控制方法、装置及通信系统,以在不增加系统吞吐量的情况下,提高Session失效恢复的成功率。 本发明实施例是这样实现的 一种会话控制方法,包括
在首次接收到客户端服务请求时,将该服务请求发送至服务器集群中的 服务器;
接收该服务器针对该服务请求生成的会话Session信息,并存储; 接收到该客户端继续发送的服务请求后,当该服务器无法提供服务时,
将存储的Session信息及该客户端当次发送的服务请求转发至该服务器集群
中其他服务器。
优选的,上述方法中,将该服务请求发送至服务器集群中的服务器包括 确定服务器集群中能够提供服务的服务器; 按照预设方式,从所述能够提供服务的服务器中确定目标服务器; 将服务请求发送至所述目标服务器。
优选的,上述方法中,将存储的Session信息及该客户端当次发送的服 务请求转发至该服务器集群中其他服务器包括
确定该服务器集群中其他能够提供服务的服务器;
按照所述预设方式,从所述其他能够提供服务的服务器中确定目标服务
器;
将存储的Session信息及客户端当次发送的服务请求转发给所述目标服 务器。
优选的,上述方法中,所述预设方式为随机方式,或权重从大到小的方 式,或依次4仑循的方式。
本发明实施例还4是供了一种会话控制装置,包括
第一处理单元,用于在首次接收到客户端服务请求时,将该服务请求发 送至服务器集群中的服务器;
第二处理单元,用于接收该服务器针对该服务请求生成的Session信息, 并存储;
第三处理单元,用于接收到该客户端继续发送的服务请求后,当该服务
器无法提供服务时,将存储的Session信息及该客户端当次发送的服务请求 转发至该服务器集群中其他服务器。
优选的,上述装置中,所述第一处理单元包括
第一确定单元,用于在首次接收到客户端服务请求时,确定服务器集群 中能够提供服务的服务器;
第二确定单元,用于按照预设方式,从所述能够提供服务的服务器中确 定目标服务器;
第一转发单元,用于将服务请求发送至所述目标服务器。
优选的,上述装置中,所述第三处理单元包括
第三确定单元,用于在接收到该客户端继续发送的服务请求后,在该第 二确定单元确定的目标服务器无法正常工作时,确定该服务器集群中其他能 够提供服务的服务器;
第四确定单元,用于按照所述预设方式,从所述其他能够提供服务的服 务器中确定目标服务器;
第二转发单元,用于将存储的Session信息及客户端当次发送的服务请 求转发给所述目标服务器。
优选的,上述装置中,所述预设方式为随机方式,或权重从大到小的方 式,或依次轮循的方式。
本发明同时还提供一种负载均衡器,该负载均衡器具有上述会话控制装置。
此外,本发明实施例还公开了一种通信系统,包括负载均衡器和服务器 集群,所述负载均衡器包括会话控制装置,该会话控制装置用于在首次接 收到客户端服务请求时,将该服务请求发送至服务器集群中的服务器;接收 该服务器针对该服务请求生成的Session信息,并存储;接收到该客户端继 续发送的服务请求后,当该服务器无法提供服务时,将存储的Session信息 及该客户端当次发送的服务请求转发至该服务器集群中其他服务器。
从上述的技术方案可以看出,与现有技术相比,本发明实施例摒弃了服 务器间复制Session信息进行备份的方式,将服务器生成的Session信息复 制到负载均衡器中进行备份,从而避免了集群中各服务器之间复制Session
所要付出的较大开销,增加系统的吞吐量,并可保证Session失效恢复的成 功率。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实 施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面 描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲, 在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。 图1为本发明实施例提供的一种会话控制方法的流程图; 图2为本发明实施例提供的一种通信系统的结构示意图; 图3为本发明实施例提供的一种会话控制装置的结构示意图; 图4为本发明实施例提供的一种会话控制装置的第一处理单元的结构示 意图5为本发明实施例提供的一种会话控制装置的第三处理单元的结构示 意图。
具体实施例方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行 清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而 不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作 出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参考图1,为本发明实施例提供的一种会话控制方法的流程图。
在图2所示的通信系统中,负载均衡器负责均衡服务器集群中各台服务 器的负荷,其同时需要接收客户端发送的服务请求,并对Session进行控制, 具体过程如下
步骤S101、接收客户端的服务请求。
步骤S102、按照预定方式将服务器集群中的某台或者某些服务器确定为 目标服务器。
步骤S103、将该服务请求提供给该目标服务器。
步骤S104、接收目标服务器针对服务请求而生成的Session信息,并存储。
步骤S105-S106、在接收到客户端后续发送的服务请求时,判断目标服 务器是否能够正常工作,若是,则进入步骤S107;否则,进入步骤S108。
步骤S107、将客户端的服务请求转发给该目标服务器,并将该目标服务 器返回的数据提供给该客户端。
步骤S108、按照预定方式重新确定目标服务器。
按照预先设定的方式将所述服务器集群中的其他服务器中的某台或者某 些服务器确定为目标服务器。
步骤S109、将客户端的服务请求及存储的原目标服务器生成的Session 信息复制到重新确定的目标服务器,由该重新确定的目标服务器进行处理。
上述步骤S102和步骤S108中,所述预定方式可以是随机选择方式或依 次轮循的方式。即负载均衡器可以默认服务器集群中的所有服务器均正常 工作,于是在接收到客户端的服务请求时,随机选择一台或者多台服务器作 为处理该服务请求的目标服务器;负载均衡器也可以在默认服务器集群中的 所有服务器均正常工作的情况下,以依次轮询的方式确定目标服务器,例如 服务器集群包含服务器A、服务器B、服务器C和服务器D,则在接收到某 客户端的服务请求时,将服务器A确定为目标服务器,此后,再接收到另一 客户端的服务请求时,则将服务器B确定为目标服务器,依次类推。
另外,所述预设方式还可以是按照权重从大到小的方式,假设服务集群 包含服务器A、服务器B、服务器C、服务器D和服务器E,工作负载均衡 器接收客户端的服务请求后,执行以下流程
首先,根据权重确定目标服务器,并将服务请求发送给该目标服务器。
各服务器的权重是根据工作负荷情况而定,原则是权重与负荷成反比, 即工作负荷越大,权重越小;工作负荷越小,权重越大。假设各服务器的 权重从大到小排列为服务器A、服务器B、服务器C和服务器D,则将客 户端的服务请求发送给服务器A。
然后,接收服务器A针对该服务请求生成的Session信息,并存储。
接着,在接收到该客户端后续发送的服务请求后,判断服务器A是否能 够正常工作,若是,则将该客户端后续发送的服务请求继续发送给服务器A,
由服务器A进行处理,否则,将服务器B确定为目标服务器,将该客户端的
服务请求及存储的由服务器A提供的Session信息一并发送至服务器B,由 服务器B进行处理。
确定服务器权重的操作可以是预先进行的,也就是说,负载均衡器预先 确定各服务器的工作负荷情况,并根据上述原则确定各服务器的权重,于是, 在接收到客户端的服务请求后,直接根据各服务器的权重确定目标服务器, 其中,确定各服务器的工作负荷情况的方式可以是定时发送询问信息,并 接收各各服务器反馈的响应信息,该响应信息携带用于指示工作负荷情况的 信息;另外,确定各服务器的工作负荷情况的方式还可以是各服务器将自 身的工作负荷定时上报给负载均衡器,负载均衡器即可确定各服务器的工作 负荷情况。
确定服务器权重的操作也可以在接收到客户端的服务请求后进行,也就 是说,当接收到客户端的服务请求后,确定各服务器的工作负荷情况,进而 确定各服务器的权重,其中确定各服务器的工作负荷情况的方式可以是发 送询问信息,并各服务器反馈响应信息,该响应信息中携带用于指示本身工 作负荷情况的信息,负载均衡器根据该响应信息即可确定各服务器的工作负 荷。
可以看出,上述两种方式各有利弊,前者可以加快负载均衡器的处理速 度,但是由于服务器的工作负荷情况是预先获取的,而不是实时获取的,则 可能会出现与现实情况不符的问题。而后者虽然能够保证与现实情况相符, 但是延緩处理转发服务请求的时间。具体采用上述那种方式可以根据用户需 求或者网络实际运行情况而定。
需要说明的是,所述目标服务器的数量可以是一台,也可以是多台,例 如,能够正常工作的服务器A、服务器B、服务器C和服务器D均可以为目 标服务器,负载均衡器接收到客户端的多条服务请求后,将这些服务请求分 发至各服务器中,由各服务器分别进行处理。分发的方式可以根据权重进行, 例如服务器A、服务器B、服务器C和服务器D的权重分别为5、 2、 2、 1, 当客户端的服务请求数量为10条时,可以将服务器A、服务器B、服务器C 和服务器D均确定为目标服务器,并将10条服务请求分为4份,分别包含5
条、2条、2条和1条服务,分别发送给服务器A、服务器B、服务器C和服 务器D。
本发明实施例摒弃了服务器间复制Session信息进行备份的方式,将服 务器生成的Session信息复制到负载均衡器中进行备份,从而避免了集群中 各服务器之间复制Session信息所要付出的较大开销,增加系统的吞吐量, 并可保证Session失效恢复的成功率。
针对上述部分方法实施例,本发明实施提供了一种会话控制装置,设置 于负载均衡器中,其结构如图3所示,包括第一处理单元31、第二处理单 元32和第三处理单元33。
其中
第一处理单元31,用于在首次接收到客户端服务请求时,将该服务请求 发送至服务器集群中的服务器。
第二处理单元32,用于接收该服务器针对该服务请求生成的Session信 息,并存储;
第三处理单元33,用于接收到该客户端继续发送的服务请求后,当该服 务器无法提供服务时,将存储的Session信息及该客户端当次发送的服务请 求转发至该服务器集群中其他服务器。
下面以图2所示场景为例进一步描述该会话控制装置的工作原理
第一处理单元31首次接收该客户端服务请求时,按照预定方式确定目标 服务器(服务器A),将该服务请求转发给服务器A,由第二处理单元32接 收服务器A发送的针对该服务请求的Session信息,并保存;第三处理单元 在接收到该客户端后续的服务请求时,判断服务器A是否能够正常工作,若 是,则将当次服务请求转发给服务器A,由服务器A进行处理,否则,按照 预定方式重新确定目标服务器(服务器B),将服务器A提供的Session信 息及客户端当次服务请求一并转发给服务器B,由服务器B进行处理。
图4示出了第一处理单元31的结构,包括第一确定单元311、第二确 定单元312和第一转发单元313。
其中
第一确定单元311,用于在首次接收到客户端会话Session请求时,确 定服务器集群中能够提供服务的服务器。
第二确定单元312,用于按照预设方式,从所述能够提供服务的服务器
中确定提供服务的服务器(即目标服务器)。所述预设方式可以为随机方式, 或权重从大到小的方式,或依次轮循的方式,这些方式的具体过程可以参照 前文方法部分的描述,在此不再赘述。
第一转发单元313,用于将服务请求发送至所述目标服务器。
图5示出了第三处理单元33的结构,包括第三确定单元331、第四确 定单元332和第二转发单元333。
第三确定单元331,用于在接收到该客户端继续发送的服务请求后,检 测原先处理该客户端服务请求的服务器是否能够正常工作,当检测结果显示 原先处理该客户端服务请求的服务器无法正常工作时,确定该服务器集群中 其他能够提供服务的服务器。
第四确定单元332,用于获取所述第三确定单元331的确定结果,按照 预设方式从所述其他能够提供服务的服务器中确定提供服务的服务器(也即 重新确定目标服务器)。所述预设方式可以为随机方式,或权重从大到小的 方式,或依次轮循的方式,这些方式的具体过程可以参照前文方法部分的描 述,在此不再赘述。
第二转发单元333,用于获^f又所述第四确定单元332的确定结果,将所 述第二处理单元32存储的Session及客户端当次发送的服务请求转发给所述 提供服务的服务器。
需要说明的是,具有上述会话控制装置的负载均衡器同样属于本发明要 求保护的范畴,该负载均衡器将客户端的服务请求转发给服务器集群中的某 台或某些服务器后,接收该服务器传送回来的针对该服务请求的Session信 息。在接收该客户端后续的服务请求时,如果原先处理该服务请求的服务器 出现故障,则将原先处理该服务请求的服务器生成的Session信息及该客户 端当次服务请求一并发送到服务器集群中的其他服务器,由其他服务器进行 处理。由此保证了 Session失效恢复的成功率。
当然,包含该负载均衡器和服务器集群的通信系统同样属于本发明保护 范畴。
本领域技术人员可以理解,可以使用许多不同的工艺和技术中的任意一 种来表示信息、消息和信号。例如,上述说明中提到过的消息、信息都可以 表示为电压、电流、电磁波、磁场或磁性粒子、光场或以上任意组合。
专业人员还可以进一步应能意识到,结合本文中所公开的实施例描述的 各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来 实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能 一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来 执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每 个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为 超出本发明的范围。
结合本文中所^^开的实施例描述的方法或算法的步骤可以用石更件、处理 器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器
(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程 ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所7>知的任意 其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用 本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易 见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下, 在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例, 而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
权利要求
1、一种会话控制方法,其特征在于,包括在首次接收到客户端服务请求时,将该服务请求发送至服务器集群中的服务器;接收该服务器针对该服务请求生成的会话Session信息,并存储;接收到该客户端继续发送的服务请求后,当该服务器无法提供服务时,将存储的Session信息及该客户端当次发送的服务请求转发至该服务器集群中其他服务器。
2、 如权利要求1所述的方法,其特征在于,将该服务请求发送至服务器 集群中的服务器包括确定服务器集群中能够提供服务的服务器;按照预设方式,从所述能够提供服务的服务器中确定目标服务器;将服务请求发送至所述目标服务器。
3、 如权利要1所述的方法,其特征在于,将存储的Session信息及该客 户端当次发送的服务请求转发至该服务器集群中其他服务器包括确定该服务器集群中其他能够提供服务的服务器;按照所述预设方式,从所述其他能够提供服务的服务器中确定目标服务器;将存储的Session信息及客户端当次发送的服务请求转发给所述目标服 务器。
4、 如权利要1、 2或3所述的方法,其特征在于所述预设方式为随机 方式,或权重从大到小的方式,或依次轮循的方式。
5、 一种会话控制装置,其特征在于,包括第一处理单元,用于在首次接收到客户端服务请求时,将该服务请求发 送至服务器集群中的服务器;第二处理单元,用于接收该服务器针对该服务请求生成的Session信息, 并存储;第三处理单元,用于接收到该客户端继续发送的服务请求后,当该服务 器无法提供服务时,将存储的Session信息及该客户端当次发送的服务请求 转发至该服务器集群中其他服务器。
6、 如权利要求5所述的装置,其特征在于,所述第一处理单元包括 第一确定单元,用于在首次接收到客户端服务请求时,确定服务器集群中能够提供服务的服务器;第二确定单元,用于按照预设方式,从所述能够提供服务的服务器中确 定目标服务器;第一转发单元,用于将服务请求发送至所述目标服务器。
7、 如权利要5所述的装置,其特征在于,所述第三处理单元包括 第三确定单元,用于在接收到该客户端继续发送的服务请求后,在该第二确定单元确定的目标服务器无法正常工作时,确定该服务器集群中其他能 够提供服务的服务器;第四确定单元,用于按照所述预设方式,从所述其他能够提供服务的服 务器中确定目标服务器;第二转发单元,用于将存储的Session信息及客户端当次发送的服务请 求转发给所述目标服务器。'
8、如权利要5、 6或7所述的装置,其特征在于,所述预设方式为随机 方式,或权重/人大到小的方式,或依次l仑循的方式。
9、 一种负载均衡器,其特征在于,包括如权利4-8任意一项所述的会话控制装置。
10、 一种通信系统,包括负载均衡器和服务器集群,其特征在于 所述负载均衡器包括会话控制装置,该会话控制装置用于在首次接收到客户端服务请求时,将该服务请求发送至服务器集群中的服务器;接收该 服务器针对该服务请求生成的Session信息,并存储;接收到该客户端继续 发送的服务请求后,当该服务器无法提供服务时,将存储的Session信息及 该客户端当次发送的服务请求转发至该服务器集群中其他服务器。
全文摘要
本发明实施例公开了一种会话控制方法,包括在首次接收到客户端会话服务请求时,将该服务请求发送至服务器集群中的服务器;接收该服务器针对该服务请求生成的Session信息,并存储;接收到该客户端继续发送的服务请求后,当该服务器无法提供服务时,将存储的Session信息及该客户端当次发送的服务请求转发至该服务器集群中其他服务器。本发明实施例还公开了一种会话控制装置及一种通信系统。本发明实施例将服务器生成的Session信息在负载均衡器中进行备份,避免了各服务器之间复制Session信息所要付出的较大开销,增加系统的吞吐量,保证Session失效恢复的成功率。
文档编号H04L29/06GK101364930SQ20081016129
公开日2009年2月11日 申请日期2008年9月24日 优先权日2008年9月24日
发明者王新生 申请人:深圳市金蝶中间件有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1