负载均衡透析

2023-10-21 04:10
文章标签 负载 均衡 透析

本文主要是介绍负载均衡透析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

什么是负载均衡?      

1.1 有无负载均衡的区别

1.2 负载均衡的优势

1.3 负载均衡的分类

1.4 常见的负载均衡软硬件:

1.5 负载均衡算法


前言:在负载在互联网发展呢的今天,我们一般会把多台机器组成一个集群对外提供服务。然而,我们的网站对外提供的访问入口都是一个的,比如 baidu.com 那么当用户在浏览器输入 baidu.com 的时候如何将用户的请求分发到集群中不同的机器上呢,这就是负载均衡要做的事情。

什么是负载均衡?      

        负载均衡可以说是高可用网络基础架构的关键组件,也是一种集群技术。它通过将网络流量分担到不同的网络服务器实现了业务容量的水平横向扩展,负载均衡不仅可以提升集群中不同服务器实例的负载性能,还可以保证集群整体的稳定性,也可以根据一定的负载策略实现灰度发布、蓝绿部署、A/B测试等。

        通过硬件或者软件的方式负载均衡会维护一个服务列表清单,当用户发送请求时,它会将请求发给负载均衡器,后者根据(轮训、随机、加权)算法从可用服务列表中取出一台服务器的地址,进行请求转发,完成负载功能。

1.1 有无负载均衡的区别

(一个没有负载均衡的 web 架构)

类似下面这样:

在这里用户是直连到 web 服务器,如果这个服务器宕机了,那么用户自然也就没办法访问了。另外,如果同时有很多用户试图访问服务器,超过了其能处理的极限,就会出现加载速度缓慢或根本无法连接的情况。

(加入负载均衡器和额外的web服务器之后)而通过在后端引入一个负载均衡器和至少一个额外的 web 服务器,可以缓解这个故障。通常情况下,所有的后端服务器会保证提供相同的内容,以便用户无论哪个服务器响应,都能收到一致的内容。

从图里可以看到,用户访问负载均衡器,再由负载均衡器将请求转发给后端服务器。

在这种情况下,单点故障现在转移到负载均衡器上了这里又可以通过引入第二个负载均衡器来缓解,但在讨论之前,我们先探讨下负载均衡器的工作方式。

1.2 负载均衡的优势

  • 高性能:负载均衡技术将业务请求均衡地分配到多台设备或多条链路上,提高了整个系统的性能。
  • 可扩展性:负载均衡技术可以方便地增加集群中设备或链路的数量,在不降低业务质量的前提下满足不断增长的业务需求。
  • 高可靠性:单个甚至多个设备或链路发生故障不会导致业务中断,提高了整个系统的可靠性。
  • 可管理性:大量的管理工作都集中在应用负载均衡技术的设备上,设备群或链路只需要通常的配置和维护即可。
  • 透明性:对用户而言,集群等同于可靠性高、性能好的设备或链路,用户感知不到也不必关心具体的网络结构,增加和减少设备或链路均不会影响正常的业务。

1.3 负载均衡的分类

        负载均衡就是一种计算机网络技术,用来在多个计算机(计算机集群)、网络连接、CPU、磁碟驱动器或其他资源中分配负载,以达到最佳化资源使用、最大化吞吐率、最小化响应时间、同时避免过载的目的。那么,这种计算机技术的实现方式有多种。大致可以分为以下几种,其中最常用的是四层和七层负载均衡:

  • 四层负载均衡:四层负载均衡四层负载均衡工作在OSI模型的传输层,由于在传输层,只有TCP/UDP协议,这两种协议中除了包含源IP、目标IP以外,还包含源端口号及目的端口号。是基于IP+端口,从传输层开始是,使用“ip + port”接受请求,在转发到对应的服务器 。
  • 七层负载均衡:七层负载均衡七层负载均衡工作在OSI模型的应用层,应用层协议较多,常用http、radius、dns等。七层负载就可以基于这些协议来负载。是基于虚拟的URL或主机IP,在四层负载均衡的基础上,通过应用层协议实现。

1.4 常见的负载均衡软硬件:

当前服务器集群的负载均衡主要分为:硬件负载均衡,软件负载均衡

  • 硬件负载均衡主要有:F5、Array、NetScaler等。

其优缺点在于:

优点:能够直接通过智能交换机实现,处理能力更强,而且与系统无关,负载性能强更适用于一大堆设备、大访问量、简单应用。

缺点:成本高,除设备价格高昂,而且配置冗余.很难想象后面服务器做一个集群,但最关键的负载均衡设备却是单点配置;无法有效掌握服务器及应用状态。

  • 软件负载均衡主要有:LVS、HAProxy、Nginx等。

其优缺点在于:

优点:基于系统与应用的负载均衡,能够更好地根据系统与应用的状况来分配负载。这对于复杂应用是很重要的,性价比高,实际上如果几台服务器,用F5之类的硬件产品显得有些浪费,而用软件就要合算得多,因为服务器同时还可以跑应用做集群等。

缺点:负载能力受服务器本身性能的影响,性能越好,负载能力越大。

综述:对我们系统环境来说,由于负载均衡器本身不需要对数据进行处理,性能瓶颈更多的是在于后台服务器,通常采用软负载均衡器已非常够用,可以无逢的和我们系统平台相结合。

硬件负载均衡应用场景,更多的是大量后台服务器,大量数据处理分发,比如每秒上十万的数据并发,这样需要选择一个合适的硬件负载均衡设备。

1.5 负载均衡算法

  • Round Robin(轮询):为第一个请求选择列表中的第一个服务器,然后按顺序向下移动列表直到结尾,然后循环。
  • Least Connections(最小连接):优先选择连接数最少的服务器,在普遍会话较长的情况下推荐使用。
  • Source:根据请求源的 IP 的散列(hash)来选择要转发的服务器。这种方式可以一定程度上保证特定用户能连接到相同的服务器。

如果你的应用需要处理状态而要求用户能连接到和之前相同的服务器。可以通过 Source 算法基于客户端的 IP 信息创建关联,或者使用粘性会话(sticky sessions)。

最后我们还回到解决负载均衡服务器单点故障的问题可以将第二个负载均衡器连接到第一个上,从而形成一个集群。

当主负载均衡器发生了故障,就需要将用户请求转到第二个负载均衡器。因为 DNS 更改通常会较长的时间才能生效,因此需要能灵活解决 IP 地址重新映射的方法,比如浮动 IP(floating IP)。这样域名可以保持和相同的 IP 相关联,而 IP 本身则能在服务器之间移动。

这篇关于负载均衡透析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/251833

相关文章

Hadoop集群数据均衡之磁盘间数据均衡

生产环境,由于硬盘空间不足,往往需要增加一块硬盘。刚加载的硬盘没有数据时,可以执行磁盘数据均衡命令。(Hadoop3.x新特性) plan后面带的节点的名字必须是已经存在的,并且是需要均衡的节点。 如果节点不存在,会报如下错误: 如果节点只有一个硬盘的话,不会创建均衡计划: (1)生成均衡计划 hdfs diskbalancer -plan hadoop102 (2)执行均衡计划 hd

一种改进的red5集群方案的应用、基于Red5服务器集群负载均衡调度算法研究

转自: 一种改进的red5集群方案的应用: http://wenku.baidu.com/link?url=jYQ1wNwHVBqJ-5XCYq0PRligp6Y5q6BYXyISUsF56My8DP8dc9CZ4pZvpPz1abxJn8fojMrL0IyfmMHStpvkotqC1RWlRMGnzVL1X4IPOa_  基于Red5服务器集群负载均衡调度算法研究 http://ww

