一种基于国产数据库的session管理中间件、系统及运行方法技术方案

技术编号:27655532 阅读:16 留言:0更新日期:2021-03-12 14:17
本发明专利技术公开了一种基于国产数据库的session管理中间件,session管理中间件包括依次连接的session核心模块、session引擎模块和session数据库适配模块,session核心模块用于管理HTTP请求和HTTP响应中的session会话信息,session引擎模块用于使用session数据库适配模块对国产化数据库服务器进行session会话信息操作,session数据库适配模块包括国产数据库初始化单元、国产数据库重连单元、国产数据库连接请求处理单元、国产数据库执行单元和国产数据库结果获取单元。本发明专利技术还公开了部署该session管理中间件的WEB服务器集群系统以及该系统的运行方法。本发明专利技术的session管理中间件增加session数据库适配模块,能够对国产数据库的操作进行支持,因此可以实现session会话国产数据库持久化存储的要求。

【技术实现步骤摘要】
一种基于国产数据库的session管理中间件、系统及运行方法
本专利技术涉及session会话管理
,尤其涉及一种基于国产数据库的session管理中间件、系统及运行方法。
技术介绍
当前,WEB服务技术不断完善,WEB服务器集群的架构成为企业级WEB服务的主流选择。WEB服务器集群主要采用负载均衡的方式分发连接到服务器的请求,分散每台WEB服务器的响应压力,能提升请求的响应速度,降低WEB服务不可用的风险。在WEB服务器集群广泛应用的同时,为了保证session会话的共享存储,目前存在WEB服务器集群中基于数据库进行session管理的方法,但是现有的方法是通过修改WEB框架的配置项对接数据库,但是现有的WEB框架只能配置MySQL数据库、Memcached数据及Redis数据库,缺少对国产数据库的支持,不能对接国产数据库,导致WEB服务器集群对接国产数据库时只能采用session复制的方式在WEB服务器集群中共享session会话,而WEB服务器集群中频繁的session复制同步会导致WEB服务器集群性能低、延时高、用户体验差。
技术实现思路
本专利技术要解决的技术问题就在于:针对现有技术存在的技术问题,本专利技术提供一种基于国产数据库的session管理中间件、系统及运行方法,能够对国产数据库的操作进行支持,满足session会话国产数据库持久化存储的要求。为解决上述技术问题,本专利技术提出的技术方案为:一种基于国产数据库的session管理中间件,包括依次连接的session核心模块、session引擎模块和session数据库适配模块,其中:所述session核心模块用于管理HTTP请求和HTTP响应中的session会话信息;所述session引擎模块用于使用session数据库适配模块对国产化数据库服务器进行session会话信息操作;所述session数据库适配模块用于向session引擎模块提供国产数据库服务器的管理功能,所述session数据库适配模块包括:国产数据库初始化单元,用于使用国产数据库提供的连接参数连接国产数据库服务器创建一个国产数据库连接池;国产数据库重连单元,用于创建国产数据库连接池时连接国产数据库服务器失败后重连国产数据库服务器,如果失败次数达到阈值则直接向session引擎模块报告初始化失败的错误信息;国产数据库连接请求处理单元,用于在国产数据库连接池创建成功后接收session引擎模块申请的国产数据库连接请求,从国产数据库连接池中获取一个空闲连接并分配给该国产数据库连接请求,如果没有空闲连接,则进行等待直到有空闲连接;国产数据库执行单元,用于获取session引擎模块发送的session会话操作指令,根据session会话操作指令的类型对国产数据库执行相应的session会话信息操作;国产数据库结果获取单元,用于向session引擎模块提供执行结果。进一步的,所述session会话信息包括session唯一标识码、session信息数据和过期时间。进一步的,所述管理HTTP请求和HTTP响应中的session会话信息具体包括:如果HTTP请求是首次与WEB服务器集群建立连接,调用session引擎模块为其分配session唯一标识码、session信息数据和过期时间,并通过session引擎模块使用session数据库适配模块将session唯一标识码、session信息数据和过期时间持久化存储到国产数据库服务器中;如果HTTP请求非首次与WEB服务器集群建立连接,通过session引擎模块使用session数据库适配模块读取国产数据库中持久化的session唯一标识码、session信息数据和过期时间信息;当处理HTTP响应时,若HTTP响应中的session会话信息与HTTP请求存在差异时,调用session引擎模块使用session数据库适配模块将新的session会话信息持久化存储到国产数据库服务器中。进一步的,所述session会话信息操作包括从国产化数据库服务器读取session会话信息、判断session会话信息是否存在于国产数据库服务器中、创建session会话信息到国产化数据库服务器、返回session会话信息、持久化session会话信息到国产数据库服务器、删除国产化数据库服务器中session会话信息。本专利技术还提出一种WEB服务器集群系统,包括依次连接的终端、负载均衡服务器、WEB服务器集群和国产数据库服务器,其中:所述的负载均衡服务器用于分发HTTP请求到WEB服务器集群,负载均衡服务器与WEB服务器集群共享同一个虚拟地址,负载均衡服务器通过配置各台WEB服务器的权重来维护管理HTTP请求分发策略;所述的WEB服务器集群至少包含一台WEB服务器,WEB服务器集群用于处理HTTP请求并返回HTTP响应,WEB服务器集群中部署有与WEB服务器一一对应的session管理中间件,所述session管理中间件为上述的基于国产数据库的session管理中间件;所述的国产数据库服务器用于为WEB服务器集群和session管理中间件提供数据管理服务,持久化存储session会话信息以及WEB服务器的配置数据。本专利技术还提出上述WEB服务器集群系统的运行方法,包括以下步骤:S1)用户通过终端的浏览器向WEB服务器集群发起HTTP请求;S2)负载均衡服务器根据配置的权重向WEB服务器集群中的WEB服务器分发HTTP请求;S3)WEB服务器对应的session管理中间件的session核心模块收到HTTP请求后,判断该HTTP请求中是否携带session会话信息的session唯一标识码,否则执行步骤S4);是则执行步骤S5);S4)session管理中间件的session核心模块生成长度为32位的随机字符串作为session的唯一标识码,同时初始化一个空字典作为session会话信息的session信息数据载体,并且根据配置的过期时间设置此次session会话信息的过期时间,然后分别设置此次session会话的访问标志位、修改标志位和空session标志位,通过session引擎模块使用session数据库适配模块将session会话信息持久化存储到国产数据库服务器中,跳转步骤S6);S5)session管理中间件的session核心模块调用session引擎模块根据session唯一标识码读取国产数据库中对应的session会话信息;S6)session管理中间件将session会话信息填充到HTTP协议报文中,然后交给对应的WEB服务进行处理;S7)WEB服务处理session会话信息时同步设置session会话信息的访问标志位、修改标志位以及空session标志位,然后发送HTTP响应到对应的session管理中间件;S8)session管理中间件收到WEB服务返回的HTTP本文档来自技高网...

