掌桥专利:专业的专利平台
掌桥专利
首页

一种会话保持方法及装置

文献发布时间:2023-06-19 12:05:39


一种会话保持方法及装置

技术领域

本发明涉及网络通信技术领域,具体涉及一种会话保持方法及装置。

背景技术

目前,单台服务器由于性能不足无法处理众多用户的访问,就需要通过多台服务器来提供服务,此时可以应用负载均衡技术在多台服务器中合理的分配用户的访问。

在实际应用中,在某些业务场景下,要求客户端和服务器之间保持一个会话(Session)以记录客户端的各种信息。但是由于负载均衡技术的使用,客户端与服务器之间进行一次会话之后,客户端再次发起访问的时候,经常会分配到另外一台服务器处理,使客户端和服务器之间的会话无法保持,导致业务处理失败。因此,如何提出一种会话保持方法,使客户端和服务器能够进行会话保持,避免由于无法进行会话保持导致的业务处理失败成为本领域需要解决的重要课题。

发明内容

针对现有技术中的问题,本发明实施例提供一种会话保持方法及装置,能够至少部分地解决现有技术中存在的问题。

一方面,本发明提出一种会话保持方法,包括:

接收各个客户端发送的业务请求;

若所述业务请求中包括会话标识,则根据所述会话标识获得访问标识,并根据所述访问标识确定处理所述业务请求的业务服务器;其中,所述访问标识与业务服务器一一对应;

将所述业务请求发送给所述业务服务器进行处理。

另一方面,本发明提供一种会话保持装置,包括:

接收模块,用于接收各个客户端发送的业务请求;

确定模块,用于在所述业务请求中包括会话标识之后,根据所述会话标识获得访问标识,并根据所述访问标识确定处理所述业务请求的业务服务器;其中,所述访问标识与业务服务器一一对应;

发送模块,用于将所述业务请求发送给所述业务服务器进行处理。

再一方面,本发明提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述任一实施例所述会话保持方法的步骤。

又一方面,本发明提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述任一实施例所述会话保持方法的步骤。

本发明实施例提供的会话保持方法及装置,能够接收各个客户端发送的业务请求,若业务请求中包括会话标识,则根据所述会话标识获得访问标识,并根据访问标识确定处理所述业务请求的业务服务器,并将业务请求发送给业务服务器进行处理,通过访问标识实现了客户端与业务服务器的会话保持,提高了业务处理的可靠性。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:

图1是本发明第一实施例提供的业务处理系统的结构示意图。

图2是本发明第二实施例提供的会话保持方法的流程示意图。

图3是本发明第三实施例提供的会话保持方法的流程示意图。

图4是本发明第四实施例提供的会话保持方法的流程示意图。

图5是本发明第五实施例提供的会话保持装置的结构示意图。

图6是本发明第六实施例提供的会话保持装置的结构示意图。

图7是本发明第七实施例提供的会话保持装置的结构示意图。

图8是本发明第八实施例提供的会话保持装置的结构示意图。

图9是本发明第九实施例提供的会话保持装置的结构示意图。

图10是本发明第十实施例提供的会话保持装置的结构示意图。

图11是本发明第十一实施例提供的电子设备的实体结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。

为了便于理解本申请提供的技术方案,下面先对本申请技术方案的研究背景进行简单说明。在某些要求登录状态的应用场景下,要求客户端和业务服务器之间保持一个Session以记录客户端的各种信息。例如在反洗钱系统中,一个客户端与业务服务器之间经常需要经过多次的交互过程才能完成一个业务的处理。由于上述多次交互过程是密切相关的,业务服务器在进行这些交互过程的某一个交互步骤时往往需要获得上一次或者上几次的交互过程的处理结果,这就要求所有这些相关的交互过程都由一台业务服务器完成,而不能被分散到不同的业务服务器上进行处理,否则会导致业务处理的失败。因此,本发明实施例提供一种会话保持方法,使客户端和业务服务器之间进行会话保持,以保证业务处理成功。