【微服务】Ribbon(负载均衡,服务调用)+ OpenFeign(服务发现,远程调用)【详解】

文章目录 1.Ribbon(负载均衡,服务调用)1.1问题引出1.2 Ribbon负载均衡1.3 RestTemplate整合Ribbon1.4 指定Ribbon负载均衡策略1.4.1 配置文件1.4.2 配置类1.4.3 定义Ribbon客户端配置1.4.4 自定义负载均衡策略 2.OpenFeign面向接口的服务调用(服务发现,远程调用)2.1 OpenFeign的使用2.1 .1创建

MySQL数据库负载均衡

数据库负载均衡是通过将数据库请求分散到多个数据库服务器上,以提高数据库的处理能力和可用性。在高并发的场景下,使用数据库负载均衡器可以有效避免单点故障,提高系统的整体性能和可靠性。 数据库负载均衡器 数据库负载均衡器可以是硬件设备或软件解决方案。在MySQL环境中,一些流行的数据库负载均衡器包括: MySQL Proxy:MySQL Proxy是一个简单的中间件,用于监控、分析或增强对MySQ

828华为云征文|基于华为云Flexus X实例搭建Nginx集群负载均衡

目录 前言 一、Flexus云服务器X介绍 1.1 Flexus云服务器X实例简介 1.2 Flexus X实例购买 1.3 登录服务器 三、Springboot集群服务 3.1 部署9901节点服务 3.2 部署9902节点服务 四、Nginx负载均衡配置 五、集群负载调用测试 5.1 负载调用9901端口 5.2 负载调用9901端口 总结 前言 华为云Flexus X实例凭借其

透析SPFA算法(图例讲解)

SPFA算法是Bellman-Ford的队列优化,所以先介绍Bellman-Ford算法。        Dijkstra算法是处理单源最短路径的有效算法,但它局限于边的权值非负的情况,若图中出现权值为负的边,Dijkstra算法就会失效,求出的最短路径就可能是错的。这时候,就需要使用其他的算法来求解最短路径,Bellman-

CUDA:用并行计算的方法对图像进行直方图均衡处理

(一)目的 将所学算法运用于图像处理中。 (二)内容 用并行计算的方法对图像进行直方图均衡处理。 要求: 利用直方图均衡算法处理lena_salt图像 版本1:CPU实现 版本2:GPU实现  实验步骤一 软件设计分析: 数据类型: 根据实验要求,本实验的数据类型为一个256*256*8的整型矩阵,其中元素的值为256*256个0-255的灰度值。 存储方式: 图像在内存中

图像处理:基于直方图矫正的图像色彩均衡

from itertools import chainimport cv2import osimport numpy as npimport datetimeclass BrightnessBalance:def __init__(self):passdef arrayToHist(self,gray):'''计算灰度直方图,并归一化:param gray_path::return:'''

《Nginx 负载均衡详解》

一、引言 在当今互联网时代,随着业务的不断发展和用户量的持续增长,单一服务器往往难以满足高并发的访问需求。为了提高系统的可用性、可靠性和性能,负载均衡技术应运而生。Nginx 作为一款高性能的 Web 服务器和反向代理服务器,提供了强大的负载均衡功能。本文将深入探讨 Nginx 负载均衡的原理、配置方法、算法以及实际应用中的注意事项,帮助读者更好地理解和运用 Nginx 负载均衡技术。

Redis 集群:如何实现数据的高效分片与负载均衡

Redis 集群:如何实现数据的高效分片与负载均衡 一 . 基本概念二 . 数据分片算法2.1 哈希求余算法2.2 一致性哈希算法2.3 哈希槽分区算法核心思路Redis 集群中最多只能有 16384 个分片吗 ?为什么一定要是 16384 个槽位 ? 三 . 基于 docker 进行集群的搭建3.1 创建目录和配置3.2 编写 generate.sh编写脚本脚本含义 3.3 编写 doc