写点什么

负载均衡概念入门

  • 2021-05-17
  • 本文字数:1894 字

    阅读完需:约 6 分钟

负载均衡概念入门

当个人电脑刚刚开始走进人们工作和生活领域时,一个家庭通常最多只有 1 台电脑。孩子们白天使用电脑玩游戏,而大人们晚上通过电脑在论坛上灌水。但现如今只有一台电脑的家庭很容易出现每个人在同一时间都需要使用电脑的情况。这或多或少与 IT 行业发生的情况相同。因为计算机已经变得越来越普遍了,对服务和服务器的需求已经增加到它们可能因为过度使用而宕机的程度。幸运的是,我们现在有负载均衡的概念来帮助我们处理这一需求。

什么是负载均衡?

负载均衡是一个通用的术语,指的是为了确保你所管理的资源得到有效分配而做的任何事情。对于网络服务器的系统管理员来说,负载均衡通常意味着确保网络服务器软件(如 Nginx)配置了足够的 worker 节点以处理激增的访客。换句话说,如果一个网站突然变得非常受欢迎,其访客数量在几分钟之内翻了几倍,运行服务器的软件必须能够对这一情况做出反应,而不会让用户感到访问变得不流畅。对于简单的站点来说,只需要进行简单的配置即可,但对于具有动态内容并且每个用户几个数据库查询的复杂站点,这可能是一个难以处理的问题。


这个问题本应随着云计算的发展而解决,但是,当一个网络应用遇到意外的激增时,也有可能无法及时进行扩容。


当谈及负载均衡的时候,请记住一点分布式资源并不意味着均匀分配。并不是所有任务都一直需要所有可用的资源。一个智能的负载均衡策略应该只在合适的时候为用户和任何提供资源。当然,这通常是开发工程师处理而不是 IT 基础架构部门的工作。异步应用可以当用户短暂离开时而不在服务器上占用有价值的资源。

负载均衡的工作原理

负载均衡通过在多个计算节点上分布工作负载而避免了瓶颈。那些节点可能是数据中心的物理服务器、云端中的容器、面向边缘计算场景设置的服务器、在复杂应用程序框架中的 Java 虚拟机(Java Virtual Machines)或者运行在单个 Linux 服务器上的 daemon。


具体实现原理是将大问题拆分成若干个小任务,并为每个任务分配指定计算机。例如,对于需要用户登录的网页,网页可能被托管在 Server A 上,与此同时登陆页面以及所有身份验证 lookups 被托管在 Server B 上。这种部署方式可以使得一个新用户登录到账号上时无需从其他活跃用户处使用资源。

云端负载均衡

云计算使用容器,所以通常没有独立的物理服务器来处理不同的任务(实际上,有许多独立的服务器,但它们被集中在一起,作为一个计算 "大脑")。相反,一个 "pod "是由几个容器创建的。当一个 pod 由于其用户或任务负载而开始耗尽资源时,会生成一个相同的 pod。Pod 之间共享存储和网络资源,每个 pod 在创建时被分配到一个计算节点。pod 可以根据负载的需要创建或销毁,这样,无论有多少用户,用户都能体验到一致的服务质量。

边缘计算

边缘计算在进行负载均衡时需要考虑到物理世界。云是一个分布式系统,但在实际上,云的节点通常集中在几个数据中心。用户离运行云的数据中心越远,他们就必须克服更多的物理障碍以获得最佳服务。即使有光纤连接和适当的负载均衡,位于 3000 公里外的服务器的响应时间也可能比 300 公里外的服务器响应时间更长。


边缘计算将计算节点带到云的“边缘”以试图弥合地理鸿沟,从而形成一种用于云端的卫星网络,所以它在良好的负载均衡中也发挥了作用。

什么是负载均衡算法?

负载均衡有很多策略,它们的复杂程度取决于所涉及的技术和需求的不同。负载均衡不一定很复杂,即使使用 Kubernetes 或 Keepalived 这样的专业软件,也要从一开始就进行负载均衡。


当你的应用程序可以自己采取简单的预防措施时,不要依赖容器来均衡负载。如果你从一开始就把你的应用程序设计成模块化且短暂的,那么你就会从巧妙的网络设计、容器编排以及未来的任何技术所带来的负载均衡机会中受益。


