前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >什么是负载均衡?

什么是负载均衡?

原创
作者头像
司徒永哥
修改2018-07-23 15:24:49
1K0
修改2018-07-23 15:24:49
举报

简介

负载均衡是高可用性基础架构的关键组件,通常用在多个服务器之间分配工作负载来提高网站、应用程序、数据库和其他服务的性能和可靠性。

没有负载均衡的Web基础结构可能如下所示:

上图示例中,用户直接连接到web服务器yourdomain.com。如果此单个Web服务器出现故障,用户将无法再访问该网站。此外,如果多个用户尝试同时访问服务器并且无法处理负载,则可能会遇到加载时间缓慢或根本无法连接的情况。

通过在后端引入负载均衡器和及一个额外的Web服务器,可以减轻这种单点故障。一般情况下,所有后端服务器都将提供相同的内容,用户无论哪个服务器响应都会收到一致的内容。

在上面说明的示例中,用户访问负载均衡器,负载均衡器将用户的请求转发到后端服务器,后端服务器直接响应用户的请求。上图中App 02服务器故障,负载均衡自动将流量分配的到App 01服务器,这就是负载均衡,在我们讨论负载均衡之前,让我们探讨负载均衡器的工作原理。

负载均衡器可以处理什么样的流量?

负载均衡器主要为四种类型的流量创建转发规则:

  • HTTP -标准HTTP均衡基于标准HTTP定向请求。负载均衡器设置X-Forwarded-ForX-Forwarded-Proto以及X-Forwarded-Port,提供请求的后端信息。
  • HTTPS -HTTPS均衡功能与HTTP均衡功能相同,但增加了加密功能。主要以下面的两种方式进行加密:使用 SSL passthrough ,让密钥在服务器端进行加密。或者使用SSL termination,将解密负担放在负载均衡器上进行加密。两种方法各有优缺点。
  • TCP -对于不使用HTTP或HTTPS的应用程序,也可以均衡TCP流量。比如不支持HTTP的数据库流量可以分布在其他服务器上。
  • UDP -最近,一些负载均衡器增加了对使用UDP的核心互联网协议的负载均衡的支持。

这些转发规则将定义负载均衡器本身的协议和端口,并将它们映射到负载均衡器将用于将流量路由到后端的协议和端口。

负载均衡器如何选择后端服务器?

负载均衡器判断两个因素选择将请求转发到哪个服务器。首先他们将确保他们可以选择的任何服务器实际上对请求做出适当的响应,然后使用预先配置的规则从中进行选择。

健康检查

负载均衡器应仅将流量转发到“健康”的后端服务器。要监视后端服务器的运行状况,负载均衡服务器会定期发送心跳包到后端服务器,确保其正常运行。如果服务器未通过运行状况检查,则会自动将其从负载均衡中删除,并且在服务器恢复正常之前,不会将流量转发到这台服务器。

负载均衡算法

使用的负载均衡算法用来决定后端中哪些健康服务器将会被选择。一些常用的算法是:

Round Robin - 按顺序选择服务器。负载均衡器将在其列表中为第一个请求选择第一个服务器,然后按顺序向下进行负载,循环进行。

最少连接 -最少连接意味着负载均衡器将选择连接最少的服务器。

Source -使用Source算法,负载均衡器将根据请求的一系列源IP(例如访问者的IP地址)中选择要使用的服务器。此方法可确保特定用户始终连接到同一服务器。

管理员可用的算法取决于所使用的特定负载均衡技术。

负载均衡器如何处理状态?

某些应用程序要求用户继续连接到同一后端服务器。Source算法根据客户端IP信息创建关联。在Web应用程序级别实现此目的的另一种方法是通过粘性会话,其中负载均衡器设置cookie,并且来自该会话的所有请求都定向到同一物理服务器。

冗余负载均衡器

要将负载均衡器作为单点故障移除,可以将第二个负载均衡器连接到第一个负载均衡器以形成一个集群,其中每个负载均衡器发送心跳包监控其他负载均衡器的运行状况。每个同等地能够进行故障检测和恢复。

如果主负载均衡器发生故障,DNS必须将用户带到第二个负载均衡器。但是DNS会花费大量时间进行修复,因此管理员使用允许灵活IP地址重新映射的系统,例如腾讯云弹性网卡。按需绑定网卡,消除了DNS更改中固有的传播和缓存问题。域名可以保持与相同的IP地址关联,而IP地址本身也可以在服务器之间移动。

这就是使用腾讯云弹性网卡的高可用性基础架构图:

结论

在本文中,我们概述了负载均衡器概念及其工作原理。想查看更多负载均衡相关的内容,您可以看看:

什么是负载均衡 CLB

负载均衡CLB API文档

负载均衡CLB SDK

开发者实验室里您还能免费使用 CLB 的相关资源,完成特定的任务。下面将介绍应用型 CLB 入门,如果您想了解传统型 CLB 入门请 点击此处


参考文献:《What is Load Balancing?》

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 简介
  • 负载均衡器可以处理什么样的流量?
  • 负载均衡器如何选择后端服务器?
    • 健康检查
      • 负载均衡算法
        • 负载均衡器如何处理状态?
        • 冗余负载均衡器
        • 结论
        相关产品与服务
        数据库
        云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档