【技术保护点】
1.一种基于国产数据库的session管理中间件,其特征在于,包括依次连接的session核心模块、session引擎模块和session数据库适配模块,其中:/n所述session核心模块用于管理HTTP请求和HTTP响应中的session会话信息,如果HTTP请求是首次与WEB服务器集群建立连接,调用session引擎模块为其分配session会话信息,并通过session引擎模块使用session数据库适配模块将session会话信息持久化存储到国产数据库服务器中;如果HTTP请求非首次与WEB服务器集群建立连接,通过session引擎模块使用session数据库适配模块读取国产数据库中持久化的session会话信息;当处理HTTP响应时,若HTTP响应中的session会话信息与HTTP请求存在差异时,调用session引擎模块使用session数据库适配模块将新的session会话信息持久化存储到国产数据库服务器中;/n所述session引擎模块用于使用session数据库适配模块对国产化数据库服务器进行session会话信息操作;/n所述session数据库适配模块用于向session引擎模块提供国产数据库服务器的管理功能,所述session数据库适配模块包括:/n国产数据库初始化单元,用于使用国产数据库提供的连接参数连接国产数据库服务器创建一个国产数据库连接池;/n国产数据库重连单元,用于创建国产数据库连接池时连接国产数据库服务器失败后重连国产数据库服务器,如果失败次数达到阈值则直接向session引擎模块报告初始化失败的错误信息;/n国产数据库连接请求处理单元,用于在国产数据库连接池创建成功后接收session引擎模块申请的国产数据库连接请求,从国产数据库连接池中获取一个空闲连接并分配给该国产数据库连接请求,如果没有空闲连接,则进行等待直到有空闲连接;/n国产数据库执行单元,用于获取session引擎模块发送的session会话操作指令,根据session会话操作指令的类型对国产数据库执行相应的session会话信息操作;/n国产数据库结果获取单元,用于向session引擎模块提供执行结果。/n...