图1是本发明第一实施例提供的业务处理系统的结构示意图,如图1所示,本发明实施例提供的业务处理系统包括负载均衡主服务器1、负载均衡备用服务器2、多个客户端3和多台业务服务器4,其中:

每个客户端3与负载均衡主服务器1通信连接,负载均衡主服务器1与负载均衡备用服务器2通信连接,每台业务服务器4与负载均衡主服务器1通信连接。其中,客户端3包括但不限于台式机、笔记本电脑、平板电脑等设备。

负载均衡主服务器1用于执行本发明实施例提供的会话保持方法。每个客户端3发送器业务请求给负载均衡主服务器1,负载均衡主服务器1将各个客户端3发送的业务请求分配给各个业务服务器4进行处理。业务服务器4对接收到的业务请求进行处理,并通过负载均衡主服务器1向对应客户端3返回业务请求的处理结果。其中,负载均衡主服务器1和负载均衡备用服务器2上可以通过开源软件Nginx实现负载均衡和本发明实施例提供的会话保持方法。

下面以负载均衡主服务器(以下简称主服务器)作为执行主体为例,来说明本发明实施例提供的会话保持方法的具体实现过程。

图2是本发明第二实施例提供的会话保持方法的流程示意图,如图2所示,本发明实施例提供的会话保持方法,包括:

S201、接收各个客户端发送的业务请求;

具体地,用户可以通过客户端向主服务器发送业务请求,所述主服务器会接收所述业务请求。其中,所述业务请求根据实际需要进行设置,本发明实施例不做限定。

例如,所述业务请求为登录请求,付款请求,将商品加入购物车请求等等。

S202、若所述业务请求中包括会话标识,则根据所述会话标识获得访问标识,并根据所述访问标识确定处理所述业务请求的业务服务器;其中,所述访问标识与业务服务器一一对应;

具体地,所述主服务器接收到所述业务请求之后,会判断所述业务请求是否包括会话标识,如果所述业务请求中包括会话标识,那么可以根据所述会话标识获得访问标识。然后根据所述访问标识查询对应的业务服务器,将查询到的与所述访问标识对应的业务服务器作为处理所述业务请求的服务器。其中,所述访问标识与所述业务服务器一一对应,所述访问标识与所述业务服务器的对应关系是预先存储的。

例如,所述主服务器可以对所述会话标识进行哈希运行,获得访问标识。其中,哈希运算所采用的哈希算法根据实际需要进行设置,本发明实施例不做限定。

S203、将所述业务请求发送给所述服务器进行处理。

具体地,所述主服务器将所述访问请求发送给与所述访问标识对应的业务服务器,所述访问标识对应的业务服务器接收到所述业务请求之后,会对所述业务请求进行处理,然后向所述主服务器返回所述业务请求的处理结果。所述主服务器会将所述业务请求的处理结果返回给对应的客户端。

本发明实施例提供的会话保持方法,能够接收各个客户端发送的业务请求,若业务请求中包括会话标识,则根据所述会话标识获得访问标识,并根据访问标识确定处理所述业务请求的业务服务器,并将业务请求发送给业务服务器进行处理,通过访问标识实现了客户端与业务服务器的会话保持,提高了业务处理的可靠性。

在上述各实施例的基础上,进一步地,所述根据所述会话标识获得访问标识还包括:

对所述会话标识进行哈希运算,将获得的哈希值作为所述访问标识。

具体地,所述主服务器通过哈希算法对所述会话标识进行哈希运算,获得哈希值,然后将获得的哈希值作为所述访问标识。其中,所述哈希算法可以采用散列算法或者MD5等,根据实际需要进行选择,本发明实施例不做限定。

在上述各实施例的基础上,进一步地,本发明实施例提供的会话保持方法还包括:

若所述业务请求中不包括会话标识,则根据预设负载均衡策略分配处理所述业务请求的业务服务器。

具体地,所述主服务器如果从所述业务请求中没有获取到会话标识,那么可以根据负载均衡策略分配处理所述业务请求的业务服务器,即先根据负载均衡策略确定处理所述业务请求的业务服务器,然后将所述业务请求发送给该业务服务器进行处理。其中,所述负载均衡策略是预设的,根据实际需要进行设置,本发明实施例不做限定。

例如,所述负载均衡策略为将业务请求依次分配给各个业务服务器。

图3是本发明第三实施例提供的会话保持方法的流程示意图,如图3所示,在上述各实施例的基础上,进一步地,本发明实施例提供的会话保持方法还包括:

S301、接收分配所述业务请求的业务服务器返回的对所述业务请求的处理结果和Cookie信息;其中,Cookie信息包括会话标识;

具体地,分配所述业务请求的业务服务器接收到所述业务请求之后,会对所述业务请求进行处理,获得所述业务请求的处理结果。分配所述业务请求的业务服务器还会为所述业务请求对应的客户端生成Cookie信息,所述Cookie信息包括会话标识(SessionID)。分配所述业务请求的业务服务器将所述业务请求的处理结果和Cookie信息返回给所述主服务器。所述主服务器会接收所述业务请求的处理结果和Cookie信息。其中,Cookie信息的具体生成过程为现有技术,此处不进行赘述。

S302、根据对所述会话标识进行哈希运算,获得哈希值并将所述哈希值作为访问标识与分配所述业务请求的服务器对应。

具体地,所述主服务器从Cookie信息中获取SessionID,然后通过哈希算法对SessionID进行哈希运行,可以获得哈希值。所述主服务器将上述哈希值作为访问标识,并将上述哈希值与分配所述业务请求的服务器对应,并记录到本地。其中,所述哈希算法可以采用散列算法或者MD5等,根据实际需要进行选择,本发明实施例不做限定。

S303、将所述业务请求的处理结果和Cookie信息返回给对应的客户端。

具体地,所述主服务器会将所述业务请求的处理结果和Cookie信息返回给对应的客户端。所述客户端再向所述主服务器发送业务请求时,所述业务请求会携带Cookie信息,所述主服务器从Cookie可以获得所述会话标识。

图4是本发明第四实施例提供的会话保持方法的流程示意图,如图4所示,在上述各实施例的基础上,进一步地,本发明实施例提供的会话保持方法还包括:

S401、对各个业务服务器进行健康检查,获得各个业务服务器的健康检查结果;

具体地,所述主服务器可以定期对各个业务服务器进行健康检查,获得各个业务服务器的健康检查结果。所述健康检查结果为正常或者异常,正常表明对应的业务服务器能够正常通信,异常表明对应的业务服务器无法连通。

例如,所述主服务器每3秒钟,向每个业务服务器发送心跳消息,如果在设定时间内中内没有接收到业务服务器的反馈信息,那么将该业务服务器的健康检查结果记录为异常。如果在设定时间内接收到业务服务器的反馈信息,那么将该业务服务器的健康检查结果记录为异常。其中,所述设定时间根据实际需要进行设置,比如设置为1秒钟,本发明实施例不做限定。

S402、根据每个业务服务器的健康检查结果更新业务服务器列表。

具体地,所述主服务器可以统计每个业务服务器连续第一预设次数的健康检查结果,如果所述业务服务器连续第一预设次数的健康健康检查结果都是异常,那么会将所述业务服务器从业务服务器列表中移除,不会再发送分配业务请求给移除业务服务器列表的业务服务器。所述主服务器可以统计每个业务服务器连续第二预设次数的健康检查结果,如果所述业务服务器连续第二预设次数的健康检查结果都是正常并且所述业务服务器不在所述业务服务器列表中,那么会将所述业务服务器添加到所述业务服务器列表中。其中,所述业务服务器列表是预设的,包括各个业务服务器。所述主服务器基于负载均衡策略分配各个业务请求给所述业务服务器列表中的业务服务器。所述第一预设次数和所述第二预设次数根据实际需要进行设置,本发明实施例不做限定。

