对于个人项目来说,这(完全是过度杀伤)了,我认为它很有趣。
我希望我的系统具有一定的冗余性,有多个地方可以存在主/从关系。事实上,由于我的项目在带宽和计算能力方面相当小,我可能可以在一个 Pi 上运行所有软件组件并将其复制两次(所有子系统均为主设备 + 2 个从设备)。
我很好奇如何设置多个负载均衡器。特别是如何接收一个请求并将其发送到多台机器。(我可能已经找到了,但我很好奇我的思维过程是否正确。)
最初,我认为这可能只适用于一个路由器,但似乎外部端口可以不同,并且可以在内部发送到不同机器上的相同端口。然而,反过来似乎行不通,这似乎是可取的……就像 HTTP……或任何其他协议一样。
我搜索了是否可以每条 A 记录使用多个 IP。解决方案是将 1 个路由器(唯一 IP)链接到一个名称下的 1 个负载均衡器吗?如果从属设备收到请求,它会转发给主设备;从属设备会与主设备进行心跳;如果主设备消失,则进行选举?
但是我忘了调制解调器……可以将调制解调器的信号分流到两个或更多 AP(使用静态内部 IP)吗?或者上述是唯一可行的解决方案,只是我忘了上一段中提到每个分支都需要一个调制解调器。
答案1
我很好奇如何设置多个负载均衡器。
通常情况下,您不需要设置“多个负载均衡器”。您只需要一个中央负载均衡器(如果需要,也可以是主负载均衡器),然后使用多个服务器执行实际工作,这些工作由负载均衡器转发。
有几种方法可以做到这一点,例如 DNS 循环(每个 DNS 请求返回不同的 IP),或负载平衡代理(nginx)等等。
但您仍然会有一个中心位置,第一个请求会发送到那里。
最初我以为这可能只需要一个路由器
家用路由器与负载平衡无关。
我搜索了每个 A 记录是否可以有多个 IP。
但是我忘记了调制解调器......
调制解调器与负载平衡无关。
如果您说的是家里的情况:您只有一个 IP 地址、一条通往 ISP 的线路、一个连接到 ISP 的调制解调器。如果其中任何一个发生故障,您的服务就会中断。因此您无法在家中实现真正的冗余。这就是为什么您通常使用“云”(位于具有更好网络基础设施的多个位置的其他人的计算机)来实现这一点。
您可以将两台 RaspPi 连接到第三台 RaspPi,在前两台上启动 Web 服务器,在第三台上启动 nginx,这样当前两台 RaspPi 中的任何一台发生故障时,另一台仍可工作。这可能很有趣,但不是真正的冗余。