继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

负载均衡环境下的web服务器问题

陪伴而非守候
关注TA
已关注
手记 365
粉丝 62
获赞 285

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

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

1.文件同步问题:

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

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

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

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

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

c.如果想DIY的话,其实利用.Net中的FileWatcher类通过对源站目录中的文件监视就能方便的实现文件同步,而且这种方式很灵活,实时或定时都能实现(完全由开发者自行控制)。

2.Session的处理

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

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


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"/>

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP