详解 LB 负载均衡的应用

vps网友提供 04-29 讨论归档 0

Cloudpods 是一个开源的 Golang 实现的云原生的多云和混合云融合平台。

Cloudpods 不仅可以管理本地的虚拟机和物理机资源,还可以管理其他公有云和私有云平台的资源。

GitHub: https://github.com/yunionio/cloudpods,欢迎使用+star

今天分享的内容是“云上负载均衡产品的应用”。会从以下几个方面展开:

  • 负载均衡产品简介。主要介绍负载均衡作为一个云上产品,它的功能模型是怎样的,日常使用中会遇到的业务词汇
  • 负载均衡的功能与典型应用场景。这部分主要结合业务词汇,对负载均衡服务中常见的一些功能选项进行介绍,并举例介绍一些典型的应用场景
  • 最后,介绍负载均衡产品相比传统方式的优点

一、产品简介

1. 以 NGINX 为例

提到负载均衡,我们以前一般先会想到 NGINX ,或者淘宝的分支 Tengine 。我们先来看看

  • 它是怎样工作的
  • 它解决了什么样的问题
  • 它适合什么样的应用场景

图片

在加入了 NGINX 之后,客户端( Client IP )首先与 NGINX 建立连接( Virtual IP+Virtual Port ),请求也先发给 NGINX ,再由 NGINX 从多个后端服务器中选择一台,建立连接后把请求转发给后端服务器( Real IP )。

NGINX 作为网络转发节点,不参与后端服务的业务逻辑处理。而相比客户端直连后端,多个后端服务器可同时处理业务请求,应用的服务能力得到水平扩展。同时,转发节点上可以对后端做健康检查,自动屏蔽掉不健康的后端服务器,保障业务的高可用,使得单个后端服务器在故障、升级、过载时依然对用户连续可用。

因此,我们说水平扩展、高可用是负载均衡解决的最基本的两个问题。从另外一方面来说,使用负载均衡的业务,在架构设计上应该是能够水平扩展的。比如,一个应用的多个实例之间不需要通信,相互之间没有复杂的状态维护。

2. 业务词汇

在使用云上负载均衡的时候,不管哪个厂商的产品,我们会遇到一些常用的业务词汇。我们围绕一张图来简要介绍。

图片

负载均衡实例,除了区域、可用区之外,每个实例至少有一个 IP 地址。同一个负载均衡实例下可以有多个监听,每个监听一般至少有协议、端口两个属性。后面还会介绍监听的其它属性,比如调度算法、健康检查、转发策略等。

实例和监听对应到 NGINX 上,其实是 Virtual IP 和 Virtual Port 的组合。每个监听有一个后端服务器组,组内可以有多个后端服务器,监听将来自客户端的请求转发给后端服务器( Real IP 、Real Port )。

对于 HTTPS 协议的监听,我们还会遇到 TLS 证书的概念。

通常每个监听还可以绑定一个访问控制列表,用来设置黑名单、白名单,限定业务的服务范围。

将业务词汇放到转发模型上,我们可以得到这样一张图。在壹云的负载均衡实现中,转发节点使用 HAProxy 负责具体的流量转发。实例和监听的配置被转换为 HAProxy 的配置应用到转发节点上。HAProxy 据此将流量转发到后端服务器组。

图片

因篇幅过长,后续的功能与应用场景,和总结等详细内容请点击链接查看 https://mp.weixin.qq.com/s/3IWF-HwGAI6FquKsoGbAcA

GitHub: https://github.com/yunionio/cloudpods

本文由 vps网友提供,转载请注明出处

本文链接: https://www.vpsvsvps.com/discuss/a/1676472094528901120.html

标签: