CN110086886B - 动态会话保持方法及装置 - Google Patents
动态会话保持方法及装置 Download PDFInfo
- Publication number
- CN110086886B CN110086886B CN201910398931.4A CN201910398931A CN110086886B CN 110086886 B CN110086886 B CN 110086886B CN 201910398931 A CN201910398931 A CN 201910398931A CN 110086886 B CN110086886 B CN 110086886B
- Authority
- CN
- China
- Prior art keywords
- information
- server
- request information
- cookie
- request
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1023—Server selection for load balancing based on a hash applied to IP addresses or costs
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/142—Managing session states for stateless protocols; Signalling session states; State transitions; Keeping-state mechanisms
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种动态会话保持方法及装置,其中所述方法包括:接收临时服务器根据第一请求信息生成的响应信息,所述响应信息中携带有更新后的set‑cookie信息;根据负载均衡选路算法选择与所述第一请求信息对应的目标服务器,并对所述更新后的set‑cookie信息中预定的若干关键字进行哈希计算获得哈希值;将所述目标服务器的地址与所述哈希值关联。本发明通过对每一次请求信息进行选路,实现了将同一客户端相同业务的多次请求分配到不同的服务器,并且实现了将同一个客户端的不同业务请求也分配到不同的服务器,客户端每次与不同的服务器进行会话,进而实现了动态的进行会话保持。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种动态会话保持方法及装置。
背景技术
基于HTTP(Hyper Text Transfer Protocol,超文本传输协议)的服务,一旦客户端和服务器的数据交换完毕,就会断开连接,再次请求需要重新连接。为了避免重新连接,服务器通常会给用户身份认证信息,即cookie信息,服务器得到这个信息之后,就会判定是哪个用户的信息,找到服务器的session信息,从而实现追踪用户。在负载均衡的网络环境中为了保证用户不必重新建立连接就能登录服务器,提出了cookie哈希会话保持方法。
现有的cookie哈希会话保持方法中,当客户端首次发送HTTP请求时,请求(不带cookie头)进入负载均衡设备,负载均衡设备会选择一台实服务器,并将请求(不带cookie头)发送至该实服务器,实服务器将HTTP响应(带set-cookie头)发送到负载均衡设备,负载均衡设备根据set-cookie头中的key-value对(健-值对)计算hash值并缓存实服务地址。负载均衡设备将带set-cookie头的响应发送给用户。当用户再次发起请求时,请求(带cookie头)进入到负载均衡设备,负载均衡设备根据cookie key-value对进行哈希值计算,根据哈希值从缓存中找出实服务器的地址,将请求(带cookie头)发送到实服务器,然后实服务器将HTTP响应(带更新set-cookie头)发送到负载均衡设备,负载均衡设备将响应转发给用户。也就是说,负载均衡设备在做负载均衡时,根据cookie的单一key-value对计算hash值作为选路的依据。对相同的cookie key-value对请求,在做负载均衡时都会被保持到一台服务器上去。
由此可见,现有的cookie哈希会话保持方法中,由于是根据cookie中的单一字段计算哈希值来进行会话保持的,因此客户端每次都会固定的与同一台服务器建立会话,因此这台服务器上的负载任务较多,容易出现服务器之间负载失衡的问题。
发明内容
本发明实施例的目的在于提供一种动态会话保持方法及装置,用以解决现有技术中存在的客户端每次都会固定的与同一台服务器建立会话,造成服务器之间负载失衡的问题。
为了解决上述技术问题,本申请的实施例采用了如下技术方案:一种动态会话保持方法,所述方法包括如下步骤:
接收临时服务器根据第一请求信息生成的响应信息,所述响应信息中携带有更新后的set-cookie信息;
根据负载均衡选路算法选择与所述第一请求信息对应的目标服务器,并对所述更新后的set-cookie信息中预定的若干关键字进行哈希计算获得哈希值;
将所述目标服务器的地址与所述哈希值关联。
可选的,所述根据负载均衡选路算法选择与所述第一请求信息对应的目标服务器,具体包括:
获取所述第一请求信息中的业务类型信息;
根据所述业务类型信息选择一服务器作为目标服务器。
可选的,在所述接收所述临时服务器根据第一请求信息生成的响应信息之前,所述方法还包括:
接收客户端发送的第一请求信息;
根据所述第一请求信息中是否携带cookie信息来确定所述临时服务器;
将所述第一请求信息发送给所述临时服务器。
可选的,所述根据所述第一请求信息中是否携带cookie信息来确定所述临时服务器,具体为:若确定所述第一请求信息中未携带cookie信息,则确定所述第一请求信为首次请求信息,选择任意一服务器作为临时服务器;
若确定所述第一请求信息中携带有cookie信息,则确定所述请求信息为再次请求信息,利用所述请求信息中的cookie信息中预定的若干关键字进行哈希计算获得哈希值;根据所述哈希值查找与所述哈希值对应的服务器的地址,以确定临时服务器。
可选的,在所述将所述目标服务器的地址与所述哈希值关联之后,所述方法还包括:
对所述目标服务器的地址以及所述哈希值进行保存,以在接收到所述客户端的第二请求信息时,根据第二请求信息中携带的cookie信息中预定的若干关键字进行哈希计算获得哈希值,以根据所述哈希值查找到所述目标服务器,以将所述目标服务器作为第二请求信息的临时服务器;其中,所述第二请求信息中携带的cookie信息与所述第一请求信息对应的响应信息中的set-cookie信息相同。
可选的,所述预定的若干关键字为预定的若干key-value对,所述key-value对包括如下一种或几种:session ID信息的key-value对和业务类型信息的key-value对。
可选的,所述方法还包括,将所述响应信息发送给客户端。
本发明实施例还公开了一种动态会话保持装置,包括:
第一接收模块,用于接收临时服务器根据第一请求信息生成的响应信息,所述响应信息中携带有更新后的set-cookie信息;
选路模块,用于根据负载均衡选路算法选择与所述第一请求信息对应的目标服务器,并对所述更新后的set-cookie信息中预定的若干关键字进行哈希计算获得哈希值;
关联模块,用于将所述目标服务器的地址与所述哈希值关联。
可选的,所述选路模块具体用于:获取所述第一请求信息中的业务类型信息;
根据所述业务类型信息选择一服务器作为目标服务器。
可选的,还包括:
第二接收模块,用于接收客户端发送的第一请求信息;
确定模块,用于根据所述第一请求信息中是否携带cookie信息来确定所述临时服务器;
第一发送模块,用于将所述第一请求信息发送给所述临时服务器。
可选的,所述确定模块,具体用于:若确定所述第一请求信息中未携带cookie信息,则确定所述第一请求信为首次请求信息,选择任意一服务器作为临时服务器;
若确定所述第一请求信息中携带有cookie信息,则确定所述请求信息为再次请求信息,利用所述请求信息中的cookie信息中预定的若干关键字进行哈希计算获得哈希值;根据所述哈希值查找与所述哈希值对应的服务器的地址,以确定临时服务器。
可选的,所述装置还包括:
保存模块,用于对所述目标服务器的地址以及所述哈希值进行保存,以在接收到所述客户端的第二请求信息时,根据第二请求信息中携带的cookie信息中预定的若干关键字进行哈希计算获得哈希值,以根据所述哈希值查找到所述目标服务器,以将所述目标服务器作为第二请求信息的临时服务器;其中,所述第二请求信息中携带的cookie信息与所述第一请求信息对应的响应信息中的set-cookie信息相同。
可选的,所述装置还包括:
第二发送模块,用于将所述响应信息发送给客户端。
本发明动态会话保持方法,应用于负载均衡设备,实现了在客户端每一次发起业务请求时,负载均衡设备均会为发起的请求重新分配服务器,并将重新分配的服务器的地址与响应信息中的set-cookie的哈希值相关联,以保证在再次发起请求时,客户端能够根据再次请求信息中的cookie信息计算获得哈希值,然后根据哈希值找到负载设备存储的与该哈希值相关联的服务器,以使得该服务器作为临时服务器,利用临时服务器来为再次请求信息生成响应信息并更新响应信息中的set-cookies信息。这样负载均衡设备在为再次请求重新分配服务器时,就可以根据set-cookie信息中的预定的关键字来计算获得新的哈希值,以使新的哈希值和重新分配的服务器相关联。最终实现了同一客户端相同业务请求的多次请求会被分配到不同的服务器,并且同一个客户端的不同业务请求也会被分配到不同的服务器,客户端每次与不同的服务器进行会话,进而实现了动态的进行会话保持。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
图1为第一实施例提供的动态会话保持方法流程图;
图2为第一实施例提供的动态会话保持方法中各业务请求分配过程的示意图;
图3为第三实施例提供的动态会话保持方法流程图;
图4为第四实施例提供的动态会话保持装置结构框图。
具体实施方式
此处参考附图描述本申请的各种方案以及特征。
应理解的是,可以对此处申请的实施例做出各种修改。因此,上述说明书不应该视为限制,而仅是作为实施例的范例。本领域的技术人员将想到在本申请的范围和精神内的其他修改。
包含在说明书中并构成说明书的一部分的附图示出了本申请的实施例,并且与上面给出的对本申请的大致描述以及下面给出的对实施例的详细描述一起用于解释本申请的原理。
通过下面参照附图对给定为非限制性实例的实施例的优选形式的描述,本申请的这些和其它特性将会变得显而易见。
还应当理解,尽管已经参照一些具体实例对本申请进行了描述,但本领域技术人员能够确定地实现本申请的很多其它等效形式,它们具有如权利要求所述的特征并因此都位于借此所限定的保护范围内。
当结合附图时,鉴于以下详细说明,本申请的上述和其他方面、特征和优势将变得更为显而易见。
此后参照附图描述本申请的具体实施例;然而,应当理解,所申请的实施例仅仅是本申请的实例,其可采用多种方式实施。熟知和/或重复的功能和结构并未详细描述以避免不必要或多余的细节使得本申请模糊不清。因此,本文所申请的具体的结构性和功能性细节并非意在限定,而是仅仅作为权利要求的基础和代表性基础用于教导本领域技术人员以实质上任意合适的详细结构多样地使用本申请。
本说明书可使用词组“在一种实施例中”、“在另一个实施例中”、“在又一实施例中”或“在其他实施例中”,其均可指代根据本申请的相同或不同实施例中的一个或多个。
会话保持是指在负载均衡设备上的一种机制,可以识别客户端和服务器之间交互过程的关连性,在做负载均衡的同时还保证一系列相关连的访问请求都会分配到一台机器上。
本发明第一实施例提供一种动态会话保持方法,应用于负载均衡设备,结合图1,具体包括如下步骤:
步骤S101,接收临时服务器根据第一请求信息生成的响应信息,所述响应信息中携带有更新后的set-cookie信息;
本步骤中,在接收所述临时服务器根据第一请求信息生成的响应信息之前,所述方法还包括:接收客户端发送的第一请求信息;根据所述第一请求信息中是否携带cookie信息来确定所述临时服务器;将所述第一请求信息发送给所述临时服务器。具体的,第一请求信息中的cookie信息与前一次请求信息对应的响应信息中的set-cookie信息相同。例如负载设备接收的第一请求信息是客户端第二次发送的请求信息,那么第二次发送的请求信息中会携带有cookie信息,该cookie信息与第一次请求信息对应的响应信息中的set-cookie信息相同。
步骤S102,根据负载均衡选路算法选择与所述第一请求信息对应的目标服务器,并对所述更新后的set-cookie信息中预定的若干关键字进行哈希计算获得哈希值;
本步骤中,根据负载均衡选路算法选择与所述第一请求信息对应的目标服务器,具体包括:获取所述第一请求信息中的业务类型信息;根据所述业务类型信息选择一服务器作为目标服务器。
或者,根据负载均衡选路算法选择与所述第一请求信息对应的目标服务器,具体包括:根据各服务器的负载数量筛选出负载低于预定值的服务器;获取所述第一请求信息中的业务类型信息;根据所述业务类型信息选择一服务器作为目标服务器。
步骤S103,将所述目标服务器的地址与所述哈希值关联。
本步骤中,在将所述目标服务器的地址与所述哈希值关联之后,还包括:
对所述目标服务器的地址以及所述哈希值进行保存。这样,负载均衡设备在接收到所述客户端的第二请求信息时,根据第二请求信息中携带的cookie信息中预定的若干关键字进行哈希计算获得哈希值,以根据所述哈希值查找到所述目标服务器,以将所述目标服务器作为第二请求信息的临时服务器;其中,所述第二请求信息中携带的cookie信息与所述第一请求信息对应的响应信息中的set-cookie信息相同。
本实施例中在客户端和服务器的数据交换完毕后,当客户端再次发起请求时,利用上一次数据交换的服务器来作为临时服务器,利用临时服务器来与客户端快速建立连接,为再次发起的请求信息生成响应的响应信息,并更新响应信息中的set-cookie信息,以便于后续服务器的重新分配和数据交换。
其中,目标服务器是指针对某个业务请求,与客户端进行数据交换的服务器。
本发明动态会话保持方法,实现了在客户端每一次发起业务请求时,负载均衡设备均会为发起的请求重新分配服务器,并将重新分配的服务器的地址与响应信息中的set-cookie的哈希值相关联,以保证在再次发起请求时,客户端能够根据再次请求信息中的cookie信息计算获得哈希值,然后根据哈希值找到负载设备存储的与该哈希值相关联的服务器,以使得该服务器作为临时服务器,利用临时服务器来为再次请求信息生成响应信息并更新响应信息中的set-cookies信息。这样负载均衡设备在为再次请求重新分配服务器时,就可以根据set-cookie信息中的预定的关键字来计算获得新的哈希值,以使新的哈希值和重新分配的服务器相关联。最终实现了同一客户端相同业务请求的多次请求会被分配到不同的服务器,并且同一个客户端的不同业务请求也会被分配到不同的服务器,使得客户端每次与不同的服务器进行会话,进而实现了动态的进行会话保持。
例如在图2中,负载均衡设备配置有动态会话保持方法。当同一个客户端(pc)在发起三个业务请求(HTTP业务请求1、HTTP业务请求2和HTTP业务请求3)时,负载均衡设备接收到业务请求后,会将HTTP业务请求1分配给服务器s1,将HTTP业务请求2分配给服务器s2,将HTTP业务请求3分配给服务器s3,由此实现了将不同业务请求分配给不同的服务器。
本发明第二实施例提供一种会话保持方法,所述方法包括如下步骤:
步骤S201,接收客户端发送的第一请求信息;
步骤S202,若确定所述第一请求信息中未携带cookie信息,则确定所述第一请求信为首次请求信息,选择任意一服务器作为临时服务器;若确定所述请求信息中携带有cookie信息,则确定所述第一请求信息为再次请求信息,利用所述第一请求信息中的cookie信息中预定的若干关键字进行哈希计算获得哈希值;根据所述哈希值查找与所述哈希值对应的服务器的地址,以确定临时服务器;
本步骤中在确第一请求信息为首次请求信息时,可以根据各服务器的负载数量筛选出负载数量低于预定值的服务器,然后从筛选出的服务器中选择任意一服务器作为临时服务器。
步骤S203,将所述第一请求信息发送给所述临时服务器;
步骤S204,接收临时服务器根据第一请求信息生成的响应信息,所述响应信息中携带有更新后的set-cookie信息;
步骤S205,根据负载均衡选路算法选择与所述第一请求信息对应的目标服务器,并对所述更新后的set-cookie信息中预定的若干关键字进行哈希计算获得哈希值;
本步骤中,所述预定的若干关键字为预定的若干key-value(键-值)对,所述key-value对包括如下一种或几种:session ID信息的key-value对和业务类型信息的key-value对。例如业务类型信息包括购物业务、求职业务、租房业务等,其中购物业务的类型还可以包括日用品、电子产品、文具体育产品、宠物用品等,其中电子产品的类型还可以包括手机、电脑、电视、音响等。
步骤S206,将所述目标服务器的地址与所述哈希值关联。
步骤S207,将所述响应信息发送给客户端。
本发明实现了根据不同的业务进行会话保持,多cookie根据不同业务对应的key-value对进行哈希计算,从而可以使不同业务请求负载到不同的服务器,这样针对不同业务类型,更能精细化控制,解决Cookie哈希算法单一服务器负载失衡的问题。
本发明第三实施例提供一种会话保持方法,在实施例2的基础上结合图2,当同一个客户端发起不同业务请求,且每个业务请求发起多次时,会话保持过程如下:
步骤一、当客户端(Client)针对HTTP业务请求1发起第一次请求(First request,no cookie header)时,由于是首次请求,第一次请求中未携带有cookie信息,因此选择任意一服务器(Service)A为临时服务器;
将第一次请求的请求信息发送给临时服务器A;
接收临时服务器A根据所述第一次请求的请求信息生成的第一次响应信息(Firstrespone,set-cookie:sessionid=xx header),所述第一次响应信息中携带有更新后的set-cookie信息;
根据负载均衡选路算法选择与所述第一次请求信息对应的服务器B作为目标服务器,并对所述更新后的set-cookie信息中sessionid=xx的key-value进行哈希计算获得哈希值;将所述目标服务器B的地址与所述哈希值关联,并对所述目标服务器B的地址以及所述哈希值进行保存;
最后将临时服务器A生成的第一次响应信息发送给客户端;
步骤二、当客户端针对HTTP业务请求1发起第二次请求(second request,cookie:set-cookie:sessionid=xx)时,由于是再次请求,所以第二次请求的请求信息中携带有cookie信息,该cookie信息与第一次响应信息中的set-cookie信息相同;
根据所述cookie信息中的sessionid=xx的key-value进行哈希计算获得哈希值,根据所述哈希值查找到之前存储的与该哈希值关联的服务器B的地址(Second request(set-cookie:sessionid=xx header),cookie动态hash会话保持算法选路服务器B),以将服务器B作为临时服务器;
将第二次请求的请求信息发送给临时服务器B;
接收临时服务器B根据所述第二次请求的请求信息生成的第二次响应信息(second respone(set-cookie:sessionid=xx;type=a header)),所述第二响应信息中携带有更新后的set-cookie信息;
根据负载均衡选路算法选择与所述第二次请求信息对应的服务器C作为目标服务器,并对所述更新后的set-cookie信息中session ID的key-value和type的key-value进行哈希计算获得哈希值;将所述目标服务器C的地址与所述哈希值关联,并对所述目标服务器C的地址以及所述哈希值进行保存(即second respone(set-cookie:sessionid=xx;type=a header)保存选路结果,服务器C);
将临时服务器B生成的第二次响应信息(second respone(set-cookie:sessionid=xx;type=a header))发送给客户端;
步骤三、当客户端针对HTTP业务请求2发起第三次请求(Third request(sessionid=xx;type=a))时,由于是再次请求,所以第三次请求的请求信息中携带有cookie信息,该cookie信息与第二次响应信息中的set-cookie信息相同;
根据所述cookie信息中的sessionid的key-value和type的key-value进行哈希计算获得哈希值,根据所述哈希值查找到之前存储的与该哈希值关联的服务器C的地址(Third request(sessionid=xx;type=a),cookie动态hash会话保持算法选路服务器C),以将服务器C作为临时服务器;
将第三次请求的请求信息(Third request(sessionid=xx;type=a))发送给临时服务器C;
接收临时服务器C根据所述第三次请求的请求信息生成的第三次响应信息(Thirdrespone(set-cookie:sessionid=xx;type=b header)),所述第三响应信息中携带有更新后的set-cookie信息;
然后根据负载均衡选路算法选择与所述第三次请求信息对应的服务器D作为目标服务器,并对所述更新后的set-cookie信息中session ID的key-value和type的key-value进行哈希计算获得哈希值;将所述目标服务器D的地址与所述哈希值关联,并对所述目标服务器D的地址以及所述哈希值进行保存(Third respone(set-cookie:sessionid=xx;type=b header),保存选路结果,服务器D);
最后将临时服务器C生成的第三次响应信息(Third respone(set-cookie:sessionid=xx;type=b header))发送给客户端;
步骤四、当客户端针对HTTP业务请求2发起第四次请求(Forth request(set-cookiesessionid=xx;type=b header))时,由于是再次请求,所以第四次请求的请求信息中携带有cookie信息,该cookie信息与第三次响应信息中的set-cookie信息相同;
根据所述cookie信息中的session ID的key-value和type的key-value进行哈希计算获得哈希值,根据所述哈希值查找到之前存储的与该哈希值关联的服务器D的地址(Forth request(set-cookie:sessionid=xx;type=b header),cookie动态hash会话保持算法选路,服务器D),以将服务器D作为临时服务器;
将第四次请求的请求信息发送给临时服务器D;
接收临时服务器D根据所述第四次请求的请求信息生成的第四次响应信息(Forthrespone(set-cookie:sessionid=yy;type=b header)),所述第四次响应信息中携带有更新后的set-cookie信息;
然后根据负载均衡选路算法选择与所述第四次请求信息对应的服务器A作为目标服务器,并对所述更新后的set-cookie信息中session ID的key-value和type的key-value进行哈希计算获得哈希值;将所述目标服务器A的地址与所述哈希值关联,并对所述目标服务器A的地址以及所述哈希值进行保存(Forth respone(set-cookie:sessionid=yy;type=b header)保存选路结果服务器A);
最后将临时服务器D生成的第四次响应信息(Forth respone(set-cookie:sessionid=yy;type=b header))发送给客户端;
步骤五、当客户端针对HTTP业务请求3发起第五次请求(fifth request(set-cookie:sessionid=yy;type=b header))时,由于是再次请求,所以第五次请求的请求信息中携带有cookie信息,该cookie信息与第四次响应信息中的set-cookie信息相同;
根据所述cookie信息中的session ID的key-value和type的key-value进行哈希计算获得哈希值,根据所述哈希值查找到之前存储的与该哈希值关联的服务器A的地址(fifth request(set-cookie:sessionid=yy;type=b),cookie动态hash会话保持算法选路,服务器A),以将服务器A作为临时服务器;
将第五次请求的请求信息(fifth request(set-cookie:sessionid=yy;type=bheader))发送给临时服务器A;
接收临时服务器A根据所述第五次请求的请求信息生成的第五次响应信息(fifthrespone(set-cookie:sessionid=yy;type=c header)),所述第五次响应信息中携带有更新后的set-cookie信息;
然后根据负载均衡选路算法选择与所述第五次请求信息对应的服务器D作为目标服务器,并对所述更新后的set-cookie信息中session ID的key-value和type的key-value进行哈希计算获得哈希值;将所述目标服务器D的地址与所述哈希值关联,并对所述目标服务器D的地址以及所述哈希值进行保存(fifth respone(set-cookie:sessionid=yy;type=c header),保存选路结果,服务器D);
最后将临时服务器A生成的第五次响应信息(fifth respone(set-cookie:sessionid=yy;type=c header))发送给客户端。
本实施例中,用户可以根据自己的需求配置Cookie关键字,当负载均衡设备捕获到相应的会话关键字后,进行动态cookie哈希计算,保存选路结果,以便相同Cookie选中同一台服务器。
本实施例中根据Cookie支持多个key-value对作为关键值,利用多个Cookie key-value对进行哈希计算适用于多个Cookie关键字的场景,不同的cookie提供不同的服务,多cookie可以根据不同的业务会话保持。如:key1=value1,key2=value2,需求为value1和value2不同时,不会分配到一台服务器上,本发明方法,用于单一cookie和多cookie,都可以达到负载和会话保持的效果,针对于支持会话共享的服务器效果更好,更能精细化控制,实现单一用户下的服务划分。
本发明第四实施例提供一种动态会话保持装置,所述动态会话保持装置可以配置于负载均衡设备中,结合图4,包括:
第一接收模块1,用于接收临时服务器根据第一请求信息生成的响应信息,所述响应信息中携带有更新后的set-cookie信息;
选路模块2,用于根据负载均衡选路算法选择与所述第一请求信息对应的目标服务器,并对所述更新后的set-cookie信息中预定的若干关键字进行哈希计算获得哈希值;
关联模块3,用于将所述目标服务器的地址与所述哈希值关联。
本实施例中选路模块2,具体用于:获取所述第一请求信息中的业务类型信息;根据所述业务类型信息选择一服务器作为目标服务器。
进一步的,本实施例中的动态会话保持装置还包括:
第二接收模块,用于在所述接收客户端发送的第一请求信息;
确定模块,用于根据所述第一请求信息中是否携带cookie信息来确定所述临时服务器;
第一发送模块,用于将所述第一请求信息发送给所述临时服务器。
其中,所述确定模块,具体用于:
若确定所述第一请求信息中未携带cookie信息,则确定所述第一请求信为首次请求信息,选择任意一服务器作为临时服务器;
若确定所述第一请求信息中携带有cookie信息,则确定所述请求信息为再次请求信息,利用所述请求信息中的cookie信息中预定的若干关键字进行哈希计算获得哈希值;根据所述哈希值查找与所述哈希值对应的服务器的地址,以确定临时服务器。其中预定的若干关键字为预定的若干key-value对,所述key-value对包括如下一种或几种:sessionID信息的key-value对和业务类型信息的key-value对。
进一步的,本实施例中的装置还包括:保存模块,用于对所述目标服务器的地址以及所述哈希值进行保存,以在接收到所述客户端的第二请求信息时,根据第二请求信息中携带的cookie信息中预定的若干关键字进行哈希计算获得哈希值,以根据所述哈希值查找到所述目标服务器,以将所述目标服务器作为第二请求信息的临时服务器;其中,所述第二请求信息中携带的cookie信息与所述第一请求信息对应的响应信息中的set-cookie信息相同。
进一步的,本实施例中还包括:第二发送模块,用于将所述响应信息发送给客户端。
本发明动态会话保持装置,用户可以根据自己的需求配置Cookie关键字,当选路模块捕获到相应的会话关键字后,进行动态cookie哈希计算,并将计算获得哈希值与选路获得的服务器关联并保存,以便后续会话过程中,相同的Cookie选中同一台实服务器。
以上实施例仅为本发明的示例性实施例,不用于限制本发明,本发明的保护范围由权利要求书限定。本领域技术人员可以在本发明的实质和保护范围内,对本发明做出各种修改或等同替换,这种修改或等同替换也应视为落在本发明的保护范围内。
Claims (10)
1.一种动态会话保持方法,其特征在于,包括如下步骤:
接收临时服务器根据第一请求信息生成的响应信息,所述响应信息中携带有更新后的set-cookie信息,其中,所述临时服务器为利用上一次数据交换的服务器;
根据负载均衡选路算法选择与所述第一请求信息对应的目标服务器,并对所述更新后的set-cookie信息中预定的若干关键字进行哈希计算获得哈希值;
将所述目标服务器的地址与所述哈希值关联。
2.如权利要求1所述的动态会话保持方法,其特征在于,所述根据负载均衡选路算法选择与所述第一请求信息对应的目标服务器,具体包括:
获取所述第一请求信息中的业务类型信息;
根据所述业务类型信息选择一服务器作为目标服务器。
3.如权利要求1所述的动态会话保持方法,其特征在于,在所述接收所述临时服务器根据第一请求信息生成的响应信息之前,所述方法还包括:
接收客户端发送的第一请求信息;
根据所述第一请求信息中是否携带cookie信息来确定所述临时服务器;
将所述第一请求信息发送给所述临时服务器。
4.如权利要求3所述的动态会话保持方法,其特征在于,所述根据所述第一请求信息中是否携带cookie信息来确定所述临时服务器,具体为:若确定所述第一请求信息中未携带cookie信息,则确定所述第一请求信为首次请求信息,选择任意一服务器作为临时服务器;
若确定所述第一请求信息中携带有cookie信息,则确定所述请求信息为再次请求信息,利用所述请求信息中的cookie信息中预定的若干关键字进行哈希计算获得哈希值;根据所述哈希值查找与所述哈希值对应的服务器的地址,以确定临时服务器。
5.如权利要求4所述的动态会话保持方法,其特征在于,在所述将所述目标服务器的地址与所述哈希值关联之后,所述方法还包括:
对所述目标服务器的地址以及所述哈希值进行保存,以在接收到所述客户端的第二请求信息时,根据第二请求信息中携带的cookie信息中预定的若干关键字进行哈希计算获得哈希值,以根据所述哈希值查找到所述目标服务器,以将所述目标服务器作为第二请求信息的临时服务器;其中,所述第二请求信息中携带的cookie信息与所述第一请求信息对应的响应信息中的set-cookie信息相同。
6.如权利要求1、4或5所述的动态会话保持方法,其特征在于,所述预定的若干关键字为预定的若干key-value对,所述key-value对包括如下一种或几种:session ID信息的key-value对和业务类型信息的key-value对。
7.如权利要求1所述的动态会话保持方法,其特征在于,所述方法还包括,将所述响应信息发送给客户端。
8.一种动态会话保持装置,其特征在于,包括:
第一接收模块,用于接收临时服务器根据第一请求信息生成的响应信息,所述响应信息中携带有更新后的set-cookie信息,其中,所述临时服务器为利用上一次数据交换的服务器;
选路模块,用于根据负载均衡选路算法选择与所述第一请求信息对应的目标服务器,并对所述更新后的set-cookie信息中预定的若干关键字进行哈希计算获得哈希值;
关联模块,用于将所述目标服务器的地址与所述哈希值关联。
9.如权利要求8所述的动态会话保持装置,其特征在于,所述选路模块具体用于:获取所述第一请求信息中的业务类型信息;
根据所述业务类型信息选择一服务器作为目标服务器。
10.如权利要求8所述的动态会话保持装置,其特征在于,还包括:
第二接收模块,用于接收客户端发送的第一请求信息;
确定模块,用于根据所述第一请求信息中是否携带cookie信息来确定所述临时服务器;
第一发送模块,用于将所述第一请求信息发送给所述临时服务器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910398931.4A CN110086886B (zh) | 2019-05-14 | 2019-05-14 | 动态会话保持方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910398931.4A CN110086886B (zh) | 2019-05-14 | 2019-05-14 | 动态会话保持方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110086886A CN110086886A (zh) | 2019-08-02 |
CN110086886B true CN110086886B (zh) | 2021-12-31 |
Family
ID=67420109
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910398931.4A Active CN110086886B (zh) | 2019-05-14 | 2019-05-14 | 动态会话保持方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110086886B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111131250B (zh) * | 2019-12-24 | 2022-04-26 | 杭州迪普科技股份有限公司 | 一种客户端识别方法及装置 |
CN113132498B (zh) * | 2019-12-30 | 2024-04-23 | 中兴通讯股份有限公司 | 报文处理方法、中继设备、系统和存储介质 |
CN112543191B (zh) * | 2020-11-30 | 2023-07-18 | 北京天融信网络安全技术有限公司 | 一种负载均衡方法及装置 |
CN113572830A (zh) * | 2021-07-16 | 2021-10-29 | 牙木科技股份有限公司 | 地址分配方法、地址分配系统及计算机可读存储介质 |
CN114666315B (zh) * | 2022-03-24 | 2023-09-12 | 杭州迪普科技股份有限公司 | 负载均衡设备的http请求处理方法及装置 |
CN114866799B (zh) * | 2022-05-11 | 2024-04-05 | 北京奇艺世纪科技有限公司 | 一种服务器调度方法及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103607356A (zh) * | 2013-11-14 | 2014-02-26 | 北京奇虎科技有限公司 | 一种负载均衡方法、负载均衡器及系统 |
CN106559485A (zh) * | 2016-11-15 | 2017-04-05 | 杭州迪普科技股份有限公司 | 一种控制服务器关机的方法及装置 |
CN106998370A (zh) * | 2017-06-15 | 2017-08-01 | 北京微影时代科技有限公司 | 访问控制方法、装置以及系统 |
CN107733995A (zh) * | 2017-09-21 | 2018-02-23 | 北京信安世纪科技股份有限公司 | 一种会话保持方法、装置和电子设备 |
CN107995304A (zh) * | 2017-12-13 | 2018-05-04 | 杭州迪普科技股份有限公司 | 一种基于cookie的会话保持方法及装置 |
CN109474705A (zh) * | 2018-12-28 | 2019-03-15 | 杭州迪普科技股份有限公司 | 一种会话保持方法和装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006095427A1 (ja) * | 2005-03-10 | 2006-09-14 | Hewlett-Packard Development Company, L.P. | サーバシステム、サーバ装置およびその方法 |
CN102333248B (zh) * | 2011-09-07 | 2017-07-21 | 南京中兴软件有限责任公司 | 一种动态分配管理平台服务地址的实现方法及系统 |
CN108173937A (zh) * | 2017-12-28 | 2018-06-15 | 北京中电普华信息技术有限公司 | 访问控制方法和装置 |
CN112311876B (zh) * | 2020-10-30 | 2022-08-16 | 武汉绿色网络信息服务有限责任公司 | 通过负载均衡设备确定当前会话的后端设备的方法与设备 |
-
2019
- 2019-05-14 CN CN201910398931.4A patent/CN110086886B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103607356A (zh) * | 2013-11-14 | 2014-02-26 | 北京奇虎科技有限公司 | 一种负载均衡方法、负载均衡器及系统 |
CN106559485A (zh) * | 2016-11-15 | 2017-04-05 | 杭州迪普科技股份有限公司 | 一种控制服务器关机的方法及装置 |
CN106998370A (zh) * | 2017-06-15 | 2017-08-01 | 北京微影时代科技有限公司 | 访问控制方法、装置以及系统 |
CN107733995A (zh) * | 2017-09-21 | 2018-02-23 | 北京信安世纪科技股份有限公司 | 一种会话保持方法、装置和电子设备 |
CN107995304A (zh) * | 2017-12-13 | 2018-05-04 | 杭州迪普科技股份有限公司 | 一种基于cookie的会话保持方法及装置 |
CN109474705A (zh) * | 2018-12-28 | 2019-03-15 | 杭州迪普科技股份有限公司 | 一种会话保持方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110086886A (zh) | 2019-08-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110086886B (zh) | 动态会话保持方法及装置 | |
US10523748B2 (en) | Managing health status of network devices in a distributed global server load balancing system | |
Zhang et al. | Proactive workload management in hybrid cloud computing | |
EP1869868B1 (en) | System, network device, method, and computer program product for active load balancing using clustered nodes as authoritative domain name servers | |
US10715479B2 (en) | Connection redistribution in load-balanced systems | |
WO2021098407A1 (zh) | 基于mec的服务节点分配方法、装置及相关服务器 | |
CN110166570B (zh) | 业务会话管理方法、装置、电子设备 | |
CN107278365B (zh) | 用于可扩展的对等匹配的设备 | |
US8868756B1 (en) | Sticky routing | |
CN109672711B (zh) | 一种基于反向代理服务器Nginx的http请求处理方法及系统 | |
CN110581784B (zh) | 一种节点健康检查方法、装置及设备 | |
CN107579924A (zh) | 一种流量调拨方法和装置 | |
CN109743357B (zh) | 一种业务访问连续性的实现方法及装置 | |
WO2016180188A1 (zh) | 分发建链方法、装置和系统 | |
WO2003069474A1 (en) | A method and apparatus for load sharing and data distribution in servers | |
CN102724105A (zh) | 一种负载均衡方法和装置 | |
US7739364B2 (en) | Method and apparatus for dynamically reconfiguring a server system | |
CN103401799A (zh) | 负载均衡的实现方法和装置 | |
CN110691042A (zh) | 资源分配方法及装置 | |
US9729652B2 (en) | Dynamically affinitizing users to a version of a website | |
CN105681266B (zh) | 一种多媒体电话MMTel的通讯集群方法及装置 | |
WO2012000455A1 (zh) | 一种客户端及负载均衡的方法 | |
CN109981696B (zh) | 一种负载均衡方法、装置及设备 | |
JP2008234328A (ja) | プレゼンスサービスシステム | |
CN107528884B (zh) | 一种聚合服务器的用户请求处理方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |