我可以将从属 MySQL 放置到另一个大陆,通过公共 IP 与主服务器通信吗?如果可以,这是一种好的做法吗?
无论如何,我如何才能以相同的速度在五大洲拥有相同的网络应用程序(CMS)?
答案1
从技术上讲 - mysql 可以在公共互联网上进行复制,并且非常强大(即使连接断开)。但最好还是使用一些VPN 安全/ssh 隧道或至少mysql 内置 ssl 加密。
我不知道您的网站有多动态,但您也可以缓存位于不同大陆的代理上生成页面的应用程序服务器的整个输出。
答案2
取决于您的应用程序。只需使用内容交付网络来传输静态内容,而无需接触动态内容(通常只是文本,因此不代表通过 HTTP 连接传输大量数据),您就可以大大提高应用程序的性能。
无论你将数据库放在哪里,其性能都是相同的,问题在于你的客户端的地理分散,因此可以从 Yahoo 获取像 YSlow 这样的程序,然后检查哪些内容占用了你的 80% 的页面,然后看看它是否是静态的并且可以放置在 CDN 上,根据我的经验,大多数时候,你的大部分流量来自静态内容(.jpeg、静态页面等)。
另外,请确保您的网络服务器已打开内容压缩...
并且 pQd 是正确的,如果您最终确实在互联网上使用复制,请使用 IPSEC 或类似的东西。
答案3
复制对于读取来说很好,但是您仍然需要始终写入主服务器。
正确编写应用程序来处理向主服务器的写入和从从服务器的读取可能会有问题,因为它不能假设对数据库的写入是立即可见的 - 您需要对用户隐藏这一点(当用户有时间点击另一个页面时,很有可能,他们已经可以看到了)。
此外,您仍然需要在想要写入数据库的页面上连接到主服务器的开销。
根据您的应用程序的具体情况,这可能是一个问题。也可能不是。确保您所做的一切都在非生产环境中经过彻底测试。确保在启用复制的测试环境中运行应用程序的自动化系统测试。
就拥有 VPN 而言,这是一件轻而易举的事,因为无论如何你都可能需要它用于其他目的。如果你在 5 大洲都有基础设施,那么拥有 VPN 就不是什么大问题了(假设你已经有一个了)。