CN109361778A - 一种管理会话的方法及终端 - Google Patents
一种管理会话的方法及终端 Download PDFInfo
- Publication number
- CN109361778A CN109361778A CN201811551969.2A CN201811551969A CN109361778A CN 109361778 A CN109361778 A CN 109361778A CN 201811551969 A CN201811551969 A CN 201811551969A CN 109361778 A CN109361778 A CN 109361778A
- Authority
- CN
- China
- Prior art keywords
- memcached
- cryptographic hash
- session
- sessionid
- cache server
- 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.)
- Pending
Links
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
-
- 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/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
-
- 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/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
- H04L67/5682—Policies or rules for updating, deleting or replacing the stored data
-
- 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/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- 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/146—Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明属于数据处理领域,尤其涉及一种管理会话的方法及终端。本发明通过S1、当一应用服务器从负载均衡器接收到会话请求时,获取与所述会话请求对应的SessionID;S2、根据预设的哈希算法计算与所述SessionID对应的哈希值,得到第一哈希值;S3、与所述第一哈希值对应的两个以上Memcached缓存服务器同步管理与所述SessionID对应的会话信息;其中,所述哈希值与所述Memcached缓存服务器之间是一对多关系。实现了提高用户在同一网站访问不同页面的效率。
Description
技术领域
本发明属于数据处理领域,尤其涉及一种管理会话的方法及终端。
背景技术
申请号为201110450857.X的专利文献提供一种应用服务器集群实现方法及系统,用于满足集群中的应用服务器数目较多时的性能要求。本发明实施例方法包括:负载均衡器接收用户发送的任务请求;所述负载均衡器将所述任务请求分发到应用服务器集群中的一个应用服务器上;所述应用服务器根据所述任务请求生成会话信息;所述应用服务器将所述会话信息保存在分布式内存缓存系统memcached,所述分布式内存缓存系统部署在所述应用服务器集群的后端。
但是,上述专利文献的分布式内存缓存系统memcached中,一缓存节点宕机,会导致部分会话信息丢失,须重新做数据分片,切换缓存节点等处理,十分复杂,系统可靠性低。
发明内容
本发明所要解决的技术问题是:如何提高用户在同一网站访问不同页面的效率。
为了解决上述技术问题,本发明采用的技术方案为:
本发明提供一种管理会话的方法,包括:
S1、当一应用服务器从负载均衡器接收到会话请求时,获取与所述会话请求对应的SessionID;
S2、根据预设的哈希算法计算与所述SessionID对应的哈希值,得到第一哈希值;
S3、与所述第一哈希值对应的两个以上Memcached缓存服务器同步管理与所述SessionID对应的会话信息;
其中,所述哈希值与所述Memcached缓存服务器之间是一对多关系。
优选地,所述S2具体为:
根据所述SessionID生成循环冗余校验码;
获取Memcached缓存服务器的组数;其中,一组Memcached缓存服务器包括两个以上Memcached缓存服务器;属于同一组的两个以上Memcached缓存服务器与同一哈希值相对应;
所述循环冗余校验码对所述组数进行取模运算,得到所述第一哈希值。
优选地,还包括:
当与所述第一哈希值对应的一Memcached缓存服务器宕机时,从与所述第一哈希值对应的其它Memcached缓存服务器中获取与所述SessionID对应的会话信息。
优选地,所述S3具体为:
若所述会话请求为写入请求,则同时保存与所述SessionID对应的会话请求至与所述第一哈希值对应的两个以上Memcached缓存服务器。
优选地,所述S3具体为:
若所述会话请求为调用请求,则从与所述第一哈希值对应的任意一Memcached缓存服务器中调用与所述SessionID对应的会话信息;
若所述会话请求为退出登录请求,则从与所述第一哈希值对应的两个以上Memcached缓存服务器中删除与所述SessionID对应的会话信息。
本发明还提供一种管理会话的终端,包括一个或多个处理器及存储器,所述存储器存储有程序,并且被配置成由所述一个或多个处理器执行以下步骤:
S1、当一应用服务器从负载均衡器接收到会话请求时,获取与所述会话请求对应的SessionID;
S2、根据预设的哈希算法计算与所述SessionID对应的哈希值,得到第一哈希值;
S3、与所述第一哈希值对应的两个以上Memcached缓存服务器同步管理与所述SessionID对应的会话信息;
其中,所述哈希值与所述Memcached缓存服务器之间是一对多关系。
优选地,所述S2具体为:
根据所述SessionID生成循环冗余校验码;
获取Memcached缓存服务器的组数;其中,一组Memcached缓存服务器包括两个以上Memcached缓存服务器;属于同一组的两个以上Memcached缓存服务器与同一哈希值相对应;
所述循环冗余校验码对所述组数进行取模运算,得到所述第一哈希值。
优选地,还包括:
当与所述第一哈希值对应的一Memcached缓存服务器宕机时,从与所述第一哈希值对应的其它Memcached缓存服务器中获取与所述SessionID对应的会话信息。
优选地,所述S3具体为:
若所述会话请求为写入请求,则同时保存与所述SessionID对应的会话请求至与所述第一哈希值对应的两个以上Memcached缓存服务器。
优选地,所述S3具体为:
若所述会话请求为调用请求,则从与所述第一哈希值对应的任意一Memcached缓存服务器中调用与所述SessionID对应的会话信息;
若所述会话请求为退出登录请求,则从与所述第一哈希值对应的两个以上Memcached缓存服务器中删除与所述SessionID对应的会话信息。
本发明具有如下有益效果:
1、本发明提供一种管理会话的方法及终端,当应用服务器集群中的一应用服务器从负载均衡器接收到会话请求时,根据与会话请求对应的SessionID自动选择两个以上Memcached缓存服务器同步管理同一会话信息,使得即使一个Memcached缓存服务器宕机,应用服务器也能从其它Memcached缓存服务器中实时获取所需的会话信息,用户在访问网站的过程中,不会因一个Memcached服务器宕机而被迫退出网站,重新登录,提高了用户在同一网站访问不同页面的效率和整个网站系统的可靠性。
2、进一步地,每一用户在访问网站时具有唯一的SessionID,通过本发明提供的哈希算法实现了将不同用户的会话信息分片保存至不同的Memcached缓存服务器组中,当用户量激增时,可通过扩展Memcached缓存服务器组数的方式快速便捷地解决缓存不足的问题。同时,在用户访问量大时,通过多组Memcached缓存服务器管理不同用户的会话信息,将缓存压力由多组缓存服务器分摊,有效减少在每台缓存服务器上的数据操作量,有利于增加网站系统整体的服务能力。
3、进一步地,用户在访问网站的过程中,由于同时有两台以上的Memcached缓存服务器管理同一用户的所有会话信息,当其中一台Memcached缓存服务器宕机时,应用服务器可快速从同组的其它Memcached缓存服务器中调取该用户所需的会话信息,用户即可在当前跳转的页面顺畅操作,用户对于存储有其会话信息的Memcached缓存服务器故障无感知,极大程度上提高了用户访问网站的体验。
4、进一步地,本发明将同一用户的会话信息同时保存至两个以上Memcached缓存服务器中,降低了该用户的会话信息丢失的可能性,极大程度上保证了用户在同一网站上访问不同页面的过程中及时获取所需的会话信息,顺畅访问不同网页。
5、进一步地,当需要调用一用户的会话信息时,应用服务器可从对应Memcached缓存服务器组中的任意一个Memcached缓存服务器中调取相关会话信息。因此,当该组Memcached缓存服务器中一Memcached缓存服务器故障时,无需进行缓存服务器节点切换或数据重新分片等复杂处理,极大地提高了当Memcached缓存服务器存在故障时,获取会话信息的效率。当一用户退出网站登录时,管理该用户的会话信息的Memcached缓存服务器组中的每一缓存服务器均将该用户对应的会话信息删除,避免同一SessionID后续分配给其它用户使用时造成数据冲突。
附图说明
图1为本发明提供的一种管理会话的方法的具体实施方式的流程框图;
图2为本发明的实施例提供的应用服务器和Memcached缓存服务器部署示意图;
图3为本发明提供的一种管理会话的终端的具体实施方式的结构框图;
标号说明:
1、处理器; 2、存储器。
具体实施方式
下面结合附图和具体实施例来对本发明进行详细的说明。
请参照图1至图3,
本发明的实施例一为:
如图1所示,本实施例提供一种管理会话的方法,包括:
S1、当一应用服务器从负载均衡器接收到会话请求时,获取与所述会话请求对应的SessionID。
其中,本实施例提供的应用服务器和Memcached缓存服务器部署示意图如图2所示。用户通过浏览器发送会话请求,负载均衡器将会话请求通过预设的轮询机制分配给应用服务器集群中的一应用服务器。
用户一旦登录网站后,所有由该用户发起的请求都会带上对应的SessionID,每个用户的SessionID是不同的,本实施例使用SessionID作为会话标识。
S2、根据预设的哈希算法计算与所述SessionID对应的哈希值,得到第一哈希值。具体为:
S21、根据所述SessionID生成循环冗余校验码;
S22、获取Memcached缓存服务器的组数;其中,一组Memcached缓存服务器包括两个以上Memcached缓存服务器;所述哈希值与所述Memcached缓存服务器之间是一对多关系;属于同一组的两个以上Memcached缓存服务器与同一哈希值相对应;
S23、所述循环冗余校验码对所述组数进行取模运算,得到所述第一哈希值。
其中,Memcached是一个高性能的分布式内存对象缓存系统,基于一个存储键/值对的hashmap。其守护进程(daemon)是用C语言描述的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信。Memcached客户端会部署到每一个应用服务器中,应用服务器在保存和读取会话的时候,需要通过本机的Memcached客户端选择与哪个Memcached缓存服务器进行通讯。Memcached缓存服务器之间是不做任何通讯,集群和数据分布式负载都需要由客户端来处理。应用服务器在选择Memcached缓存服务器的时候,会先通过保存的键值(即用户的SessionID)先计算出一个哈希值,然后根据这个哈希值选择一个对应的Memcached缓存服务器。Memcached客户端通过哈希算法将不同用户的会话信息分散到多台Memcached缓存服务器上,通过分布式的方式可以支持大量的会话。
例如,应用服务器集群中的每一应用服务器均与三组Memcached缓存服务器连接,每组包含两台Memcached缓存服务器,则根据SessionID计算出的哈希值的取值范围为[1,3],第一组Memcached A和Memcached A’对应的哈希值为1,第二组Memcached B和Memcached B’对应的哈希值为2,第三组Memcached C和Memcached C’对应的哈希值为3。
其中,由于本实施例将用户会话独立保存至Memcached缓存服务器中,应用服务器集群中的每一应用服务器均可以访问各个Memcached缓存服务器,因此,负载均衡器不需要支持粘性,可以大大提升负载均衡器的性能。例如,用户A第一次访问网站时的请求通过负载均衡器分配至应用服务器1,那么对话就创建在服务器1上了,通过本实施例提供的架构,负载均衡器无需要保证接下来的用户A的请求每次都落在服务器1上。
其中,每一用户在访问网站时具有唯一的SessionID,通过本实施例提供的哈希算法实现了将不同用户的会话信息分片保存至不同的Memcached缓存服务器组中,当用户量激增时,可通过扩展Memcached缓存服务器组数的方式快速便捷地解决缓存不足的问题。同时,在用户访问量大时,通过多组Memcached缓存服务器管理不同用户的会话信息,将缓存压力由多组缓存服务器分摊,有效减少在每台缓存服务器上的数据操作量,有利于增加网站系统整体的服务能力。
S3、与所述第一哈希值对应的两个以上Memcached缓存服务器同步管理与所述SessionID对应的会话信息。
例如,根据用户A的SessionID计算得到的第一哈希值为2,每一组包含两个Memcached缓存服务器,则由第二组的两台Memcached缓存服务器Memcached B和MemcachedB’同步管理用户A的所有会话信息。
应用服务器集群中的每一应用服务器均与三组Memcached缓存服务器连接,即使是处理用户A会话请求的应用服务器出故障,其它应用服务器也可从第二组Memcahced缓存服务器中调用、写入或删除用户A的会话信息。
所述S3具体为:
若所述会话请求为写入请求,则同时保存与所述SessionID对应的会话请求至与所述第一哈希值对应的两个以上Memcached缓存服务器。
例如,当用户首次登陆网站时,将用户A的SessionID作为会话标识保存到Memcached B和Memcached B’中,将用户A的会话信息作为SessionID的值保存到两缓存服务器中。
其中,本实施例将同一用户的会话信息同时保存至两个以上Memcached缓存服务器中,降低了该用户的会话信息丢失的可能性,极大程度上保证了用户在同一网站上访问不同页面的过程中及时获取所需的会话信息,顺畅访问不同网页。
若所述会话请求为调用请求,则从与所述第一哈希值对应的任意一Memcached缓存服务器中调用与所述SessionID对应的会话信息。
例如,用户A登陆网站后,欲从当前页面A跳转至另一页面B,浏览器发送页面跳转请求至一应用服务器,该应用服务器通过页面跳转请求中携带的SessionID获知管理用户A的会话信息的缓存服务器为Memcached B和Memcached B’,并从Memcached B或MemcachedB’中调取用户A的会话信息,应用服务器根据调取到的会话信息确认了用户A属于登录状态,则用户A可直接已登录状态访问页面B而无需再次登录。
其中,当需要调用一用户的会话信息时,应用服务器可从对应Memcached缓存服务器组中的任意一个Memcached缓存服务器中调取相关会话信息。因此,当该组Memcached缓存服务器中一Memcached缓存服务器故障时,无需进行缓存服务器节点切换或数据重新分片等复杂处理,极大地提高了当Memcached缓存服务器存在故障时,获取会话信息的效率。
优选地,当与所述第一哈希值对应的一Memcached缓存服务器宕机时,从与所述第一哈希值对应的其它Memcached缓存服务器中获取与所述SessionID对应的会话信息。
例如,Memcached B缓存服务器故障,应用服务器可从Memcached B’中调取用户A的会话信息。
其中,当需要调用一用户的会话信息时,应用服务器可从对应Memcached缓存服务器组中的任意一个Memcached缓存服务器中调取相关会话信息。因此,当该组Memcached缓存服务器中一Memcached缓存服务器故障时,无需进行缓存服务器节点切换或数据重新分片等复杂处理,极大地提高了当Memcached缓存服务器存在故障时,获取会话信息的效率。
若所述会话请求为退出登录请求,则从与所述第一哈希值对应的两个以上Memcached缓存服务器中删除与所述SessionID对应的会话信息。
例如,当用户A退出登录网站时,删除Memcached B和Memcached B’中与用户A相关的所有会话信息。
其中,当一用户退出网站登录时,管理该用户的会话信息的Memcached缓存服务器组中的每一缓存服务器均将该用户对应的会话信息删除,避免同一SessionID后续分配给其它用户使用时造成数据冲突。
综上所述,本实施例提供一种管理会话的方法,当应用服务器集群中的一应用服务器从负载均衡器接收到会话请求时,根据与会话请求对应的SessionID自动选择两个以上Memcached缓存服务器同步管理同一会话信息,使得即使一个Memcached缓存服务器宕机,应用服务器也能从其它Memcached缓存服务器中实时获取所需的会话信息,用户在访问网站的过程中,不会因一个Memcached服务器宕机而被迫退出网站,重新登录,提高了用户在同一网站访问不同页面的效率和整个网站系统的可靠性。
本发明提供的实施例二为:
如图3所示,本实施例提供一种管理会话的终端,包括一个或多个处理器1及存储器2,所述存储器2存储有程序,并且被配置成由所述一个或多个处理器1执行以下步骤:
S1、当一应用服务器从负载均衡器接收到会话请求时,获取与所述会话请求对应的SessionID。
其中,本实施例提供的应用服务器和Memcached缓存服务器部署示意图如图2所示。用户通过浏览器发送会话请求,负载均衡器将会话请求通过预设的轮询机制分配给应用服务器集群中的一应用服务器。
用户一旦登录网站后,所有由该用户发起的请求都会带上对应的SessionID,每个用户的SessionID是不同的,本实施例使用SessionID作为会话标识。
S2、根据预设的哈希算法计算与所述SessionID对应的哈希值,得到第一哈希值。具体为:
S21、根据所述SessionID生成循环冗余校验码;
S22、获取Memcached缓存服务器的组数;其中,一组Memcached缓存服务器包括两个以上Memcached缓存服务器;所述哈希值与所述Memcached缓存服务器之间是一对多关系;属于同一组的两个以上Memcached缓存服务器与同一哈希值相对应;
S23、所述循环冗余校验码对所述组数进行取模运算,得到所述第一哈希值。
其中,Memcached是一个高性能的分布式内存对象缓存系统,基于一个存储键/值对的hashmap。其守护进程(daemon)是用C语言描述的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信。Memcached客户端会部署到每一个应用服务器中,应用服务器在保存和读取会话的时候,需要通过本机的Memcached客户端选择与哪个Memcached缓存服务器进行通讯。Memcached缓存服务器之间是不做任何通讯,集群和数据分布式负载都需要由客户端来处理。应用服务器在选择Memcached缓存服务器的时候,会先通过保存的键值(即用户的SessionID)先计算出一个哈希值,然后根据这个哈希值选择一个对应的Memcached缓存服务器。Memcached客户端通过哈希算法将不同用户的会话信息分散到多台Memcached缓存服务器上,通过分布式的方式可以支持大量的会话。
例如,应用服务器集群中的每一应用服务器均与三组Memcached缓存服务器连接,每组包含两台Memcached缓存服务器,则根据SessionID计算出的哈希值的取值范围为[1,3],第一组Memcached A和Memcached A’对应的哈希值为1,第二组Memcached B和Memcached B’对应的哈希值为2,第三组Memcached C和Memcached C’对应的哈希值为3。
其中,由于本实施例将用户会话独立保存至Memcached缓存服务器中,应用服务器集群中的每一应用服务器均可以访问各个Memcached缓存服务器,因此,负载均衡器不需要支持粘性,可以大大提升负载均衡器的性能。例如,用户A第一次访问网站时的请求通过负载均衡器分配至应用服务器1,那么对话就创建在服务器1上了,通过本实施例提供的架构,负载均衡器无需要保证接下来的用户A的请求每次都落在服务器1上。
其中,每一用户在访问网站时具有唯一的SessionID,通过本实施例提供的哈希算法实现了将不同用户的会话信息分片保存至不同的Memcached缓存服务器组中,当用户量激增时,可通过扩展Memcached缓存服务器组数的方式快速便捷地解决缓存不足的问题。同时,在用户访问量大时,通过多组Memcached缓存服务器管理不同用户的会话信息,将缓存压力由多组缓存服务器分摊,有效减少在每台缓存服务器上的数据操作量,有利于增加网站系统整体的服务能力。
S3、与所述第一哈希值对应的两个以上Memcached缓存服务器同步管理与所述SessionID对应的会话信息。
例如,根据用户A的SessionID计算得到的第一哈希值为2,每一组包含两个Memcached缓存服务器,则由第二组的两台Memcached缓存服务器Memcached B和MemcachedB’同步管理用户A的所有会话信息。
应用服务器集群中的每一应用服务器均与三组Memcached缓存服务器连接,即使是处理用户A会话请求的应用服务器出故障,其它应用服务器也可从第二组Memcahced缓存服务器中调用、写入或删除用户A的会话信息。
所述S3具体为:
若所述会话请求为写入请求,则同时保存与所述SessionID对应的会话请求至与所述第一哈希值对应的两个以上Memcached缓存服务器。
例如,当用户首次登陆网站时,将用户A的SessionID作为会话标识保存到Memcached B和Memcached B’中,将用户A的会话信息作为SessionID的值保存到两缓存服务器中。
其中,本实施例将同一用户的会话信息同时保存至两个以上Memcached缓存服务器中,降低了该用户的会话信息丢失的可能性,极大程度上保证了用户在同一网站上访问不同页面的过程中及时获取所需的会话信息,顺畅访问不同网页。
若所述会话请求为调用请求,则从与所述第一哈希值对应的任意一Memcached缓存服务器中调用与所述SessionID对应的会话信息。
例如,用户A登陆网站后,欲从当前页面A跳转至另一页面B,浏览器发送页面跳转请求至一应用服务器,该应用服务器通过页面跳转请求中携带的SessionID获知管理用户A的会话信息的缓存服务器为Memcached B和Memcached B’,并从Memcached B或MemcachedB’中调取用户A的会话信息,应用服务器根据调取到的会话信息确认了用户A属于登录状态,则用户A可直接已登录状态访问页面B而无需再次登录。
其中,当需要调用一用户的会话信息时,应用服务器可从对应Memcached缓存服务器组中的任意一个Memcached缓存服务器中调取相关会话信息。因此,当该组Memcached缓存服务器中一Memcached缓存服务器故障时,无需进行缓存服务器节点切换或数据重新分片等复杂处理,极大地提高了当Memcached缓存服务器存在故障时,获取会话信息的效率。
优选地,当与所述第一哈希值对应的一Memcached缓存服务器宕机时,从与所述第一哈希值对应的其它Memcached缓存服务器中获取与所述SessionID对应的会话信息。
例如,Memcached B缓存服务器故障,应用服务器可从Memcached B’中调取用户A的会话信息。
其中,当需要调用一用户的会话信息时,应用服务器可从对应Memcached缓存服务器组中的任意一个Memcached缓存服务器中调取相关会话信息。因此,当该组Memcached缓存服务器中一Memcached缓存服务器故障时,无需进行缓存服务器节点切换或数据重新分片等复杂处理,极大地提高了当Memcached缓存服务器存在故障时,获取会话信息的效率。
若所述会话请求为退出登录请求,则从与所述第一哈希值对应的两个以上Memcached缓存服务器中删除与所述SessionID对应的会话信息。
例如,当用户A退出登录网站时,删除Memcached B和Memcached B’中与用户A相关的所有会话信息。
其中,当一用户退出网站登录时,管理该用户的会话信息的Memcached缓存服务器组中的每一缓存服务器均将该用户对应的会话信息删除,避免同一SessionID后续分配给其它用户使用时造成数据冲突。
综上所述,本实施例提供一种管理会话的终端,当应用服务器集群中的一应用服务器从负载均衡器接收到会话请求时,根据与会话请求对应的SessionID自动选择两个以上Memcached缓存服务器同步管理同一会话信息,使得即使一个Memcached缓存服务器宕机,应用服务器也能从其它Memcached缓存服务器中实时获取所需的会话信息,用户在访问网站的过程中,不会因一个Memcached服务器宕机而被迫退出网站,重新登录,提高了用户在同一网站访问不同页面的效率和整个网站系统的可靠性。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种管理会话的方法,其特征在于,包括:
S1、当一应用服务器从负载均衡器接收到会话请求时,获取与所述会话请求对应的SessionID;
S2、根据预设的哈希算法计算与所述SessionID对应的哈希值,得到第一哈希值;
S3、与所述第一哈希值对应的两个以上Memcached缓存服务器同步管理与所述SessionID对应的会话信息;其中,所述哈希值与所述Memcached缓存服务器之间是一对多关系。
2.根据权利要求1所述的管理会话的方法,其特征在于,所述S2具体为:
根据所述SessionID生成循环冗余校验码;
获取Memcached缓存服务器的组数;其中,一组Memcached缓存服务器包括两个以上Memcached缓存服务器;属于同一组的两个以上Memcached缓存服务器与同一哈希值相对应;
所述循环冗余校验码对所述组数进行取模运算,得到所述第一哈希值。
3.根据权利要求1所述的管理会话的方法,其特征在于,还包括:
当与所述第一哈希值对应的一Memcached缓存服务器宕机时,从与所述第一哈希值对应的其它Memcached缓存服务器中获取与所述SessionID对应的会话信息。
4.根据权利要求1所述的管理会话的方法,其特征在于,所述S3具体为:
若所述会话请求为写入请求,则同时保存与所述SessionID对应的会话请求至与所述第一哈希值对应的两个以上Memcached缓存服务器。
5.根据权利要求1所述的管理会话的方法,其特征在于,所述S3具体为:
若所述会话请求为调用请求,则从与所述第一哈希值对应的任意一Memcached缓存服务器中调用与所述SessionID对应的会话信息;
若所述会话请求为退出登录请求,则从与所述第一哈希值对应的两个以上Memcached缓存服务器中删除与所述SessionID对应的会话信息。
6.一种管理会话的终端,其特征在于,包括一个或多个处理器及存储器,所述存储器存储有程序,并且被配置成由所述一个或多个处理器执行以下步骤:
S1、当一应用服务器从负载均衡器接收到会话请求时,获取与所述会话请求对应的SessionID;
S2、根据预设的哈希算法计算与所述SessionID对应的哈希值,得到第一哈希值;
S3、与所述第一哈希值对应的两个以上Memcached缓存服务器同步管理与所述SessionID对应的会话信息;
其中,所述哈希值与所述Memcached缓存服务器之间是一对多关系。
7.根据权利要求6所述的管理会话的终端,其特征在于,所述S2具体为:
根据所述SessionID生成循环冗余校验码;
获取Memcached缓存服务器的组数;其中,一组Memcached缓存服务器包括两个以上Memcached缓存服务器;属于同一组的两个以上Memcached缓存服务器与同一哈希值相对应;
所述循环冗余校验码对所述组数进行取模运算,得到所述第一哈希值。
8.根据权利要求6所述的管理会话的终端,其特征在于,还包括:
当与所述第一哈希值对应的一Memcached缓存服务器宕机时,从与所述第一哈希值对应的其它Memcached缓存服务器中获取与所述SessionID对应的会话信息。
9.根据权利要求6所述的管理会话的终端,其特征在于,所述S3具体为:
若所述会话请求为写入请求,则同时保存与所述SessionID对应的会话请求至与所述第一哈希值对应的两个以上Memcached缓存服务器。
10.根据权利要求6所述的管理会话的终端,其特征在于,所述S3具体为:
若所述会话请求为调用请求,则从与所述第一哈希值对应的任意一Memcached缓存服务器中调用与所述SessionID对应的会话信息;
若所述会话请求为退出登录请求,则从与所述第一哈希值对应的两个以上Memcached缓存服务器中删除与所述SessionID对应的会话信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811551969.2A CN109361778A (zh) | 2018-12-18 | 2018-12-18 | 一种管理会话的方法及终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811551969.2A CN109361778A (zh) | 2018-12-18 | 2018-12-18 | 一种管理会话的方法及终端 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109361778A true CN109361778A (zh) | 2019-02-19 |
Family
ID=65329008
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811551969.2A Pending CN109361778A (zh) | 2018-12-18 | 2018-12-18 | 一种管理会话的方法及终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109361778A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110442610A (zh) * | 2019-08-05 | 2019-11-12 | 中国工商银行股份有限公司 | 负载均衡的方法、装置、计算设备以及介质 |
CN110839084A (zh) * | 2019-11-19 | 2020-02-25 | 中国建设银行股份有限公司 | 会话管理方法、装置、设备和介质 |
CN113645261A (zh) * | 2020-04-27 | 2021-11-12 | 中国移动通信集团江西有限公司 | 一种会话数据处理方法、装置、存储介质和计算机设备 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060112178A1 (en) * | 2003-07-02 | 2006-05-25 | Van Vleet Taylor N | Server architecture and methods for persistently storing and serving event data |
CN102523234A (zh) * | 2011-12-29 | 2012-06-27 | 山东中创软件工程股份有限公司 | 一种应用服务器集群实现方法及系统 |
CN103078804A (zh) * | 2012-12-28 | 2013-05-01 | 福建星网锐捷网络有限公司 | 等价多路径表处理方法、装置及网络设备 |
CN103200212A (zh) * | 2012-01-04 | 2013-07-10 | 中国移动通信集团公司 | 一种在云计算环境下实现分布式会话的方法和系统 |
CN103546543A (zh) * | 2013-09-29 | 2014-01-29 | 北京京东尚科信息技术有限公司 | 应用于电子商务的客户端装置以及提供信息的方法和系统 |
CN104580226A (zh) * | 2015-01-15 | 2015-04-29 | 上海瀚之友信息技术服务有限公司 | 一种共享会话数据的系统和方法 |
CN105338095A (zh) * | 2015-11-17 | 2016-02-17 | 中国建设银行股份有限公司 | 一种会话数据处理方法和装置 |
CN106815112A (zh) * | 2015-11-27 | 2017-06-09 | 大唐软件技术股份有限公司 | 一种基于深度包检测的海量数据监控系统及方法 |
-
2018
- 2018-12-18 CN CN201811551969.2A patent/CN109361778A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060112178A1 (en) * | 2003-07-02 | 2006-05-25 | Van Vleet Taylor N | Server architecture and methods for persistently storing and serving event data |
CN102523234A (zh) * | 2011-12-29 | 2012-06-27 | 山东中创软件工程股份有限公司 | 一种应用服务器集群实现方法及系统 |
CN103200212A (zh) * | 2012-01-04 | 2013-07-10 | 中国移动通信集团公司 | 一种在云计算环境下实现分布式会话的方法和系统 |
CN103078804A (zh) * | 2012-12-28 | 2013-05-01 | 福建星网锐捷网络有限公司 | 等价多路径表处理方法、装置及网络设备 |
CN103546543A (zh) * | 2013-09-29 | 2014-01-29 | 北京京东尚科信息技术有限公司 | 应用于电子商务的客户端装置以及提供信息的方法和系统 |
CN104580226A (zh) * | 2015-01-15 | 2015-04-29 | 上海瀚之友信息技术服务有限公司 | 一种共享会话数据的系统和方法 |
CN105338095A (zh) * | 2015-11-17 | 2016-02-17 | 中国建设银行股份有限公司 | 一种会话数据处理方法和装置 |
CN106815112A (zh) * | 2015-11-27 | 2017-06-09 | 大唐软件技术股份有限公司 | 一种基于深度包检测的海量数据监控系统及方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110442610A (zh) * | 2019-08-05 | 2019-11-12 | 中国工商银行股份有限公司 | 负载均衡的方法、装置、计算设备以及介质 |
CN110839084A (zh) * | 2019-11-19 | 2020-02-25 | 中国建设银行股份有限公司 | 会话管理方法、装置、设备和介质 |
CN113645261A (zh) * | 2020-04-27 | 2021-11-12 | 中国移动通信集团江西有限公司 | 一种会话数据处理方法、装置、存储介质和计算机设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109684358B (zh) | 数据查询的方法和装置 | |
CN113010818B (zh) | 访问限流方法、装置、电子设备及存储介质 | |
CN106899680A (zh) | 多区块链的分片处理方法和装置 | |
EP2369494A1 (en) | Web application based database system and data management method therof | |
CN109361778A (zh) | 一种管理会话的方法及终端 | |
CN109462631B (zh) | 数据处理方法、装置、存储介质及电子装置 | |
CN110737857A (zh) | 一种后端分页加速方法、系统、终端及存储介质 | |
CN109951566A (zh) | 一种Nginx负载均衡方法、装置、设备及可读存储介质 | |
CN101326493A (zh) | 用于多处理器服务器中的负载分配的方法和装置 | |
CN103607312A (zh) | 用于服务器系统的数据请求处理方法及系统 | |
CN102035815A (zh) | 数据获取方法、接入节点和系统 | |
CN105681426B (zh) | 异构系统 | |
CN110191186A (zh) | Cdn服务器调度方法、设备及计算机可读存储介质 | |
CN111753065A (zh) | 请求响应方法、系统、计算机系统和可读存储介质 | |
CN109086136A (zh) | 一种Samba软件的请求处理方法及相关装置 | |
CN112600761A (zh) | 一种资源分配的方法、装置及存储介质 | |
CN113014608B (zh) | 一种流量分发控制方法、装置、电子设备及存储介质 | |
CN112988378A (zh) | 业务处理方法及装置 | |
CN112764948A (zh) | 数据发送方法、数据发送装置、计算机设备及存储介质 | |
CN109495553A (zh) | 一种网页显示控制方法、系统及反向代理服务器 | |
US9736082B2 (en) | Intelligent high-volume cloud application programming interface request caching | |
CN102857547A (zh) | 分布式缓存的方法及设备 | |
CN109067898A (zh) | 一种通过文件散列分布降低内容分发网络边缘节点回源率的方法 | |
CN104077381B (zh) | 网页访问请求处理方法和分配方法 | |
US20130282654A1 (en) | Query engine communication |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190219 |