我想为数千名用户设置一个具有大量文件传输的服务。
目前,我的想法是使用 k8s + HAProxy,其中有 3 个主服务器(带 VIP)和尽可能多的从服务器。
基本上来说:
Master0 | 主1 | Master2 |
---|---|---|
奴隶00 | 奴隶10 | 奴隶20 |
奴隶01 | 奴隶11 | 奴隶21 |
奴隶02 | 奴隶12 | 奴隶22 |
... | ... | ... |
HAProxy 在主服务器上配备 VIP,并在从服务器 0X/1X/2X 之间进行复制
问题是,我担心主服务器会限制带宽。
如果我理解正确,请求将执行以下操作:
Client -> HAProxy -> masterX -> slaveXN
因此,如果有10
请求,则连接可以代理到3
主服务器和10
从服务器。如果我们假设所有服务器都有1Gb/s
eth,每个请求(平均而言),将slaves
能够接收/发送1Gb/s
,但masters
只有
0.3Gb/s
(1Gb * 3 / 10)和HAProxy
只有0.1Gb/s
(1Gb / 10)。
我是否遗漏了什么或者有没有更好的方法来做到这一点(DNS负载平衡?)?
编辑:我做了更多研究,目前最好的方法是每个主服务器(10Gb/s)有 10 个从服务器(1Gb/s),仍然复制 3 次。我可以通过身份验证对每个用户进行负载平衡来复制此设置。我认为这可以通过 SSO 重定向来实现,如果不行,也许只是 DNS 负载平衡。