一种可兼容分布式系统的会话管理方法及装置制造方法及图纸

技术编号:38836109 阅读:16 留言:0更新日期:2023-09-17 09:52
本发明专利技术提供一种可兼容分布式系统的会话管理方法及装置,该方法包括:获取当前服务请求中的token;基于token,从缓存框架中获取对应的会话;在获取到会话的情况下,判断会话是否有效;在会话有效的情况下,将会话对应的会话对象存储于threadlocal。在用户登录系统时,控制台服务会基于用户生成其对应的token以及会话,并将token以及会话存储于控制台服务数据库和缓存框架中,从而服务可以通过访问缓存框架独立验证token有效性并得到存储于会话对象中的身份信息,可以避免每次请求都需要去控制台验证有效性,减小对控制台的访问压力,提高请求的执行效率。高请求的执行效率。高请求的执行效率。

【技术实现步骤摘要】
一种可兼容分布式系统的会话管理方法及装置


[0001]本申请涉及数据处理领域,尤其涉及一种可兼容分布式系统的会话管理方法及装置。

技术介绍

[0002]随着系统架构模式的发展,对于用户登录状态的验证及保持,传统的cookie

session机制已经无法满足分布式的微服务系统的要求,
[0003]分布式架构是指后端集群部署,微服务是一个服务拆分成多个服务部署,和分布式有相同,都是多个服务。为了验证及保持用户登录状态,传统cookie

session机制中,登录后会将session存在一台服务器,而在分布式或微服务场景下需要一次登录在每台服务器共享session,因此,传统的cookie

session机制已经无法满足分布式的微服务系统的要求。从而,针对分布式的微服务系统的要求,本领域技术人员提出了发放JWT的方式验证及保持用户登录状态。然而,发放JWT的方式无法保证时效性,退出登录后其他服务不能感知,且每次请求都需要去控制台验证有效性,效率较低。
[0004]有鉴于此,提出了本专利技术,以至少部分地解决现有技术中存在的技术问题。

技术实现思路

