了解asp.net中的负载平衡
我正在写一个网站,它将开始使用负载平衡器,我正试图用我的头脑去思考它了解asp.net中的负载平衡,asp.net,performance,load-balancing,Asp.net,Performance,Load Balancing,我正在写一个网站,它将开始使用负载平衡器,我正试图用我的头脑去思考它 IIS只是为你做所有的平衡吗 您是否有一个单独的web层,它位于分布式服务器上,在发送到子服务器之前执行一些工作,如auth或其他工作 似乎我一直在读的很多文章并没有给我一个直接的答案,或者我只是没有正确地理解它们,我想从技术的角度了解一下真正的负载平衡是如何工作的,如果有人有任何代码可以共享也很好 我知道缓存将是一个问题,但这是一个不同的主题,会话也是如此。IIS默认情况下没有负载平衡器,但您至少可以使用两种Microsof
我知道缓存将是一个问题,但这是一个不同的主题,会话也是如此。IIS默认情况下没有负载平衡器,但您至少可以使用两种Microsoft技术:
- 与IIS集成后,理想情况下,您应该有一个单独的web层来执行路由工作
- 它与Microsoft Windows Server集成,在那里您可以将现有服务器加入NLB群集
- NLB在网络级别工作(实际上是一个网络驱动程序),因此对所使用的应用程序一无所知。您可以创建由一些机器/服务器组成的所谓集群,并将它们作为单个IP地址公开。然后,另一台计算机可以将此IP用作任何其他IP,但连接将自动路由到集群的其中一台计算机。在每台服务器上配置一个群集,没有外部的、额外的路由机器。根据集群设置,正如我们已经提到的,可以启用或禁用粘性(此处称为单一亲缘关系或无亲缘关系)。还有一个负载重量参数,因此您可以设置加权负载分布,例如向最快的机器发送更多连接。但该参数是静态的,不能基于网络、CPU或任何其他用途动态地使用。事实上,NLB并不关心目标应用程序是否正在运行,它只是将网络流量路由到所选机器。但是它注意到服务器离线了,所以那里没有路由。NLB的优点是它非常轻,不需要额外的机器
- ARR更为复杂,它是作为IIS之上的一个模块构建的,旨在在应用程序级别做出路由决策。网络负载平衡只是其功能之一,因为它是一个更完整的路由解决方案。正如Microsoft所说,它具有“基于规则的路由、客户端和主机名关联、HTTP服务器请求的负载平衡以及分布式磁盘缓存”。您可以使用许多选项创建它们,如负载平衡算法、负载分布和客户端粘性。您可以定义运行状况测试和路由规则,以将请求转发到其他服务器。所有这一切的缺点是,在安装ARR的地方应该有一台专用机器,所以需要更多的资源(和成本)
- NLB&ARR-由于使用单个ARR机器可能是单点故障,因此值得考虑创建一个由ARR机器组成的NLB群集
有关身份验证,您可以查看Windows Server 2012。一些提示,以及您需要完全了解的项目:
- ARR作为上述所有答案,状态是一个“代理”,处理从用户到服务器的流量
- 您可以像Konrad指出的那样处理状态,也可以使用ARR do“粘性”会话(确保客户机始终转到“此服务器”——可能是维护该特定客户机状态的服务器)。请参阅关于该答案的讨论/评论-太棒了
- 我已经很长时间没有戴IT/服务器帽了,坦率地说,我也没有亲自接触过集群(总是由某个提供商“自动为我处理”),所以我确实从我们的主机上问了这个问题,“我们的集群/服务器场之间的复制是如何完成的?”-这个问题包括以下内容
- 我只在1台服务器上工作/设置东西,这会在集群/服务器场中的X个虚拟机上复制吗?需要多长时间
- 动态生成的、代码生成的和/或用户生成的文件(文件系统)怎么样?如果它在VM1的文件系统上,我有10个负载平衡的虚拟机,客户端可以在任何时间命中其中任何一个,那么
- 那么加密呢?例如,如果您使用DPAPI加密web.config内容(例如db conn strings/sections),会产生什么影响(因为它是基于机器密钥的