一些流行的算法可以指导你作为一个应用开发者或网络工程师的工作,包括:


  • 将任务按顺序分配给服务器(这通常被称为轮询调度 round-robin)

  • 将任务分配给目前最不繁忙的服务器

  • 将任务分配到响应时间最好的服务器上

  • 随机地分配任务


这些原则可以结合或加权,例如,在分配特别复杂的任务时,偏向于一个组中最强大的服务器。编排是常用的,这样管理员就不必为负载均衡鼓捣出完美的算法或策略,尽管有时要由管理员来选择使用哪种负载均衡方案的组合。

期待意外的发生

负载均衡并不是真正要确保你的所有资源在整个网络中得到均匀使用。负载均衡是指即使在意外情况发生时也要确保可靠的用户体验。良好的基础架构可以承受计算机宕机、应用程序过载、网络流量的猛烈攻击和用户错误。你可以开始思考如何让服务具有弹性,并从头开始设计相应的负载均衡。


原文链接:https://opensource.com/article/21/4/load-balancing


本文转载自:RancherLabs(ID:RancherLabs)

原文链接:负载均衡概念入门


2021-05-17 14:001939

评论

发布
暂无评论
发现更多内容

面试官:怎么给详情页做性能优化的?

程序知音

研发效能负责人/研发效能1号位 |DevOps负责人

laofo

DevOps cicd 研发效能 工程效能 工程效率

2023年中建信息&超聚变核心生态伙伴高峰论坛成功举办

极客天地

活动报名 | 博睿数据高阶行业沙龙保险专场启动报名!

博睿数据

智能运维 博睿数据 保险行业

联邦学习开源框架FATE架构

京东科技开发者

人工智能 机器学习 联邦学习 FATE 企业号 3 月 PK 榜

2023年会声会影最新版本六大新功能

茶色酒

会声会影2023

H2 存储内核解析

陈飞

分布式事务 微服务架构 分布式数据库 分布式缓存 数据库内核

三天吃透操作系统面试八股文

程序员大彬

Java 面试 操作系统

Orillusion正式公测开启,这份指南请收好!

Orillusion

开源 Web WebGL 渲染引擎 webgpu

Matlab常用图像处理命令108例(六)

timerring

图像处理

GPT-4:不了不了,这些我还做不到

禅道项目管理

GPT ChatGPT GPT-4

一个由public关键字引发的bug

小小怪下士

Java 程序员 后端

3分钟快速了解GPT-4

Baihai IDP

人工智能 自然语言处理 AI ChatGPT GPT-4

架构训练营六-电商业务微服务拆分

白杨

Nautilus Chain 现已推出测试网“Triton ”,有哪些潜在的机会?

鳄鱼视界

ViewFlipper的基本使用

芯动大师

android ViewFlipper 翻转

从头到尾学习一个完整 SLAM 项目

博文视点Broadview

API接口自动化测试框架搭建之需求整理、详细设计和框架设计

自动化测试 unittest 接口测试 API 测试框架

云加速,前所未见的游戏网络体验

安第斯智能云

云计算 网络 游戏 云存储 智能云

飞桨携手登临解读软硬一体技术优势,共推AI产业应用落地

飞桨PaddlePaddle

硬件 硬件产品 飞桨 软硬一体

金蝶发布2022年财报,云业务收入连续三年增长超30%

科技热闻

热点面试题:JS 如何判断一个元素是否在可视区域内?

Immerse

JavaScript 面试 前端面试题 元素状态

信创即时通讯-WorkPlus即时通讯软件支持国产化信创环境

BeeWorks

PyTorch深度学习实战 | 基于RNN的文本分类

TiAmo

CNN PyTorch

Mac电脑照片编辑修图软件精选

Rose

修图 抠图 图片编辑 苹果mac软件 macOS系统

fastposter v2.13.0 一分钟完成开发海报 [云服务来袭]

物有本末

fastposter 海报生成 Java绘制图片 python开发海报

mkv格式怎么在mac电脑播放,mac上5款必备的视频播放器

Rose

视频播放器 MKV 苹果mac软件

App Store 2022年度app推荐: MacFamilyTree 10 最好的家族谱软件

Rose

MacFamilyTree 家族谱软件 苹果软件精选

【Web安全】刚开始学渗透,零基础怎么入门?

网络安全学海

黑客 网络安全 信息安全 渗透测试 WEB安全

如何改变Mac观看Netflix奈飞时的字幕样式?

Rose

Mac软件 奈飞客户端 网飞字幕

负载均衡概念入门_架构_Rancher_InfoQ精选文章