负载均衡概念入门

当我的电脑刚刚开始走进人们工做和生活领域时,一个家庭一般最多只有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/articl...
相关文章
相关标签/搜索