首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何正确地完成这一负载平衡?

如何正确地完成这一负载平衡?
EN

Server Fault用户
提问于 2020-04-27 18:24:02
回答 3查看 88关注 0票数 1

假设我通过服务器提供商为我的网站http://example.com租用6台专用服务器:

#1: 203.2.113.1

#2: 203.2.113.2

#3: 203.2.113.3

..。

#6: 203.2.113.6

它们的最大上传速率为10 MB/s。

我决定使用机器#1作为负载均衡器,所以通过我的注册员,我建立了一个DNS "A“记录:example.com A 203.2.113.1

两个案件:

  • 50个客户同时希望从我的服务中接收到一个视频流@200 by /S:一切看起来都很好:他们在浏览器中连接http://example.com,DNS给他们IP 203.2.113.1,他们的浏览器向这个IP发出一个HTTP请求,负载平衡器(机器#1)接收HTTP请求,将任务交给机器#2,#3,…,#6,这些机器通过先通过负载平衡器传递数据发送到客户端。客户端不接受来自203.2.113.2的响应,因为他们的请求被发送到203.2.113.1,对吗?
  • 200个客户想从我的服务中接收到一个视频流@ 200 MB/s :它不起作用:客户端在浏览器中连接http://example.com,DNS给他们IP 203.2.113.1,他们的浏览器向这个IP发出一个HTTP请求,负载平衡器(机器#1)接收到HTTP请求,给机器#2,#3,…,#6的任务。这5台机器中的每一台处理200个客户机中的1/5,即40个客户端* 200 MB/S=8MB。如果#2,#3,.,#6可以直接将数据发送给客户端,就可以了(8MB/S)。但是由于数据必须通过负载平衡机#1传输,所以它不能工作,因为机器#1不能上传40 MB/s。

如何配置负载均衡器(机器#1)来解决这个问题?

或者,负载均衡器是否可能将请求传递给机器#2、#3、.、#6,然后直接向客户机负责,而不通过机器#1进行响应?

EN

回答 3

Server Fault用户

发布于 2020-04-28 09:50:37

作为负载均衡器运行的单机是一个瓶颈。您应该看看圆形罗宾DNS (第二环节),也就是DNS负载平衡。这不是超级可靠的,你的机器不会被均匀地装载,但是每台机器都应该得到一些负载。

您需要使用分布式负载测试服务来测试它,以确保其工作正常。一个关键是客户端定期为您的域查找DNS。

您还应该查看流缓存。CloudFlare提供这项服务,就像我希望其他人所做的那样,但是我没有使用它,所以我对它不太了解。

票数 1
EN

Server Fault用户

发布于 2020-04-28 10:22:57

您确定像http://www.haproxy.org/这样的东西不能处理来自200+客户的流量吗?例如:阅读以下内容:http://www.haproxy.org/#perf

实际上,它所要做的就是将TCP/IP通信量路由到特定的计算机并返回。就CPU而言,这并不是非常昂贵,除了真正的大量连接。我会更担心网络控制器的容量,你也必须记住一些事情,比如打开文件的最大数量等等,这些都会对网络流量的处理产生负面影响。对网络堆栈的仔细调优似乎比HAProxy的容量更重要:

所有这些微优化导致非常低的CPU使用率,即使在中等负荷下。即使在非常高的负载下,当CPU处于饱和状态时,通常也会注意到5%的用户和95%的系统,这意味着HAProxy进程的消耗比它的系统进程少了大约20倍。这就解释了为什么操作系统的调优是非常重要的。

票数 1
EN

Server Fault用户

发布于 2020-05-07 03:17:56

或者,负载均衡器是否可能将请求传递给机器#2、#3、.、#6,然后直接向客户机负责,而不通过机器#1进行响应?

是的,它被称为“直接返回”负载平衡,任何体面的L4负载均衡器都能够做到这一点。

票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/1014447

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档