在上述各实施例的基础上,进一步地,本发明实施例提供的会话保持方法还包括:

若负载均衡进程不可用,则重启所述负载均衡进程。

具体地,所述主服务器会启动负载均衡进程,所述负载均衡进程用于通过负载均衡策略分配各个业务请求给各个业务服务器,以及实现客户端与业务服务器的会话保持。所述主服务器可以定期检测所述负载均衡进程是否存在,如果没有检测到所述负载均衡进程,说明所述负载均衡进程不可用,那么所述主服务器会重启所述负载均衡进程。

例如,所述主服务器可以通过keepalived软件对负载均衡进程进行检测,在负载均衡进程启动后正常运行时,所述主服务器可以通过keepalived软件检测到负载均衡进程存在,如果负载均衡进程不可用时,检测不到负载均衡进程。

在上述各实施例的基础上,进一步地,本发明实施例提供的会话保持方法还包括:

若重启所述负载进程失败,则停止向负载均衡备用服务器发送心跳信息以使得所述负载均衡备用服务器切换为负载均衡主服务器。

具体地,所述主服务器在重启所述负载均衡进程之后,会检测所述负载均衡进程是否存在,如果依然没有检测到所述负载均衡进程,那么重启所述负载进程失败。所述主服务器会停止向负载均衡备用服务器发送心跳信息,所述负载均衡备用服务器如果在设定时间内没有接收到所述主服务器发送的心跳信息,就会启动预设的切换程序,接管所述主服务器的IP资源及服务,成为负载均衡主服务器。

其中,原来的主服务器的负载均衡进程恢复正常时,会向原来的负载均衡备用服务器发送心跳信息,原来的负载均衡备用服务器接收到心跳信息之后,会释放之前接管的IP资源及服务,切换成为负载均衡备用服务器。

图5是本发明第五实施例提供的会话保持装置的结构示意图,如图5所示,本发明实施例提供的会话保持装置包括接收模块501、确定模块502和发送模块503,其中:

接收模块501用于接收各个客户端发送的业务请求;确定模块502用于在所述业务请求中包括会话标识之后,根据所述会话标识获得访问标识,并根据所述访问标识确定处理所述业务请求的业务服务器;其中,所述访问标识与业务服务器一一对应;发送模块503用于将所述业务请求发送给所述业务服务器进行处理。

具体地,用户可以通过客户端向接收模块501发送业务请求,接收模块501会接收所述业务请求。其中,所述业务请求根据实际需要进行设置,本发明实施例不做限定。

在接收到所述业务请求之后,确定模块502会判断所述业务请求是否包括会话标识,如果所述业务请求中包括会话标识,那么可以根据所述会话标识获得访问标识。然后根据所述访问标识查询对应的业务服务器,将查询到的与所述访问标识对应的业务服务器作为处理所述业务请求的服务器。其中,所述访问标识与所述业务服务器一一对应,所述访问标识与所述业务服务器的对应关系是预先存储的。

发送模块503将所述访问请求发送给与所述访问标识对应的业务服务器,所述访问标识对应的业务服务器接收到所述业务请求之后,会对所述业务请求进行处理,然后向发送模块503返回所述业务请求的处理结果。发送模块503会将所述业务请求的处理结果返回给对应的客户端。

本发明实施例提供的会话保持装置,能够接收各个客户端发送的业务请求,若业务请求中包括会话标识,则根据所述会话标识获得访问标识,并根据访问标识确定处理所述业务请求的业务服务器,并将业务请求发送给业务服务器进行处理,通过访问标识实现了客户端与业务服务器的会话保持,提高了业务处理的可靠性。

在上述各实施例的基础上,进一步地,确定模块502具体用于:

对所述会话标识进行哈希运算,将获得的哈希值作为所述访问标识。

图6是本发明第六实施例提供的会话保持装置的结构示意图,如图6所示,在上述各实施例的基础上,进一步地,所述会话保持装置还包括分配模块504,其中:

