你们生产环境中使用的负载均衡系统是什么?你对它有什么看法?

9

有许多不同的系统可以平衡负载并在生产服务器中实现冗余(不仅仅是Web服务器)

  • 轮询DNS
  • Linux虚拟服务器
  • Cisco本地导演
  • F5 BigIP
  • Windows网络负载平衡(NLB)
  • 等等?

如果您在生产中使用其中之一(或其他),那么使用的是哪一个?它对您的工作效果如何?您已经评估过其他方案了吗?

15个回答

1

我们目前使用Zeuz ZXTM负载均衡器,并且迄今为止感到满意。然而,我们的托管提供商最初在运行防火墙服务的机器上配置了它的虚拟机。这是一个相当愚蠢的错误,因为连接在流量成为问题之前就已经饱和了。一旦移动到自己的专用盒子上,我们能够处理100Mb/s的出站流量,没有失败或问题(在4Gb/s突发互联网管道上)。


1

轮询 DNS 可以实现负载均衡,但不能实现冗余。如果其中一个服务器出现故障,它仍然会承担其份额的请求。

我们使用 Apache mod_jk 在一对 Java 应用服务器之间处理负载平衡和冗余。这非常有效,并且很简单。

我们还有一个冷备份 Apache 服务器,以防主服务器出现故障。理想情况下,我们将使用 Linux-HA 来实现 Apache 的热备份,但我们不确定是否可以证明其复杂性。


轮询 DNS 可以为您提供冗余。当轮询 DNS 中的某个主机失败时,Web 浏览器通常会以智能方式进行处理。特别是,如果 RR DNS 中的主机快速失败(例如,出现“连接被拒绝”),Web 浏览器会非常快速地故障转移,以至于用户不会注意到。 - MarkR
好的,我之前不知道这个。但是浏览器怎么知道轮询设置呢?因为它只是向操作系统请求DNS解析,这不就是浏览器盲目地自动重试吗? - skaffman
浏览器解析主机的所有IP地址并选择一个;如果失败,则尝试其他IP地址。解析器库允许应用程序检索所有相关记录。 - MarkR
尝试自己操作- 你甚至可以使用“hosts”文件来完成,只需设置几个虚假条目和一个合法的条目- 如果它们快速失败,你可能甚至不会注意到浏览器尝试其他IP地址。 - MarkR
由于DNS RR限制而增加。关于第一个评论:如果主机下线(而不是服务器故障),您不会收到连接被拒绝的消息,而是什么也不会收到,客户端必须执行TCP连接建立超时,这可能需要很长时间。 - benc

1

加州大学洛杉矶分校的一个部门使用 Juniper Acceleration Platform 并对此非常满意。它甚至接管了 SSL 加密的任务,而基于硬件的 SSL 加速效果非常好!他们目前正在将更多的服务迁移到该平台上运行。

以下是它的亮点:

  • 将常用数据模式存储在专用硬盘上
  • 基于硬件的算法(速度很快!)
  • 支持大多数常见协议

这不便宜,但对于大量流量的公司非常高效。请查看加州大学洛杉矶分校选择的规格此处


0
我们非常成功地使用了HAProxy。即使在高负载情况下,我从未见过它的CPU使用率超过2%。

0

我相信我们使用的是带有粘性会话的轮询。我们必须设置ASP/ASP.Net会话信息以保留用户与具有会话的服务器的连接。

我们曾经遇到过一个小问题,涉及从http切换到SSL,导致我们的网站将已认证的用户发送到非安全页面,未认证的用户则被发送到安全登录页面,这看起来有点奇怪,但最终解决了这个问题,通过SSL终止实现了最佳解决方案,除了回到单个服务器这个即时解决方案。

也许会有一天需要使用更复杂的方法来确定哪个服务器是“最不繁忙的”,并将下一个请求发送到该机器,但我不确定基础架构人员如何获得负载均衡器的这种功能。


这是由哪个供应商提供的?微软? - MarkR
Juniper Networks是负载均衡器的公司,而其他的东西都属于微软技术,例如IIS、Visual Studio、Source Safe等。 - JB King

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接