系统设计基础:负载均衡器Load Balancer入门

系统设计101 , 热门网站如何处理大量请求
系统设计基础:负载均衡器Load Balancer入门文章插图
> Photo by JOSHUA COLEMAN on Unsplash
系统设计是软件工程最重要的概念之一 。 当我开始助理架构课程时 , 我很难理解您如何设计系统 。 主要问题之一是 , 一开始很难理解系统设计资源中使用的术语 。
本文研究了系统设计的一个重要主题 , 即负载均衡器 。 您可能在这里了解其特性和服务器选择技术 。 熟悉系统设计的基本概念和术语将极大地帮助您设计系统 。
负载均衡器负载均衡器是任何分布式系统的重要组成部分 。 它有助于在服务器群集内分发客户端请求 , 以提高应用程序或网站的响应速度和可用性 。
根据Wikipedia的说法 , "负载均衡是指在一组资源上分配一组任务的过程 。 "
系统设计基础:负载均衡器Load Balancer入门文章插图
> Image By Author
例如 , 如果一台服务器不能同时处理大量请求 , 则需要一个负载均衡器 。其主要目的是优化每个任务的响应时间 。现在 , 假设系统中有一台服务器因客户端的请求而过载 。服务器具有每秒服务请求的限制 。因此 , 我们需要添加更多服务器来处理大量请求 。但是我们可能需要一个负载均衡器来平衡服务器之间的负载 。
负载均衡器是一台服务器 , 通常位于客户端设备和一组服务器之间 , 并在服务器之间分配客户端请求 。 负载均衡器可以放置在系统的各个位置 。 服务器上的负载需要以平衡的方式分配;这就是为什么它们被称为负载均衡器 。
系统设计基础:负载均衡器Load Balancer入门文章插图
因此 , 我们可以说负载平衡是跨多个资源分配客户端请求的过程 。 如果服务器不可用于处理新请求或没有响应 , 则负载均衡器将停止向该服务器发送请求 。
【系统设计基础:负载均衡器Load Balancer入门】众所周知 , 负载均衡器可防止服务器过载 。负载均衡器的另一个基本任务是对服务器进行连续的运行状况检查 , 以确保它们可以处理请求 。它通过平衡用户请求来确保更好地利用系统资源 。在系统设计中 , 水平缩放是在有大量用户的情况下缩放我们的系统的常见策略 。负载均衡器是用于水平扩展的解决方案 。通过平衡系统的传入流量 , LB可以防止服务器过载 。它还可以确保更好的系统整体吞吐量 。延迟应该减少 , 因为请求不会被阻塞 , 用户也不必等待请求被处理 。
负载均衡器可以是硬件LB和软件LB两种 。在本文中 , 我们重点介绍软件负载均衡器 。
我们在哪里使用负载均衡器?通常 , 我们可以在客户端和服务器之间放置一个负载均衡器 , 以处理传入的网络请求 。LB的另一种非常正常的用法是在后端服务器之间分配网络流量 。负载均衡器用于减少单个服务器的负载 。而且它可以防止任何服务器出现单点故障 。因此 , 它提高了系统的整体可用性和响应能力 。我们可能会在系统中的不同位置添加LB 。特别是在我们拥有多个资源(例如服务器或数据库或缓存)的地方 。
我们为什么使用负载均衡对于任何系统设计组件来说 , 最重要的是我们知道为什么以及何时使用组件 。 负载均衡是系统可用性和整体吞吐量的重要组成部分 。 这是负载均衡用法的一些示例:
· 在设计系统时 , 其主要考虑因素之一是创建更快的用户体验和不间断的服务 。用户请求不应等待尚未完成其先前任务的单个服务器 。在这种情况下 , 客户端请求将立即分发到响应的可用服务器 。那是我们需要使用负载均衡器的时候; 平衡多种资源之间的任务 。图1就是这样一个例子:
· 可用性是分布式系统的关键特征 。 在服务器完全故障的情况下 , 这不会影响用户体验 , 因为负载均衡器只会将客户端请求发送到运行正常的服务器 。
· 我们可以在负载均衡器中使用预测性分析来确定流量瓶颈 , 然后再进行处理 。 它可以帮助您制定业务决策 。
· 负载均衡可确保多个设备执行可承受的工作量 , 而不是由单个资源执行大量工作 。
· 负载均衡器的另一项任务是保护系统免受分布式拒绝服务(DDoS)攻击 。 软件负载均衡器可以提供针对DDoS攻击的有效且低成本的保护 。
服务器选择:我们知道负载均衡器会从多个服务器中选择一个后端服务器 。 如何选择服务器?负载均衡器在将客户端请求转发到服务器之前要考虑两个主要因素: