请注意,本文内容分多次修改,如需阅读,请阅读完整,因为早期的观点是不太合理的,后面由于水平进步,已经做了修改!

我的目标是我一个人搭建一个负载均衡网站。不接受这是网络部,或者运维,或者系统部的事情,所有事情都是我一个人来完成,包括掏钱,包括将来发展等等,同时也别告诉我有没有意义,just do  it !给我方案,给我方法。

拥有资源:不够可以买,多了可以先闲着。

现在我已经买了5台阿里云服务器,ip地址分别为

ip地址                      名字简称      操作系统       iis服务器     cpu   内存DDR3      机械硬盘

111.13.101.204       ay1            window7        iis7          4核    8GB              1TB

111.13.101.205       ay2            window7        iis7          4核    8GB              1TB

111.13.101.206       ay3            window7        iis7          4核    8GB              1TB

111.13.101.207       ay4            window7        iis7          2核    4GB              1TB

111.13.101.208       ay5            window7        iis7          2核    4GB              1TB

我买好一个域名:www.bd.com(已备案)

项目已经做好,用asp.net MVC4开发,  .netFramework4.5      项目名MyBD

项目首页是index.cshtml

项目结构WebSite\xxx

使用数据库sqlserver2014

我现在希望将项目发布多份,分别放在不同的服务器上,但是只能用一个域名 www.bd.com,我不是子域名主域名那种应用场景。

下来我想问,我该如何操作?

--------------------------------------------------------------------------------------------------

该文章题目也可以称为,如何将一个网站发布到两台服务器上,或者如何将一个项目发布到两个服务器上。 方便搜索引擎索引(该行文字是为了帮助seo)。

想先搭建一个负载均衡的架构,至于是否必要,是否浪费资源请不要考虑,但是可以考虑以后如何扩展。

希望更多人能看到,大家在评论里面给出自己的方案或建议。

我在百度搜索解决方案,有人的方案是,在HttpHandler中捕获到用户请求,然后从一组定以好的  跳转地址中随机选择一个,然后进行跳转

定义好服务器地址: static string [] servers={"http://192.168.1.100/index.aspx" , "http://192.168.1.101/index.aspx"};

Response.Redirect(servers[DateTime.Now.Millisecond % 2]);这里这个随机算法,完全可以可以自己自定义,也可以借助数据库来进行,决定跳转到哪里。

这种方案是浏览器发送了两次请求,而且性能受这个拦截服务器的瓶颈限制。 这是从大哥Luminji学来的。

这位大哥博客地址:http://www.cnblogs.com/luminji/archive/2012/05/16/2184280.html

希望大家来讨论讨论这个话题。

----------------------------------------------------------------------------------------------------------

20160118更新

在网上找到了这样一篇文章,介绍  nginx+iis实现负载均衡

博客地址:http://www.cnblogs.com/yanweidie/archive/2015/07/19/4658136.html#!comments

作者:焰尾迭 大家可以移步至此,看看这位大哥的实现方案。

很多人说windows平台,大概是windows操作系统的意思,用NLB微软的专门方案来实现,这里涉及到层面,层级问题。

就是硬件驱动层面,操作系统层面,还有iis层面。我也没搞太清楚,甚至还有windows操作系统 的用户模式,和内核模式,这是window操作系统的设计框架,为了是隔离用户应用程序与操作系统程序,防止用户程序的奔溃或者恶意代码等等对操作系统构成威胁,甚至硬件构成威胁。早期windows95经常需要强制关机,死机好像就是没有隔离应用程序和操作系统的缘故,这一块非常深,需要广泛阅读研究。

现在来谈一个关联问题:

负载均衡一般都涉及到一个问题,session共享问题,或者说是用户信息(登录状态信息、会话认证、建立的联接信息,等称为)保存共享问题。我们知道,web开发因为http的无状态特性,每次新的http请求,新的页面请求,都涉及到你是谁的问题,

你是否已经被我认证过了?你是否刚刚(几秒钟前,几分钟前一般时间很短,session默认时间20分钟asp.net中)访问了我的网站,如果你刚刚访问了我,我会给你一个凭证,然后保存一个和这个凭证对应的你的信息记录。我们不可能用户每请求一个页面就让用户登录一次,如果这样简直是折磨。

asp.net替开发者实现了一个内置对象Session,或者一个容器,或者说一个仓库等,总之可以存一点信息,不知道这种说法对不对。

session有个发展历程,微软早期的asp技术,也即第一代动态网页技术中,就提供了一个session,实现了一个session,但是那时session的生存环境只有一种,或者存在位置

就是在进程中session,即InProc(这个实现,或者提供的这个容器,或者说提供的这个可用环境,很不稳定,动不动就可能损坏,或者清理下你放在那里的东西即信息)。后来出了asp.net技术,session有了多种模式

Custom、Off、InProc、SQLServer、StateServer。分别是自定义模式,也就是你可以自己想办法搞一个容器或者地方来存放你的用户信息,非常自由。 Off这个是关闭Session,也就是不使用;InProc进程内模式,就是这个容器依靠一个进程,这个进程就是aps.net页面,文件处理解析进程(这里涉及到为什么进程内不稳定,可以参考下面博文)。

ASP.NET会话(Session)保存模式

等有空继续修改,还没修改完。

---------20171122更新