【技术特征摘要】
1.一种基于国产数据库的session管理中间件,其特征在于,包括依次连接的session核心模块、session引擎模块和session数据库适配模块,其中:
所述session核心模块用于管理HTTP请求和HTTP响应中的session会话信息,如果HTTP请求是首次与WEB服务器集群建立连接,调用session引擎模块为其分配session会话信息,并通过session引擎模块使用session数据库适配模块将session会话信息持久化存储到国产数据库服务器中;如果HTTP请求非首次与WEB服务器集群建立连接,通过session引擎模块使用session数据库适配模块读取国产数据库中持久化的session会话信息;当处理HTTP响应时,若HTTP响应中的session会话信息与HTTP请求存在差异时,调用session引擎模块使用session数据库适配模块将新的session会话信息持久化存储到国产数据库服务器中;
所述session引擎模块用于使用session数据库适配模块对国产化数据库服务器进行session会话信息操作;
所述session数据库适配模块用于向session引擎模块提供国产数据库服务器的管理功能,所述session数据库适配模块包括:
国产数据库初始化单元,用于使用国产数据库提供的连接参数连接国产数据库服务器创建一个国产数据库连接池;
国产数据库重连单元,用于创建国产数据库连接池时连接国产数据库服务器失败后重连国产数据库服务器,如果失败次数达到阈值则直接向session引擎模块报告初始化失败的错误信息;
国产数据库连接请求处理单元,用于在国产数据库连接池创建成功后接收session引擎模块申请的国产数据库连接请求,从国产数据库连接池中获取一个空闲连接并分配给该国产数据库连接请求,如果没有空闲连接,则进行等待直到有空闲连接;
国产数据库执行单元,用于获取session引擎模块发送的session会话操作指令,根据session会话操作指令的类型对国产数据库执行相应的session会话信息操作;
国产数据库结果获取单元,用于向session引擎模块提供执行结果。


2.根据权利要求1所述的基于国产数据库的session管理中间件,其特征在于,所述session会话信息包括session唯一标识码、session信息数据和过期时间。


3.根据权利要求1所述的基于国产数据库的session管理中间件,其特征在于,所述session会话信息操作包括从国产化数据库服务器读取session会话信息、判断session会话信息是否存在于国产数据库服务器中、创建session会话信息到国产化数据库服务器、返回session会话信息、持久化session会话信息到国产数据库服务器、删除国产化数据库服务器中session会话信息。


4.一种WEB服务器集群系统,其特征在于,包括依次连接的终端、负载均衡服务器、WEB服务器集群和国产数据库服务器,其中:
所述的负载均衡服务器用于分发HTTP请求到WEB服务器集群,负载均衡服务器与WEB服务器集群共享同一个虚拟地址,负载均衡服务器通过配置各台WEB服务器的权重来维护管理HTTP请求分发策略;
所述的WEB服务器集群至少包含一台WEB服务器,WEB服务器集群用于处理HTTP请求并返回HTTP响应,WEB服务器集群中部署有与WEB服务器一一对应的session管理中间件,所述sess...

【专利技术属性】
技术研发人员:何凯蒋李彭勇申锟铠刘文清杨涛
申请(专利权)人:湖南麒麟信安科技股份有限公司
类型:发明
国别省市:湖南;43

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

1