Architecture 对于web应用程序,多个服务器如何同步工作?

Architecture 对于web应用程序,多个服务器如何同步工作?,architecture,server,server-side,backend,Architecture,Server,Server Side,Backend,我的第一个问题是,我经常读到人们使用多个专用服务器来运行他们的网站,并处理来自用户的查询。但他们究竟是如何做到这一点的呢?我的意思是,当我输入域名时,DNS解析会将其映射到一个IP地址,但之后我就迷路了。。是否存在某种主/从架构来在(可能)数百台服务器之间平衡传入请求 如果是这种情况,各种服务器如何共享数据(例如数据库)?它们是否连接到同一硬盘 1) 您可以使用NLB(网络负载平衡)-它将对服务器场中的所有服务器使用相同的IP 2) 数据库的SQL集群和非关系数据的公共文件存储 将很好地描述如

我的第一个问题是,我经常读到人们使用多个专用服务器来运行他们的网站,并处理来自用户的查询。但他们究竟是如何做到这一点的呢?我的意思是,当我输入域名时,DNS解析会将其映射到一个IP地址,但之后我就迷路了。。是否存在某种主/从架构来在(可能)数百台服务器之间平衡传入请求

  • 如果是这种情况,各种服务器如何共享数据(例如数据库)?它们是否连接到同一硬盘

  • 1) 您可以使用NLB(网络负载平衡)-它将对服务器场中的所有服务器使用相同的IP

    2) 数据库的SQL集群和非关系数据的公共文件存储 将很好地描述如何在多台服务器之间实现负载平衡,因此您可以看到一个IP地址,但连接将路由到多台服务器中的一台(包括容错)

    如果您的web服务器没有使用相同的存储(公共存储可能很棘手,您必须使用一个与“共享”文件系统类似的文件系统或数据库),那么您应该启用该功能,告诉路由器每个客户端将选择一个服务器进行第一次通信,并与该服务器保持通信。这是容错性较差的(但在web中,您只需刷新断开的连接即可重新开始),但更易于构建(而且速度更快,因为每个web服务器都可以保持独立)

    在真正容错的情况下,您需要解决的另一个问题是将物理服务器彼此远离,这会给大多数共享设计带来性能问题(即,如果服务器位于不同的国家/地区,则无法将所有服务器放在SAN上),即使用多服务器方法,使用单个DNS名称并定期在它们之间复制数据。这可能是将多个web服务器用作单个网站的最简单方法

    在这些情况下,数据库通常可以是一个单一的数据库,所有服务器都可以与之通信,也可以通过使用群集或更常见的日志传送来共享数据库,以确保在主数据库出现故障时,您有一个随时可供联机的备份。备份服务器的日志传送比远程备份服务器更常见