Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net Net负载平衡_Asp.net_Load Balancing - Fatal编程技术网

Asp.net Net负载平衡

Asp.net Net负载平衡,asp.net,load-balancing,Asp.net,Load Balancing,我正在从事asp.net(新手)的工作,我试图理解为网站做“负载平衡”意味着什么。该网站将由多个用户和资源(数据库、web服务等)使用 如果有人能帮助我理解asp.net网站负载平衡的概念,我将不胜感激。 谢谢。什么事? 负载平衡只是指在两台或多台计算机之间分配工作负载。作为一个概念,它不是asp.net独有的。虽然为数据库和web服务器使用单独的计算机可以称为“负载平衡”,但更常见的是指使用多台计算机来服务单个角色,例如使用多个web服务器 你应该担心吗?可能不会。您是否已经存在性能问题?您的

我正在从事asp.net(新手)的工作,我试图理解为网站做“负载平衡”意味着什么。该网站将由多个用户和资源(数据库、web服务等)使用

如果有人能帮助我理解asp.net网站负载平衡的概念,我将不胜感激。

谢谢。

什么事? 负载平衡只是指在两台或多台计算机之间分配工作负载。作为一个概念,它不是asp.net独有的。虽然为数据库和web服务器使用单独的计算机可以称为“负载平衡”,但更常见的是指使用多台计算机来服务单个角色,例如使用多个web服务器


你应该担心吗?可能不会。您是否已经存在性能问题?您的数据库和web服务器是否在各自的计算机上?如果您确实发现服务器资源紧张,那么扩展(一台功能更强大的单机)可能比扩展(负载平衡)更容易。现在,如果你的代码不错,一个专用的盒子可以处理大量的流量。

从编程的角度来看,负载平衡不适用于ASP.NET;它适用于尝试在两台或多台机器上分配服务器负载的技术,而不是在一台机器上使用所有负载。除非你有成千上万(数百万?)的用户,否则你可能不需要担心它


查看以了解更多信息。

负载平衡并不特定于任何技术堆栈,无论是asp.net、jsp等。负载平衡是将传入的请求分散到多个服务器上的网站。这通常通过软件或硬件负载平衡器完成。负载平衡器位于两个或多个web服务器前面,并代理传入的流量。尽管这种技术并不局限于web服务器


享受吧

我想补充一点,这真的不需要担心。当你需要一个负载平衡器时,你可能会买得起一个新的带有粘性会话的neato新型负载平衡器,这样你就不必再处理会话闹鬼了。

在开发时,你可能需要注意一个与负载平衡相关的问题:会话状态的存储位置。很好地概述了您的选项

如果您使用“进程外”或“sql server模式”会话状态管理来实现asp.net系统,那么如果您决定在部署的系统中引入负载平衡器,这将为您提供一些额外的灵活性:

  • 您的负载平衡器不需要处理会话关联。正如上面提到的一张海报,所有现代负载平衡器都会处理它,所以这在任何情况下都是一个次要的考虑因素
  • Web gardens(一种IIS/server实现的负载平衡器)需要使用“进程外”或“sql server模式”会话状态管理。因此,如果您的系统已经以这种方式配置,您将离使用web gardens更近一步

  • 我从未使用过它,但有一个选项是IIS

    IIS应用程序请求路由(ARR) 2.0支持Web服务器管理员、托管提供商和内容 交付网络(CDN)将增加 Web应用程序的可扩展性和可扩展性 基于规则的可靠性分析 路由、客户端和主机名 HTTP的亲和性、负载平衡 服务器请求和分布式磁盘 缓存


    在典型的web服务器/数据库场景中,db几乎总是保证首先加载机器。这是因为处理存储数据需要更多的资源。在开始研究web服务器的负载平衡之前,您需要考虑如何对数据库进行负载平衡

    将一个数据库分散到多个服务器上要比负载平衡web服务器困难得多。可以使用的技术之一是(或水平分区)。在这里,一些记录存储在一台服务器上,而其他记录存储在另一台服务器上。例如,ID为1-900000的记录位于服务器1上,而ID为900001的记录位于服务器2上


    与DB负载平衡相比,在多个ASP.NET服务器之间分配负载并不过于复杂。通过使用进程外会话和/或从不直接与
    Application.Cache
    对话,可以轻松缓解大多数会话问题。另一方面,数据负载平衡很困难,需要大量的计划和反复试验。在大多数情况下,与负载平衡数据库交谈需要使用支持它的ORM(例如NHibernate)或您自己的数据访问层。原因是,您需要从使用数据库的代码中建立连接,以便在一个位置处理与哪个数据库对话的决定。

    确切的解决方案是使用存储过程将会话保存到SQL Server中。要读取会话,请调用“SessionCheck”存储过程

    “你应该担心吗?”问题需要考虑一件事:如果你正在为客户建立网站,了解这些事情总是很好的。过去,我一直被一个客户端决定在多个负载平衡的Web服务器上托管一个站点的做法所困扰,而开发该站点时却从未考虑到这一点。如果你不能自己控制主机环境,那么了解所有的可能性是很好的。这是真的。但是,如果客户有一个自称是新手的人试图解决这种可能性,那么无论他是否尝试计划负载平衡,事情都不可能有好的结局。能够预见到这类事情并很好地执行绝非易事。