负载均衡确实不应该是先被80端口监听程序监听到请求,再跑到IIS,再到iis上运行的某个网站的某个class中,在这个class中处理后,返回个跳转地址,跳到另一个网站,这种方式效率极其低下的,跳转的次数太多了,方式很低效!根据百度百科,负载均衡是可以在很多层面,很多地方做的,上面的方案层面太不合适了。

目前常用的软件负载均衡方式是,由一个监听80端口的监听程序来做负载均衡,而不是层层跳转,这样才能效率更好。

asp.net如何实现负载均衡方案讨论的更多相关文章

  1. asp.net:如何实现负载均衡方案讨论 (nginx+iis实现负载均衡)

    5台阿里云服务器,ip地址分别为 ip地址                      名字简称      操作系统       iis服务器     cpu   内存DDR3      机械硬盘 11 ...

  2. asp.net负载均衡方案[转]

    在前面的几篇文章中,主要谈到了在Discuz!NT中的跨站缓存数据,数据库负载均衡.但如果要实现将产品分布式布置到若干机器,组成集群来共同支撑起整个业务的话,还是有一定问题的(后面会有所介绍).下面先 ...

  3. Windows平台下利用APM来做负载均衡方案 - 负载均衡(下)

    概述 我们在上一篇Windows平台分布式架构实践 - 负载均衡中讨论了Windows平台下通过NLB(Network Load Balancer) 来实现网站的负载均衡,并且通过压力测试演示了它的效 ...

  4. 【转载】Windows平台下利用APM来做负载均衡方案 - 负载均衡(下)

    概述 我们在上一篇Windows平台分布式架构实践 - 负载均衡中讨论了Windows平台下通过NLB(Network Load Balancer) 来实现网站的负载均衡,并且通过压力测试演示了它的效 ...

  5. (转)简易WCF负载均衡方案

    最近跟高老师讨论nginx跟tomcat集群做负载均衡方案.感觉很有意思.想到自己项目中服务用的WCF技术,于是就想WCF如何做负载均衡,Google了一会,发现wcf4.0的路由服务好像可以实现.不 ...

  6. 这么多TiDB负载均衡方案总有一款适合你

    [是否原创]是 [首发渠道]TiDB 社区 前言 分布式关系型数据库TiDB是一种计算和存储分离的架构,每一层都可以独立地进行水平扩展,这样就可以做到有的放矢,对症下药. 从TiDB整体架构图可以看到 ...

  7. 大数据时代下的SQL Server第三方负载均衡方案----Moebius测试

    一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 架构原理(Architecture) 测试环境(Environment) 安装Moebius( ...

  8. Openfire 集群部署和负载均衡方案

    Openfire 集群部署和负载均衡方案 一.   概述 Openfire是在即时通讯中广泛使用的XMPP协议通讯服务器,本方案采用Openfire的Hazelcast插件进行集群部署,采用Hapro ...

  9. (转)大数据时代下的SQL Server第三方负载均衡方案----Moebius测试

    一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 架构原理(Architecture) 测试环境(Environment) 安装Moebius( ...

随机推荐

  1. Error evaluating expression ''xxx''. Cause: org.apache.ibatis.ognl.NoSuchPropertyException:

    1.检查实体类相应的字段名以及set,get方法(仔仔细细看) 2.检查mapper.xml取值字段 3.注意实体类中isDelete等类似 isXxx的字段 set get方法会变成GetDelet ...

  2. 学习tp5的第二天(路由)

    一.学习路由 1.phpstudy版本的环境去掉indx.php 直接访问url phpstudy配置的环境需要设置 入口目录的 .htaccess文件如下: <IfModule mod_rew ...

  3. 【8086汇编-Day2】dosbox实验环境配置及测试

    我学习汇编用的是王爽的<汇编语言>第三版,书中是以8086处理器为例,是工作在实模式下的,而当下的个人电脑处理器都是工作在保护模式下的.所以需要一个虚拟的工作在实模式下的处理器,这里主要用 ...

  4. Hystrix使用

    Hystrix是Netflix开源的一款容错系统,能帮助使用者码出具备强大的容错能力和鲁棒性的程序.如果某程序或class要使用Hystrix,只需简单继承HystrixCommand/Hystrix ...

  5. 20155310 2016-2017-2 《Java程序设计》第四周学习总结

    20155310 2016-2017-2 <Java程序设计>第四周学习总结 一周两章新知识的自学与理解真的是很考验和锻炼我们,也对前面几章我们的学习进行了检测,遇到忘记和不懂的知识就再复 ...

  6. 20155334 2016-2017-2 《Java程序设计》第十周学习总结

    20155334 2016-2017-2 <Java程序设计>第十周学习总结 教材学习内容总结 1.计算机网络概述 (1)路由器和交换机组成了核心的计算机网络,计算机只是这个网络上的节点以 ...

  7. 修改Tomcat控制台标题(转)

    转载地址:https://blog.csdn.net/chanryma/article/details/46930729 背景:用控制台方式启动Tomcat,控制台的标题默认是"Tomcat ...

  8. 人脸识别引擎SeetaFaceEngine中Detection模块使用的测试代码

    人脸识别引擎SeetaFaceEngine中Detection模块用于人脸检测,以下是测试代码: int test_detection() { std::vector<std::string&g ...

  9. UTC时间转为正常日期

    SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'", Locale.US);SimpleDa ...

  10. angular 缓存模板 ng-template $templateCache

    由于浏览器加载html模板是异步加载的,如果加载大量的模板会拖慢网站的速度,这里有一个技巧,就是先缓存模板. 使用angular缓存模板主要有三种方法: 方法一:通过script标签引入 <sc ...