先确定根据部署环境和方法,在设计项目

我曾今搭建过一个集群的环境,好吧严格说起来是负载均衡
 
项目要求:
1、能对节点进行扩展,而不改动代码。
2、资源和项目分离,也就是资源服务器,程序服务器2种(数据库服务器另算)
3、时间紧迫,最好不要大范围改动原有代码。
 
接到这个命题的时候,有点兴奋也有点郁闷。
 
因为这就意味着很多东西不能用了!
 
说到这我们得先了解下环境了
 
1、部署IIS的时候 一般会启用 web园(启动了多进程多线程模式)
 
2、我们开发的WEB可以说是1个进程。那么正常情况下 application、cache和session都受到了单进程的限制
 
3、负载均衡是多台服务器平行运行的关系。(比如2台服务器,A请求进入a服务器,B请求进入b服务器,C请求进入a服务器如此循环)
 
4、文件怎样能自动分布到其他服务器上
 
分析:
缓存问题:
 
可以看出作为存储介质的常用手段在负载均衡模式下变得复杂。
 
由于只能使用软件集群,所以只能在软件上想办法,并切是软件的改动量达到最小。
 
只是用session的项目比较好办配置下session存储位置为数据库。
 
不过由于之前原项目一直没有用过session ,更多用的是cache。
 
不过还好cache的入口点都是统一的,我想到了分布式缓存和数据库2种办法
 
不过仍然需要修改程序和代码谁知道分布式缓存有哪些BUG,为了避免这种风险
 
我是用了nginx 来做负载均衡,原因是目前很多网站都在使用他,而且有个功能十分适用 IP HASH
 
这个功能的意思是同一个IP的请求始终对应着一个服务器,这样什么都不用改了。
 
但是这样做有个问题需要注意的,那就是同一个IP 网吧可是有上百台电脑的。。。。。
 
 
文件问题:
现在大部分网站都启用了资源分流,比如脚本、样式服务器;用户图片服务器等等
 
由于是windows服务器 所以使用了 DFS 来作为文件同步。
 
这样一来每台服务器中只要加入指定域(dns)设置好文件同步并设置IIS 就能用了。
 
总结:
有点: 这样一来项目几乎不用改动,添加新节点也很方便。
缺点: 文件占用的磁盘空间是翻倍的,也是冗余的。
 
希望有过集群或者负载均衡经验的朋友,能谈谈自己的经历
 
 
 
 




posted @ 2012-07-03 18:31  田径  阅读(233)  评论(0编辑  收藏  举报
我的开源的地址https://github.com/tianjing/ 大家踊跃拍砖共同成长,拍砖的同时记得附上意见或者建议。!!谢谢 谢谢