大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
在以往我们创建高可用Web应用程序时,负载均衡器是必不可少的组件。我们都使用传统内部服务器的负载均衡器,其中我们的应用程序在N个实例上运行,负载均衡器位于这些服务器的前面,并根据某些预定义的算法和设置向后端服务器分配负载。
迁移到云中,我们需要了解如何使用Azure组件实现相同的负载平衡。云应用程序中的负载平衡需要更多的考虑,即在一些服务器前面有一个简单的负载平衡器,就像我们可以在PaaS上托管服务一样,我们可以为不同的租户在不同的实例上运行服务,也可以让应用程序在分布在世界各地的多个服务器上运行。
出于这个原因,Azure中有多个可用于负载平衡的组件。这些组件中的每一个都有不同的目的,我们需要为方案选择正确的组件才能实现最佳的应用程序架构。
Azure负载平衡解决方案
Azure中主要有3个负载平衡组件。
l Azure负载均衡器
l Azure应用程序网关
l Azure流量管理器
让我们逐一了解每个组件,并尝试了解何时有效地使用每个组件。
Azure负载均衡器
Azure负载均衡器是一种比较经典的负载均衡器,因为它可以用于平衡VM的负载,就像我们使用传统负载均衡器与我们的内部部署服务器一样。现在,由于Azure负载均衡器是专为云应用程序而设计,因此它还可用于平衡负载与容器和PaaS应用程序以及VM。
但是这种与传统负载均衡器的相似之处在于,Azure负载均衡器的工作原理是传输层(OSI模型的第4层)。这意味着它将在同一个Azure数据中心分发网络流量,但不能使用会话和应用层提供的传统负载平衡器的特性,因为这些是OSI模型的第7层构造。
负载均衡器配置有负载平衡规则,这些规则在端口级别工作。它接受源端口和目标端口将它们映射在一起,这样每当它接收到对源端口的请求时,该请求就会从连接到目标端口上的负载均衡器的一组虚拟机(或VNET中的应用程序)转发到虚拟机。
Azure负载均衡器可用于两种配置模式:
l 外部 - 公共负载平衡
l 内部 - 内部负载平衡
外部 - 公共负载平衡
在此模式下,为负载均衡器分配一个公共IP地址,以确保负载均衡器可以接受来自Internet的请求。客户端应用程序和服务将从Internet调用负载均衡器,然后根据配置的规则,它将通过VM,容器或应用程序分发传入流量。
内部 - 内部负载平衡
内部负载均衡器与外部负载均衡器基本相同,但它使用专用IP地址,因此只能从与其连接的虚拟网络中的应用程序进行调用。
Azure负载均衡器帮助我们在基础架构级别设计高可用性,但是由于有些情况需要我们的负载平衡组件提供更高级的功能和服务,如连接关联性,安全性,SSL终止等,我们无法使用Azure负载均衡器来实现这些高级功能我们需要一个可以处理OSI模型的第7层结构的解决方案,即应用程序,会话等。让我们看看我们如何在下一节中实现这一点。
Azure应用程序网关
Azure应用程序网关是一个7层负载均衡器,因此它可以对访问应用程序的会话进行有效负载,使应用程序网关除了提供负载均衡功能外还能提供更多的功能。如粘性会话、连接亲和力等。由于与Azure负载均衡器相比,应用程序网关具有更多的功能,因此可以配置更复杂的路由和负载平衡。应用程序网关充当反向代理服务。它终止客户端连接,并将请求转发到后端端点。。
我个人认为,如果我们在应该使用公共负载平衡器的应用程序级别上运行工作负载,那么在更多的用例中,应用程序网关的使用比使用负载平衡器更有意义。
应用程序网关可以被认为是在第7层上运行的,并提供了比负载均衡器更多的功能。应用程序网关还可用于基于URL路由流量,这对于开发多租户应用程序非常有用,其中每个租户都有独立的VM运行实例和URL中的租户标识符。
Azure流量管理器
到目前为止,我们已经看到了满足数据中心内负载平衡的负载平衡解决方案。负载平衡器和应用程序网关是用于在数据中心内实现高可用性的组件。但是通过云,我们还可以以地理上分布的方式构建我们的应用程序。那么我们如何平衡地理位置之间的负载。
Azure流量管理器仅用于此目的。Azure流量管理器使用DNS将请求重定向到适当的地理位置端点。流量管理器不会看到客户端和服务之间传递的流量。它只是根据最合适的端点重定向请求。地理位置端点是面向互联网的可访问公共URL。
Azure流量管理器在DNS级别工作,即它使用DNS级别配置的规则在多个区域和数据中心分配负载。客户端发出DNS请求,并根据DNS的位置,Azure Traffic Manager将找到最近的区域,并通过DNS响应将其发送回客户端。