我们公司目前运行两台Windows2003服务器(一台web服务器和一台MSSQL8数据库服务器)。我们计划在web场设置中添加另外两台服务器,以实现冗余/可用性目的。我们的网站主要是ASP.NET,我们确实有一些PHP网站,但这些主要是静态的,没有数据库。
有没有经历过这个过程的人有什么我应该知道的陷阱或其他要点?使用Windows Server 2008是否会为这种情况提供任何额外的好处(这样我就可以说服我的老板升级:)?
谢谢。
发布于 2008-11-22 10:19:24
如果您有动态负载平衡(即,我的第一个请求发送到服务器X,但我的下一个请求可能发送到服务器Y或Z),您会发现进程内会话无法工作。所以你要么需要sticky Sessions (你的负载均衡器总是把me (=my session)发送到服务器X),要么需要进程外会话(即存储在SQL server中)。
发布于 2008-11-22 10:26:23
就像Michael说的,你需要照顾好你的会话。理想情况下,让它变得精益,并在过程外存储。根据你如何使用缓存,你可能会遇到类似的挑战,如果你只使用asp缓存,你可能会有兴趣寻找更健壮的缓存技术。
不要忘记web.config中的机器密钥和验证之类的东西。machineKeys需要在您的服务器上保持一致。
阅读IIS7,你应该能够挑选出几个很好的例子来向你的老板炫耀。
通过部署,web场可以为您带来不可忽视的机遇和挑战。
对上面的设置没有特别的经验,但对这种一般的动作没有特殊的经验。我建议将该方法分阶段进行。也就是说,先迁移到Windows 2008,然后再迁移到服务器场。
发布于 2008-11-22 19:07:28
另一件需要注意的事情是您的部署计划。遗憾的是,部署计划似乎被忽视和/或低估了。请记住,您要部署到多个节点,并且要考虑如何以逻辑方式进行部署和测试。
例如,假设您的场中有四个节点。是否从集群中取出两个并进行更新和测试,然后换出其他两个进行重复?确定您当前的部署流程是否符合您提供的答案。仅仅因为您拥有X倍的服务器数量并不意味着您想要或需要做X倍的工作量。
只是暂时回顾一下对话中的缓存部分。您绝对应该考虑一下分布式缓存解决方案。如果您正在预缓存数据,并使用带有缓存删除的回调,那么如果您不小心的话,可能会对数据库造成很大的影响。此外,许多分布式缓存解决方案也提供了某种级别的会话状态管理。我非常喜欢微软的Velocity项目,尽管它只是第二个CTP版本,还没有准备好投入生产。
https://stackoverflow.com/questions/311596
复制