[0005]本申请提供一种可兼容分布式系统的会话管理方法及装置,用以解决现有的token校验方式频繁访问控制台,导致访问效率低,以及现有的token校验方式不支持分布式部署的技术问题。
[0006]根据本专利技术的第一方面。提供一种可兼容分布式系统的会话管理方法,包括:
[0007]获取当前服务请求中的token;基于token,从缓存框架中获取对应的会话;在获取到会话的情况下,判断会话是否有效;在会话有效的情况下,将会话对应的会话对象存储于threadlocal。
[0008]优选的,从缓存框架中未获取到会话的情况下,判断当前服务是否是控制台服务;在当前服务为控制台服务的情况下,从控制台服务数据库中获取会话并存储到缓存框架中。
[0009]优选的,在当前服务为非控制台服务的情况下,调用控制台服务;基于控制台服务,从控制台服务数据库中获取会话并存储到缓存框架中。
[0010]优选的,该方法还包括:
[0011]判断本次访问会话的时间与上一次访问会话的时间的第一差值是否超过第一阈值;在第一差值超过第一阈值的情况下,更新缓存框架中的会话的访问时间;判断当前服务是否为控制台服务;在当前服务为控制台服务的情况下,更新控制台服务数据库中的会话的访问时间。
[0012]优选的,判断当前服务是否为控制台服务之后,该方法还包括:
[0013]在当前服务为非控制台服务的情况下,调用控制台服务;基于控制台服务,更新控
制台服务数据库中的会话的访问时间。
[0014]优选的,第一阈值的取值可以为分钟。
[0015]优选的,在会话无效或从控制台服务数据库中未获取到会话的情况下,则跳转到登录界面。
[0016]优选的,基于会话的当前访问时间与会话的上一次访问时间,计算得到第二差值;在第二差值大于第二阈值的情况下,判断会话无效。
[0017]根据本专利技术的第二方面,提供一种可兼容分布式系统的会话管理装置,包括:
[0018]第一获取模块,用于获取当前服务请求中的token;
[0019]第二获取模块,用于基于token,从缓存框架中获取对应的会话;
[0020]第一判断模块,用于在获取到会话的情况下,判断会话是否有效;
[0021]第一存储模块,用于在会话有效的情况下,将会话对应的会话对象存储于threadlocal。
[0022]优选的,该装置还包括:
[0023]第二判断模块,用于从缓存框架中未获取到会话的情况下,判断当前服务是否是控制台服务;
[0024]第二存储模块,用于在当前服务为控制台服务的情况下,从控制台服务数据库中获取会话并存储到缓存框架中。
[0025]优选的,该装置还包括:
[0026]第一调用模块,用于在当前服务为非控制台服务的情况下,调用控制台服务;
[0027]第三存储模块,用于基于控制台服务,将控制台服务数据库中的会话存储于缓存框架中,以使当前服务从缓存框架中获取会话
[0028]优选的,该装置还包括:
[0029]第三判断模块,用于判断本次访问会话的时间与上一次访问会话的时间的第一差值是否超过第一阈值;
[0030]第一更新模块,用于在第一差值超过第一阈值的情况下,更新缓存框架中的会话的访问时间;
[0031]第四判断模块,用于判断当前服务是否为控制台服务;
[0032]第二更新模块,用于在当前服务为控制台服务的情况下,更新控制台服务数据库中的会话的访问时间。
[0033]优选的,该装置还包括:
[0034]第一调用模块,用于在当前服务为非控制台服务的情况下,调用控制台服务;
[0035]第三更新模块,用于基于控制台服务,更新控制台服务数据库中的会话的访问时间。
[0036]优选的,在会话无效或从控制台服务数据库中未获取到会话的情况下,跳转到登录界面。
[0037]优选的,基于会话的当前访问时间与会话的上一次访问时间,计算得到第二差值;在第二差值大于第二阈值的情况下,判断会话无效。
[0038]根据本专利技术的第三方面,提供一种微服务系统,微服务系统的每个服务均集成有上述的可兼容分布式系统的会话管理装置。
[0039]根据本专利技术的第四方面,提供一种电子设备,该电子设备包括:处理器以及存储有计算机程序指令的存储器;
[0040]处理器执行计算机程序指令时实现如上述的可兼容分布式系统的会话管理方法。
[0041]根据本专利技术的第五方面,提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序指令,计算机程序指令被处理器执行时实现如上述的可兼容分布式系统的会话管理方法。
[0042]综上,本申请提供一种可兼容分布式系统的会话管理方法及装置,该方法包括:获取当前服务请求中的token;基于token,从缓存框架中获取对应的会话;在获取到会话的情况下,判断会话是否有效;在会话有效的情况下,将会话对应的会话对象存储于threadlocal。在用户登录系统时,控制台服务会基于用户生成其对应的token以及会话,并将token以及会话存储于控制台服务数据库和缓存框架中,从而服务可以通过访问缓存框架独立验证token有效性并得到存储于会话对象中的身份信息,可以避免每次请求都需要去控制台验证有效性,减小对控制台的访问压力,提高请求的执行效率。
附图说明
[0043]为了更清楚地说明本申请具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施方式,对于本领域的技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
...

【技术保护点】

【技术特征摘要】
1.一种可兼容分布式系统的会话管理方法,其特征在于,包括:获取当前服务请求中的token;基于所述token,从缓存框架中获取对应的会话;在获取到所述会话的情况下,判断所述会话是否有效;在所述会话有效的情况下,将所述会话对应的会话对象存储于threadlocal。2.根据权利要求1所述的可兼容分布式系统的会话管理方法,其特征在于,所述方法还包括:从缓存框架中未获取到所述会话的情况下,判断当前服务是否是控制台服务;在当前服务为控制台服务的情况下,从控制台服务数据库中获取所述会话并存储到缓存框架中。3.根据权利要求2所述的可兼容分布式系统的会话管理方法,其特征在于,所述方法还包括:在当前服务为非控制台服务的情况下,调用所述控制台服务;基于所述控制台服务,将控制台服务数据库中的所述会话存储于所述缓存框架中,以使当前服务从缓存框架中获取所述会话。4.根据权利要求1所述的可兼容分布式系统的会话管理方法,其特征在于,所述方法还包括:判断本次访问所述会话的时间与上一次访问所述会话的时间的第一差值是否超过第一阈值;在所述第一差值超过第一阈值的情况下,更新所述缓存框架中的所述会话的访问时间;判断当前服务是否为控制台服务;在当前服务为控制台服务的情况下,更新所述控制台服务数据库中的所述会话的访问时间。5.根据权利要求4所述的可兼容分布式系统的会话管理方法,其特征在于,所述方法还包括:在当前服...

【专利技术属性】
技术研发人员:王亚平李彤
申请(专利权)人:北京元年科技股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1