zoukankan      html  css  js  c++  java
  • 负载均衡

    负载均衡分两大部分:

    一、N个网站之间的配置要保持一致

      1、 确定状态服务器也就是主要机器A,将其注册表中HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesaspnet_stateParametersAllowRemoteConnection的键值改为1,然后重启本机的ASP.NET State Service服务。

      2、确定N台服务器A,B..., Web 站点的应用程序路径(D:XXXX)、应用名称(网站名称)、应用的端口、应用ID(网站点右键->管理网站->高级设置->ID)是一致的(比如都设成1)。

      3、N个网站下的web.config中添加machinekey配置,包括手机端webservice也要一并设置。

      <system.web>
        <!-- 
                设置 compilation debug="true" 可将调试符号插入
                已编译的页面中。但由于这会 
                影响性能,因此只在开发过程中将此值 
                设置为 true。
            -->
    <machineKey validationKey="78AE3850338BFADCE59D8DDF58C9E4518E7510149C46142D7AAD7F1AD49D95D4" decryptionKey="5FC88DFC24EA123C" validation="SHA1"/>
    </system.web>

    machinekey生成算法如下:

        validationKey = CreateKey(20);
        decryptionKey = CreateKey(24);
    
         protected string CreateKey(int len)
         {
                 byte[] bytes = new byte[len];
                 new RNGCryptoServiceProvider().GetBytes(bytes);
                   StringBuilder sb = new StringBuilder();
                   for(int i = 0; i < bytes.Length; i++)
                   {   
                       sb.Append(string.Format("{0:X2}",bytes[i]));
                   }
                   return sb.ToString();
         }

      4、N个网站下的web.config下的SessionState设置

      <system.web>
        <!-- 
                设置 compilation debug="true" 可将调试符号插入
                已编译的页面中。但由于这会 
                影响性能,因此只在开发过程中将此值 
                设置为 true。
            -->
    <sessionState mode="StateServer" cookieless="false" timeout="240" stateConnectionString="tcpip=192.168.1.110:42424" stateNetworkTimeout="14400" />    
    <compilation debug="true" targetFramework="4.0">
    
    </system.web>

      5、如果开启了防火墙,将42424端口开启。

    补充一些相关资料:
    关于Session

    PRB: Session Variables Are Lost If You Use FRAMESET in Internet Explorer 6.0
    http://support.microsoft.com/kb/323752/EN-US/#
    PRB: Session Data Is Lost When You Use ASP.NET InProc Session State Mode
    http://support.microsoft.com/?id=324772
    PRB:如果您使用 SqlServer 或 StateServer 会话模式 Web 场中会丢失会话状态
    http://support.microsoft.com/default.aspx?scid=kb;zh-cn;325056

    ASP.NET Session State FAQ
    http://www.eggheadcafe.com/articles/20021016.asp

    参考来自:http://hi.baidu.com/panshuaiyang

    二、集群的设定和负载均衡设定

    1、在N个服务器的基础上,设定一个虚拟网址,用户其实都是访问这个虚拟网址,但实际随即映射到N个服务器。

    2、专用负载均衡软件

      服务器管理器->功能->网络负载平衡

      (待补)

    需注意事项:

      1、凡设计到上传文件的要保持N个服务器之间要一致。

        解决办法:1、文件以附件的格式存在数据库中;2、上传的同时要同步至所有服务器上

  • 相关阅读:
    mysql对字段分割内容查询
    vue相关报错
    java多线程面试题
    java的消息队列
    电子商务大数据平台实训系统业务数据仓库总结
    电子商务大数据平台实训用户行为数仓业务总结
    电子商务大数据平台实训第一阶段总结
    Java 并发基础常见面试题总结
    window 平台 安装MongoDB
    java知识汇总(第六天)
  • 原文地址:https://www.cnblogs.com/takako_mu/p/3659203.html
Copyright © 2011-2022 走看看