我有一个使用ASP.NET开发的网站,我的数据库是
MySQL.目前它托管在美国服务器.但是当我试图在印度附近访问它时,动态内容加载速度太慢.这是可以接受的,因为请求必须转到世界的另一边.在美国它真的很快.我已经将此网站与cloudflare CDN连接在一起.但CDN对静态内容很有用.我的每一页几乎都有动态内容.
所以我想扩展这个网站.因此,如果来自美国的请求我想要处理来自美国服务器的请求,并且如果来自ASIA的请求我想要从ASIAN服务器处理.但请记住,无论重定向的位置,两台服务器上的内容应该相同. (两台服务器应同步)
那么如何实现这种架构呢?
google,Facebook,Yahoo如何做到这一点?他们如何服务于全世界?我认为他们在每个大陆都有数据中心.他们如何彼此同步?
除了@ Gabriel-Talavera的回答之外,我还要添加几个注释:
>网络路由以及地理负载平衡与不同服务器之间的“数据同步”完全无关.它们是使用大量非常不同的技术解决的两个问题.
由于您的问题的标题似乎集中在网络方面,我将重点关注第一部分(网络路由问题).
>从严格的网络角度来看,可以使用“anycast addressing”实现跨多个位置/数据中心的负载分配.关于任播的有用讨论可以在其他SF帖子上检索:
> What is “anycast” and how is it helpful?
> What is needed to use anycast IPs?
正如您自己所看到的,小型ICT公司很难满足这些要求.但是,“全球”公司(就像你在OP中提到的公司一样)将采用它没有任何问题.
作为旁注,我第一次听到“任播”是因为CloudFlare BLOG post,他们在那里讨论过(……还有很多其他事情),如何将任播作为D-DOS攻击的对策.