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


    我曾今搭建过一个集群的环境,好吧严格说起来是负载均衡
     
    项目要求:
    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 就能用了。
     
    总结:
    有点: 这样一来项目几乎不用改动,添加新节点也很方便。
    缺点: 文件占用的磁盘空间是翻倍的,也是冗余的。
     
    希望有过集群或者负载均衡经验的朋友,能谈谈自己的经历
     
     
     
     




    我的开源的地址https://github.com/tianjing/ 大家踊跃拍砖共同成长,拍砖的同时记得附上意见或者建议。!!谢谢 谢谢
  • 相关阅读:
    支付宝及时到帐接口使用详解
    Linux 天翼3G上网
    VBS常用函数及功能
    mencoder和ffmpeg参数详解
    C# 将数据导出到Excel汇总
    C# WinForm开发系列 Excel
    C#中的String.Format方法
    Google Maps API 代码
    ffmpeg的使用
    C# WinForm开发系列 Crystal Report
  • 原文地址:https://www.cnblogs.com/tianjing/p/2575206.html
Copyright © 2020-2023  润新知