1.高可用架构设计之无状态服务
https://www.jianshu.com/p/6c8c580a67b7
2.https://www.cnblogs.com/aspirant/p/5702338.html http协议和web应用有状态和无状态浅析
以呼叫中心为例解释如何将有状态设计转换成无状态设计? - 腾讯云开发者社区-腾讯云
3
背景技术:
基于http协议的web服务原本为无状态服务,多次请求间无关联。但是由于某些web服务需要用户登录,以区分不同用户来提供不同的用户服务,需要web服务变成有状态服务。因此,目前web服务会在基于http协议的基础上,给请求头信息增加会话信息编码(即session编码),web服务器上可根据会话信息编码保存或获取对应的会话信息,从而实现web有状态服务。
随着万维网的不断发展,使用用户不断增加,单台服务器已无法满足访问需求,需要搭建多台服务器来保证服务,即web有状态服务集群。
在有状态服务中,用户向web服务器发出请求访问数据,由于用户访问会话的会话信息编码保存在web服务器中,集群多台web服务器间会话信息不共享。为了使集群中多个web服务器能共同提供web服务,传统的方法是把会话信息的会话信息编码与集群中特定的web服务器绑定,集群路由会根据会话信息的会话信息编码访问指定的web服务器,使得集群中多个web服务器为不同的用户群进行服务,从而实现集群多个服务器共同提供web服务。
但是此方式会存在以下缺点:集群路由会根据会话信息编码访问指定的服务器,当其中web服务器出现故障时,当web服务器需要重启时,此前的会话信息将会丢失,导致用户操作信息丢失,影响用户使用,同时,即使集群中存在正常的web服务器,用户仍然无法访问。
另外,当用户访问量急剧增加,集群中web服务器不能满足当前的访问量时,即使增加集群中web服务器,也不能分担web服务器现有用户访问量,集群路由依旧根据会话信息编码访问指定的服务器,这使得集群的动态伸缩无法实现。
技术实现要素:
为解决上述技术问题,本发明的目的是提供一种将web有状态服务集群转换为无状态服务集群的服务构建方法。
本发明采用的技术方案是:
一种web有状态转换无状态服务集群的方法,包括web服务器以及储存有会话信息数据的会话信息储存服务器,web服务器与会话信息储存服务器构成连接,其中转换流程包括以下步骤:
web服务器根据请求访问数据的会话信息编码向会话信息储存服务器查询会话信息;
会话信息储存服务器返回与会话信息编码对应的会话信息到web服务器;
若会话信息储存服务器不存在与会话信息编码对应的会话信息,web服务器会生成会话信息,并且web服务器将会话信息发送到会话信息储存服务器中进行储存。
会话信息以二进制形式储存在会话信息储存服务器中,会话信息储存服务器返回与会话信息编码对应的二进制的会话信息到web服务器;
若会话信息储存服务器不存在与会话信息编码对应的会话信息时,web服务器将生成会话信息转换为二进制的会话信息并且发送到会话信息储存服务器中进行储存;
web服务器将由会话信息储存服务器返回的二进制的会话信息或者由web服务器转换为二进制的会话信息转换成会话信息。
所述web服务器包括若干个,所述会话信息储存服务器包括若干个,若干个web服务器通过会话信息储存路由与若干个会话信息储存服务器构成连接。
还包括集群路由,外部通过集群路由向web服务器发出请求访问数据。
本发明的有益效果:
本发明web有状态转换无状态服务集群的方法,在web服务器集群的基础上,增加了用于专门储存会话信息数据的会话信息储存服务器,用户向web服务器发出请求访问数据,web服务器会将会话信息编码向会话信息储存服务器查询会话信息,在会话信息储存服务器中若存在与会话信息编码对应的会话信息,会话信息储存服务器会返回会话信息;若会话信息储存服务器不存在与会话信息编码对应的会话信息,web服务器会生成会话信息,同时发送到会话信息储存服务器进行储存,本设计在web服务器出现故障,需要重启时,此前的会话信息不会丢失,会话信息储存服务器会将会话信息返回到正常的web服务器,用户能够正常访问,将web有状态服务转化为web无状态服务集群,利用web无状态服务集群特性,提高web服务的可用性,并充分利用集群可动态伸缩和并发负载的特性。
同时,会话信息以二进制形式储存在信息储存服务器,二进制占用空间少,读取速度更快。
若干个web服务器通过会话信息储存路由与若干个会话信息储存服务器构成连接,若干个会话信息存储服务器保证在部分服务器出现故障时亦能保证正常的存储服务,同时,web服务器通过会话信息路由转发服务再连接操作会话信息存储服务器,即使增加会话信息存储服务器,也无需修改应用程序。
附图说明
下面结合附图对本发明的具体实施方式做进一步的说明。
图1是本发明转换方法的运行流程图。
图2是本发明web服务器与会话信息储存服务器的构造示意图。
具体实施方式
如图1、图2所示,本设计web有状态转换成无状态服务集群的方法,包括web服务器以及储存有会话信息数据的会话信息储存服务器,web服务器与会话信息储存服务器构成连接,其中,转换流程包括以下步骤:
web服务器根据请求访问数据的会话信息编码向会话信息储存服务器查询会话信息;
会话信息储存服务器返回与会话信息编码对应的会话信息到web服务器;
若会话信息储存服务器不存在与会话信息编码对应的会话信息,web服务器会生成会话信息,并且web服务器将会话信息发送到会话信息储存服务器中进行储存。
其中,有状态服务是指先后的请求是有关联的,需要保存请求会话数据,而无状态服务是指对单次请求的处理,不依赖其他请求,集群动态伸缩是指根据您的业务需求和伸缩策略,调整计算资源。在需求高峰期时,弹性伸缩自动增加集群服务器的数量,以保证性能不受影响;当需求较低时,则会减少集群服务器数量以降低成本。
本设计在web服务器集群的基础上,增加了用于专门储存会话信息数据的会话信息储存服务器,用户向web服务器发出请求访问数据,web服务器会将会话信息编码向会话信息储存服务器查询会话信息,在会话信息储存服务器中若存在与会话信息编码对应的会话信息,会话信息储存服务器会返回会话信息;若会话信息储存服务器不存在与会话信息编码对应的会话信息,web服务器会生成会话信息,同时发送到会话信息储存服务器进行储存,本设计在web服务器出现故障,需要重启时,此前的会话信息不会丢失,会话信息储存服务器会将会话信息返回到正常的web服务器,用户能够正常访问,将web有状态服务转化为web无状态服务集群,利用web无状态服务集群特性,提高web服务的可用性,并充分利用集群可动态伸缩和并发负载的特性。
进一步,会话信息以二进制形式储存在会话信息储存服务器中,会话信息储存服务器返回与会话信息编码对应的二进制的会话信息到web服务器;
若会话信息储存服务器不存在与会话信息编码对应的会话信息时,web服务器将生成会话信息转换为二进制的会话信息并且发送到会话信息储存服务器中进行储存;
web服务器将由会话信息储存服务器返回的二进制的会话信息或者由web服务器转换为二进制的会话信息转换成用于web服务器访问的会话信息。
此处,会话信息以二进制形式储存在信息储存服务器,二进制占用空间少,读取速度更快。
在web服务器与会话信息储存服务器的构建上,如图2所示,web服务器包括若干个并构成web服务器集群,所述会话信息储存服务器包括若干个并构成会话信息储存服务器集群,若干个web服务器通过会话信息储存路由与若干个会话信息储存服务器构成连接,并且还包括集群路由,外部用户通过集群路由向web服务器发出请求访问数据。
若干个会话信息存储服务器保证在部分服务器出现故障时亦能保证正常的存储服务,同时,web服务器通过会话信息路由转发服务再连接操作会话信息存储服务器,即使增加会话信息存储服务器,也无需修改应用程序。
以上所述仅为本发明的优先实施方式,本发明并不限定于上述实施方式,只要以基本相同手段实现本发明目的的技术方案都属于本发明的保护范围之内。