分配模块504用于在所述业务请求中不包括会话标识之后,根据预设负载均衡策略分配处理所述业务请求的业务服务器。

图7是本发明第七实施例提供的会话保持装置的结构示意图,如图7所示,在上述各实施例的基础上,进一步地,本发明实施例提供的会话保持装置还包括处理结果接收模块505、哈希运算模块506和返回模块507,其中:

处理结果接收模块505用于接收分配所述业务请求的业务服务器返回的对所述业务请求的处理结果和Cookie信息;其中,Cookie信息包括会话标识;哈希运算模块506用于根据对所述会话标识进行哈希运算,获得哈希值并将所述哈希值作为访问标识与分配所述业务请求的服务器对应;返回模块507用于将所述业务请求的处理结果和Cookie信息返回给对应的客户端。

图8是本发明第八实施例提供的会话保持装置的结构示意图,如图8所示,在上述各实施例的基础上,进一步地,本发明实施例提供的会话保持装置还包括健康检查模块508和更新模块509,其中:

健康检查模块508用于对各个业务服务器进行健康检查,获得各个业务服务器的健康检查结果;更新模块509根据每个业务服务器的健康检查结果更新业务服务器列表。

图9是本发明第九实施例提供的会话保持装置的结构示意图,如图9所示,在上述各实施例的基础上,进一步地,本发明实施例提供的会话保持装置还包括重启模块510,其中:

若负载均衡进程不可用,则重启所述负载均衡进程。

图10是本发明第十实施例提供的会话保持装置的结构示意图,如图10所示,在上述各实施例的基础上,进一步地,本发明实施例提供的会话保持装置还包括停止模块511,其中:

停止模块511用于在重启所述负载均衡进程失败之后,停止向负载均衡备用服务器发送心跳信息以使得所述负载均衡备用服务器切换为负载均衡主服务器。

本发明实施例提供的装置的实施例具体可以用于执行上述各方法实施例的处理流程,其功能在此不再赘述,可以参照上述方法实施例的详细描述。

需要说明的是,本发明实施例提供的会话保持方法及装置可用于金融领域,也可用于除金融领域之外的任意技术领域,本发明实施例对会话保持方法及装置的应用领域不做限定。

图11是本发明第十一实施例提供的电子设备的实体结构示意图,如图11所示,该电子设备可以包括:处理器(processor)1101、通信接口(Communications Interface)1102、存储器(memory)1103和通信总线1104,其中,处理器1101,通信接口1102,存储器1103通过通信总线1104完成相互间的通信。处理器1101可以调用存储器1103中的逻辑指令,以执行如下方法:接收各个客户端发送的业务请求;若所述业务请求中包括会话标识,则根据所述会话标识获得访问标识,并根据所述访问标识确定处理所述业务请求的业务服务器;其中,所述访问标识与业务服务器一一对应;将所述业务请求发送给所述业务服务器进行处理。

此外,上述的存储器1103中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

本实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:接收各个客户端发送的业务请求;若所述业务请求中包括会话标识,则根据所述会话标识获得访问标识,并根据所述访问标识确定处理所述业务请求的业务服务器;其中,所述访问标识与业务服务器一一对应;将所述业务请求发送给所述业务服务器进行处理。

本实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储计算机程序,所述计算机程序使所述计算机执行上述各方法实施例所提供的方法,例如包括:接收各个客户端发送的业务请求;若所述业务请求中包括会话标识,则根据所述会话标识获得访问标识,并根据所述访问标识确定处理所述业务请求的业务服务器;其中,所述访问标识与业务服务器一一对应;将所述业务请求发送给所述业务服务器进行处理。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

在本说明书的描述中,参考术语“一个实施例”、“一个具体实施例”、“一些实施例”、“例如”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。

以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

相关技术
  • 会话状态保持方法及会话状态保持装置
  • 一种保持会话并且抓取会话中持续更新数据的方法
技术分类

06120113159928