我正在研究asp.net(新手),我正在努力了解为网站做“负载平衡”意味着什么。该网站将由多个用户和资源(数据库,Web服务,...)使用。
如果有人能帮我理解asp.net网站负载均衡的概念,我会非常感激 感谢。
答案 0 :(得分:4)
在开发时您可能想要了解的一个与负载平衡相关的问题:存储会话状态的位置。 This MSDN article可以很好地概述您的选择。
如果您使用“进程外”或“sql-server-mode”会话状态管理来实现您的asp.net系统,如果您决定引入负载均衡器,那么稍后会给您一些额外的灵活性您部署的系统:
答案 1 :(得分:1)
这是什么? 负载平衡仅指在两台或多台计算机之间分配工作负载。作为一个概念,它并不是asp.net独有的。虽然为您的数据库和Web服务器配备单独的计算机可称为“负载平衡”,但更常见的是使用多台计算机来为单个角色提供服务,例如拥有多个Web服务器。
你应该担心吗?可能不是。你有性能问题吗?您的数据库和Web服务器是否在自己的计算机上?如果确实发现服务器资源紧张,那么扩展(功能更强大的单机)可能比out(负载平衡)更容易。如今,如果您的代码合适,专用的盒子可以处理大量的流量。
答案 2 :(得分:0)
在编程意义上,负载平衡不适用于ASP.NET;它适用于尝试在两台或多台机器上分配服务器负载的技术,而不是在一台机器上使用它们。除非你有数千(数百万?)用户,否则你可能不需要担心它。
查看Wikipedia article以获取更多信息。
答案 3 :(得分:0)
负载均衡不是特定于任何技术堆栈,无论是asp.net,jsp等。负载均衡是将传入的请求分散到多个服务器上的网站。这通常通过软件或硬件负载平衡器来完成。负载均衡器位于两个或更多Web服务器的前面,并委派传入的流量。虽然这种技术不仅限于Web服务器。 Load Balancing
享受!
答案 4 :(得分:0)
我从未使用它,但选项是IIS Application Request Routing。
IIS应用程序请求路由(ARR) 2.0支持Web服务器管理员,托管提供商和内容 交付网络(CDN)增加 Web应用程序的可伸缩性和 通过基于规则的可靠性 路由,客户端和主机名 亲和力,HTTP的负载均衡 服务器请求和分布式磁盘 缓存
答案 5 :(得分:0)
在典型的Web服务器/数据库方案中,db几乎总是保证首先加载计算机。这是因为处理存储数据需要更多资源。在开始考虑对Web服务器进行负载平衡之前,您需要考虑如何对数据库进行负载平衡。
在多个服务器之间传播一个数据库比对Web服务器进行负载平衡要困难得多。可以使用的技术之一是sharding(或水平分区)。这是一些记录存储在一台服务器上的地方,其他记录存储在另一台服务器上。例如,ID为1-900000的记录位于服务器1上,记录900001-位于服务器2上。
与数据库负载平衡相比,将负载分散到多个ASP.NET服务器并不是太复杂。通过使用进程外会话和/或从不直接与Application.Cache
通话,可以轻松缓解大多数会话问题。另一方面,数据负载平衡很难,需要大量的计划和反复试验。在大多数情况下,与负载平衡数据库通信需要使用支持它的ORM(例如NHibernate)或您自己的数据访问层。原因是您需要从使用数据库的代码中建立连接,以便决定在一个地方处理要与之通信的DB。
答案 6 :(得分:0)
确切的解决方案是使用存储过程将会话保存到SQL Server中。要读取会话调用'SessionCheck'存储过程。
答案 7 :(得分:-2)
我补充说,这真的不值得担心。当你需要一个负载均衡器时,你可以买一个带有粘性会话的neato newfangled,所以你甚至不需要处理会话boogeyman。