Google,Facebook或任何其他全球系统如何提高不同国家/地区用户的效果,但如果用户前往其他位置或全局使用数据,仍会保持数据同步.或者他们实际上是否将数据库服务器放在一个位置?
解决方法
集群在许多国家/地区分发.集群之间的更新频率取决于系统对可接受的工作的需要.
如果你带Facebook,例如:
大多数时候,您与自己国家的朋友进行交流.因此,保持您所在国家/地区的服务器会立即生效,您的朋友会立即看到您的消息.
其他contries中的朋友可能会有延迟,具体取决于群集服务器节点的更新频率.如果需要,IIRC Facebook群集通过请求来自其他群集的信息进行交互.很多次我收到一条消息说“此用户更新状态为等等”.单击整个消息的链接时,我收到了一条错误消息.这是集群之间的同步问题.一些信息已经同步,而其他信息没有.
另一个例子,Email:
电子邮件系统是整个地球上的分布式系统.与具有100万用户的服务器相比,具有单个用户的服务器不那么繁忙.您如何解决繁忙服务器的交付问题?更多分布式本地服务器更强大的服务器?更强大的互联网连接?上述所有的?
由于电子邮件的基本概念(将消息从一个节点传递到另一个节点)不会改变,无论电子邮件用户的数量如何,您都需要设计特定的系统以适应所有用户.无论您如何设计系统,有时电子邮件的交付延迟,因为链中的其他节点上的流量太多.
同样的概念适用于Facebook.他们为特定地区设计和建造农场,但整个系统依赖于“地理差异”.也就是说,您比其他地区更有可能与您所在地区的用户进行互动.
至于你的特殊问题:这一切都取决于有多少用户.
单个数据库服务器(或群集服务器)可能适合您.如果需要分布式群集服务器群,那么您可能必须编写自己的系统进行同步,就像Facebook和谷歌那样.此解决方案取决于您的用户需求以及系统的工作方式.我不知道任何标准化的系统是“适合所有人”的解决方案.
我一直在这里咆哮很多,而且已经很晚了,我可能完全没有目标,但是嘿,这是我的2美分.
干杯!