zoukankan      html  css  js  c++  java
  • 负载均衡环境下的web服务器处理

    负载均衡设备允许把一台web server轻易扩展成web server集群(前提是所有的web server必须配置完全相同),有访问请求时,该设备会把该请求根据一定的算法,分配给web服务器集群中的某一台服务器,从而大大增加了web server的并发处理能力。

    实际应用中,通常把多个web server放在同一机房,相互之间可以用局域网访问。

    1.文件同步问题:

    多个web服务器上的网站文件必须完全相同,否则有可能造成用户前后二次请求访问的页面内容不同,所以文件同步是必须要考虑的首要问题.

    这里介绍几种常用的方法:

    a.批处理文件 + 计划任务 :批处理文件利用dos命令完成文件的局域网内复制,然后计划任务里每隔一定时间自动执行bat文件即可。

    这种方式适合不经常更新的应用环境,如果要求文件更新必须实时的话,这种方法就不行了.

    b.利用现成的文件同步软件:市面上有一些不错的文件同步软件,直接用就行了。(有些功能强的软件支持定时同步和实时同步二种方式)

    c.如果想DIY的话,其实利用.Net中的FileWatcher类通过对源站目录中的文件监视就能方便的实现文件同步,而且这种方式很灵活,实时或定时都能实现(完全由开发者自行控制)。
    FileWatcher的使用示例见我的另一篇blog:http://www.cnblogs.com/yjmyzz/archive/2009/06/07/1498221.html(利用FileWatcher实现文件实时监视)

    2.Session的处理

    默认方式下,Session是InProc模式,即session是存放于网站所在的服务器上,所以多台服务器的session同步也是一个问题。这个asp时代可能比较麻烦,但幸运的是.net从2.0开始,允许session存放于一台特定的服务器甚至某个数据库中,这样的话不管web服务器有多少台,都可以把session集中存放在一台专门的数据库服务器中.

    这里以存放于SqlServer为例,大概讲解一下使用步骤:
    a.先停止IIS服务,cmd环境下输入net stop w3svc或iisreset /stop即可(这一步貌似可选,详情见http://support.microsoft.com/kb/317604)


    b.打开数据库,运行\WINNT\Microsoft.NET\Framework\(.net版本号)\installSqlState.sql,目的是配置session数据库


    c.修改网站的web.config配置,如下:
    <sessionState mode="SQLServer" sqlConnectionString="Data Source=服务器IP地址;User ID=***;Password=***;" cookieless="false" timeout="20"/>

    作者:菩提树下的杨过
    出处:http://yjmyzz.cnblogs.com
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    JVM垃圾回收机制
    浅谈类的几个基础构造函数
    三次登陆用户名 和密码
    干迷宫
    记录人生中的第一个bug
    js三元运算符? :
    Linux云服务器 磁盘分区失败
    python基础中遇到的问题(TypeError: unhashable type: 'list')
    python亲密数设计
    源码编译安装Protobuf
  • 原文地址:https://www.cnblogs.com/yjmyzz/p/1498465.html
Copyright © 2011-2022 走看看