![]() |
1
4
通过共享和联网。一台或多台服务器的代码“应该”相同。 您可以通过数据库、内存与memcache、负载与均衡器等共享数据。如果您专门使用像google这样的服务器(一些服务器执行URL提取、一些保留数据、一些服务器执行数字处理等),则可以更好地利用手头的硬件。 代码可以使用分派逻辑(通常是通过API抽象的),这样,如果有一台或数百万台服务器,它的工作方式是相同的。 IPC(进程间通信)可以启用网络并允许“更紧密”的服务绑定。谷歌甚至有一个 protocol buffer 项目来帮助这个。 基本上,服务器必须共享才能获得任何真正的好处(除了故障转移/备份),代码需要使用抽象级别来帮助共享。实际共享通常使用 Round-Robin 或 Map/Reduce 逻辑。 |
![]() |
2
3
底层架构模式是“无共享架构”。其思想是构建架构中使用最频繁的部分,使其能够被分发,并且分布式对等端不需要了解其他对等端的任何信息,因此它们不需要彼此通信。这样就可以通过添加其他对等点来扩展它们。 通常,这需要某种类型的流量路由(负载平衡)来提供共享组件,以及一些持久性和/或状态同步。 这种“经典”架构是一个或多个负载均衡器,将流量分配给几个“不共享”的应用程序服务器,这些服务器运行在一个公共数据库上。通常,应用服务器硬件相当便宜,数据库硬件是一个或两个很大的负担,这取决于负载。 如今,越来越多的解决方案也将数据库分割成多个部分,以便进行扩展。最终,这将导致分布式、分片的数据库,其中存在多个DB节点,并且每个节点只包含数据的一个子集。 |