![没有负载均衡器的 Web 应用程序冗余服务?](https://linux22.com/image/794331/%E6%B2%A1%E6%9C%89%E8%B4%9F%E8%BD%BD%E5%9D%87%E8%A1%A1%E5%99%A8%E7%9A%84%20Web%20%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E5%86%97%E4%BD%99%E6%9C%8D%E5%8A%A1%EF%BC%9F.png)
我想跑使用 WebView 的移动应用程序内的 Web 应用程序。Web 应用程序使用 IndexedDB 来保存各种重要值。我希望使 Web 应用程序非常可用(冗余)。我已经在三个不同的托管位置拥有三个具有公共 IP 地址的 Web 服务器,我可以将它们用于此目的。
我的考虑是:
- 我不能使用三个子域名针对三台服务器。这本来是我首选的解决方案,因为 WebView 应用可以先随机检查三个子域之一的可用性,然后将可用的子域提交给 WebView url。但 IndexedDB 内容与完整域绑定,因此如果域发生变化,其内容将消失。
- 我不能使用DNS轮询因为如果一台服务器发生故障,33% 的用户会收到错误消息(服务器未响应)。根据我的研究,如果一个服务器发生故障,WebView 不会从 DNS 尝试多个 IP。我还发现,它甚至会将其缓存(不会在较长时间内尝试另一个)。
- 我不想使用负载均衡器因为即使我有三个服务器,其应用程序和主机也会成为单点故障。此外,对于 DNS-Round-Robin,如果其中一个服务器发生故障,用户就会收到错误消息。
- 我无法使用直接 IP,因为 https 通配符证书仅适用于域名。
关于如何解决此类问题还有其他想法吗?