负载均衡服务器,只是转发请求的话,不会反而因为压力大而更容易崩溃吗?

发布于 2022-09-04 07:06:36 字数 722 浏览 8 评论 0

在写小的负载均衡例子时有这样的疑问,比如一个负载均衡服务器LBServer和三个工作服务器server1,server2,server3,外面的请求全部集中到LBServer,这个时候LBServer可以选择根据算法重定向到具体的服务器;也可以根据算法做请求的转发。
假设是转发请求的情况:

http.createServer(function(req, res) {
    const target = selectTargetServer(server);
    const targetAddress = LBSERVER_CONFIG[target].address;
    const pathname = url.parse(req.url).pathname; 
    const options = {
        url:'http://' + targetAddress + req.url,
    }
    request
        .get(options)
        .pipe(res)
    }
}).listen(port);

那么有个问题,相对于重定向的方式,这种转发请求的方式是不是需要很大的带宽呢?我理解的是,三个server服务器只在不同的机器上,分担了计算或者文件io的压力,但是所有结果还是要回传给LBServer并且由LBServer返回的啊。这样对于负载均衡服务器LBServer来说压力不会很大吗?还是说我对这个模型理解错了。。有前辈解答下吗

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

时光病人 2022-09-11 07:06:36

你的理解没错. 这样的LBServer几乎只需要IO, 确实能比一台机IO+计算能负担更多东西.

带宽是指哪个带宽? LBServer和后端服务器之间一般是专用网了, 带宽不至于瓶颈. 给LBServer--Internet的买大带宽就行.

实际一般不是自己写LBServer, 是用nginx之类...


这么一台LBServer其实仍然是单点失败 (不过nginx相当可靠, 一般也够用了). 如果要求再高还有DNS负载均衡等手段.

网名女生简单气质 2022-09-11 07:06:36

LBServer 只是一个传话的角色,计算的活儿都给了别人,所以主要是带宽增大了而已。本质上压力并不大

如果没有LBServer,那假设三个普通服务器各自一百兆。 有了LBServer,LBServer需要300M的带宽就好了,下面的服务器只需要和LBServer通信的内网带宽就够了(通常内网带宽都是免费的)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文