我正在写一个网站,它将开始使用负载均衡器,我正试着去考虑它。
似乎我一直在读的很多文章都没有给我一个直接的答案,或者我只是没有正确地理解它们,我想从技术的角度来理解真正的负载平衡是如何工作的,如果有人有任何代码可以分享也会很好。
我知道缓存将会是一个问题,但这也是一个不同的主题,会话。
发布于 2013-11-20 23:24:02
默认情况下,IIS没有负载平衡器,但您可以使用至少两种Microsoft技术:
与IIS集成的
这两种技术本身都不需要任何代码,这与基础设施有关。但您当然必须记住在开发过程中的负载平衡环境。例如,为了使网站真正平衡,它们应该是无状态的。否则,您将不得不在客户端和服务器之间提供所谓的粘性,因此相同的客户端将始终连接到相同的服务器。
要使服务无状态,请不要将任何状态(会话,例如,对于ASP.NET网站)持久存储在服务器上,而是在场中所有服务器之间共享的外部服务器上。因此,例如,对集群中的所有站点使用外部ASP.NET Session server (StateServer或SQLServer模式)是很常见的。
编辑:
只是为了澄清一些事情,关于两种提到的技术有几句话:
发布于 2013-11-20 23:26:50
IIS会为你做所有的平衡吗?
可以,如果您配置了Application Request Routing
您是否有位于分布式服务器上的单独web层
是。
在发送到子服务器之前做一些工作的
,比如身份验证或其他工作?
No,ARR很“傻”:
IIS ARR不提供任何预身份验证。如果需要进行预身份验证,那么您可以查看Windows Server 2012 R2中提供的Web应用程序代理(WAP)。
它只是充当接受和转发请求的透明代理,同时在配置时添加一些缓存。
对于身份验证,您可以查看Windows Server2012的Web Application Proxy。
发布于 2013-11-21 00:27:46
一些小贴士,也许还有一些让你完全熟悉的东西:
之类的问题
- I'm only working/setting things on 1 server, does that get replicated across X VMs in our cluster/farm? How long?
- What about dynamically generated,code and/or user generated files (file system)? If it's on VM1's file system, and I have 10 load balanced VMs, and the client can hit any one of them at any time, then...?
- What about encryption? e.g. if you use DPAPI to encrypt web.config stuff (e.g.db conn strings/sections), what is the impact of that (because it's based on machine key, and well, the obvious thing is now you have machine(**s**) or VM(**s**). RSA re-write....?
false
。你的服务器/虚拟机没有证书,ARR有。加密的连接位于客户端和ARR之间。您的服务器/虚拟机的can...but并非如此。正如链接所解释的那样,如果您更喜欢相反的方式(没有卸载),您可以使用can...but,这意味着您的所有服务器/虚拟机都应该拥有证书(以及这与上面的“复制”的关系如何)。并不是说很全面,只是列出了memory...Hth中的内容
https://stackoverflow.com/questions/20099818
复制相似问题