技术开发 频道

MySQL的会话管理

  3.4 扩展性和负载平衡:

  一个使用session的应用是有限的,在这么多中,每一个HTTP请求都必须处理用于session变量下的请求。关于记录状态的信息,由于一个请求的结果需要另一请求的变量。其实就是我们知道的,如果这个sessionID存在就只要检索它就行。 通常,在Web服务器上执行会话的应用程序将存储他们的会话变量。 例如,当在网络上用户初次浏览一个网页时,创建session,而所有后续的请求,希望进一步浏览、搜索、添加、删除购物车中的物品,或登录、注销,都必须在保存会话变量的Web服务器上处理。这种结构使许多应用使用HTTP来分配通过多个Web服务器的请求,因此不能容易实施扩展的方法,为了处理越来越多的要求。下图是一个在web服务器上存储会话变量的应用:

  系统组件间有2个基本策略用来进行负载均衡:静态和动态负载均衡。

  静态的负载均衡

  也就是作业的初始放置问题,已经得到了广泛的研究,可是由于在一定时刻获取全局状态的精确信息是不可能的,而且根据该不精确信息做出的调度又不能更改,因而其效果有限。

  动态负载均衡

  也就是根据处理结点的负载情况动态地改变分配给它的作业量策略,希望能最好地解决各个节点之间的均衡。大多数情况下,动态负载均衡要比静态负载均衡性能提高大约30%。

  在MySQL数据库里,可以采用的一个策略就是使应用程序能够利用多个Web服务器来存储这些session变量。MySQL的扩展能力如下图所示:

 

  MySQL提供了一种可扩展性需求,通过全球访问最频繁的网站,不仅对session管理,而且还为其他应用程序组件,如以数据库,事务和商务智能/数据仓库。使用商业化硬件与开源软件的LAMP组件的扩展架构能力是能让您的应用去扩展和把成本仍然保持在控制之中。使用MySQL的另一个好处是可选的、易于使用、复制,扩展到另一角度是能实现故障转移、性能或维护功能。

0
相关文章