2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

负载均衡概念入门

  • 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:001995

评论

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

哈尔滨二级等保:突破落地难点,构建长效安全机制

等保测评

使用YashanDB构建智能化数据分析平台的最佳实践

数据库砖家

AI英语教育APP的分类

北京木奇科技有限公司

AI技术开发 软件外包公司 AI英语教育

使用YashanDB构建高可扩展性数据库架构

数据库砖家

使用YashanDB进行企业级数据资产管理的优势

数据库砖家

抛弃自定义模态框:原生Dialog的实力

掘金安东尼

构建高可用发布体系

陈一之

架构师 安全发布

绯闻女孩不只会八卦:从“验明正身”到“抓内鬼”,Gossip的进阶玩法

poemyang

分布式 分布式系统

AI 英语口语陪练 APP

北京木奇科技有限公司

软件外包公司 AI英语学习 AI英语教育

使用YashanDB进行企业数据整合的实践经验分享

数据库砖家

使用YashanDB进行数据库容量规划的实用建议

数据库砖家

使用YashanDB实现大数据实时分析架构

数据库砖家

鸿蒙应用开发从入门到实战(九):ArkTS渲染控制

程序员潘Sir

鸿蒙 HarmonyOS

成功案例丨Altair 一体机助力Mirus飞机座椅公司实现高效仿真与建模

Altair RapidMiner

人工智能 AI 仿真 CAE 航空航天

MySQL迁移至GreatSQL后,timestamp字段插入报错解析

GreatSQL

使用YashanDB构筑面向未来的企业数据基础设施

数据库砖家

黑龙江等保测评公司选择:适配需求的进阶策略

等保测评

京东零售张科:Data&AI Infra会成为驱动未来的技术基石

京东零售技术

一文解码百度地图AI导航“小度想想”

百度Geek说

地图 百度地图

搜索百科(2):Apache Solr — 企业级搜索的开源先锋

极限实验室

搜索引擎 lucene solr 搜索百科 开源搜索

《企业 AI 应用构建指南》正式发布

阿里技术

架构 应用构建 LLM 企业AI 指南

使用YashanDB实现多租户数据隔离的策略

数据库砖家

NocoBase 本周更新汇总:优化及缺陷修复

NocoBase

开源 低代码 无代码 版本更新

高金和嘉信理财发布第九年度《中国新富人群财富健康指数》

财见

YOLOv8+PyQt5睡岗状态智能检测平台搭建 | 睡觉行为自动监控系统【开箱即用】

申公豹

人工智能

舞台LED屏如何打造震撼的视听盛宴

Dylan

LED LED display 虚拟演唱会 舞台表演 LED屏幕

使用 Rust 实现的基础的List 和 Watch 机制

天翼云开发者社区

云计算 rust k8s

使用YashanDB构建企业级数据仓库的实战指南

数据库砖家

Hyperliquid旧秩序坍塌,DeriW重构永续DEX未来

股市老人

数十万条数据秒级响应——Classact 在 Kubernetes 上的 NocoBase 应用实践

NocoBase

数据库 开源 HR 数据管理 客户案例

火山引擎多模态数据湖:基于 Daft 与 Lance,构筑 AI 时代数据湖新范式

字节跳动数据平台

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