[每周一更]-(第87期):主流软件负载均衡器对比(LVS、Nginx、HAproxy)

news2025/1/23 21:16:56

在这里插入图片描述

负载均衡的实现方式一般来说有以下三种:

基于DNS负载均衡:直接通过DNS来实现负载均衡。优点是非常简单,缺点是调整后不知道啥时生效(当然正常情况下几十分钟,长的也可能更长)

基于硬件负载均衡:购买硬件,也就是我们常常说的F5(F5 Network Big-IP),不过F5就贵一般来说单台硬件也得几十万块,要是搞个双机,多机就更贵了

基于软件负载均衡:基于软件的方式也非常多,类似几个主流LVS、Nginx、HAproxy(当然IBM也有个HIS),接下来就针对以下几种具体说明:

三大主流软件负载均衡器对比(LVS、Nginx、HAproxy)

LVS:

    1. 抗负载能力强,性能高,能达到F5的60%,对内存和CPU资源消耗比较低
    1. 工作在网络4层,通过VRRP协议(仅作代理之用),具体的流量是由linux内核来处理,因此没有流量的产生。
    1. 稳定,可靠性高,自身有完美的热备方案(Keepalived+lvs)
    1. 不支持正则处理,不能做动静分离。
    1. 支持多种负载均衡算法:rr(轮询),wrr(带权轮询)、lc(最小连接)、wlc(带权最小连接)
    1. 配置相对复杂,对网络依赖比较大,稳定性很高。
    1. LVS工作模式有4种:
      (1) nat 地址转换
      (2) dr 直接路由
      (3) tun 隧道
      (4) full-nat
  1. 工作在网络4层,相对性能上较高 (网络的七层模式:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层)

Nginx:

    1. 工作在网络7层,可以针对http应用做一些分流的策略,比如针对域名,目录结构
    1. Nginx对网络的依赖较小,理论上能ping通就能进行负载功能
    1. Nginx安装配置比较简单,测试起来很方便
    1. 也可以承担较高的负载压力且稳定,nginx是为解决c10k问题而诞生的
    1. 对后端服务器的健康检查,只支持通过端口来检测,不支持通过url来检测
    1. Nginx对请求的异步处理可以帮助节点服务器减轻负载压力
    1. Nginx仅能支持http、https和Email协议,这样就在适用范围较小。
    1. 不支持Session的直接保持,但能通过ip_hash来解决。对Big request header的支持不是很好。
    1. Nginx还能做Web服务器即Cache功能。

HAProxy:

    1. 支持两种代理模式:TCP(四层)和HTTP(七层),支持虚拟主机;
    1. 能够补充Nginx的一些缺点比如Session的保持,Cookie的引导等工作
    1. 支持url检测后端的服务器出问题的检测会有很好的帮助。
    1. 更多的负载均衡策略比如:动态加权轮循(Dynamic Round Robin),加权源地址哈希(Weighted Source -Hash),加权URL哈希和加权参数哈希(Weighted Parameter Hash)已经实现
    1. 单纯从效率上来讲HAProxy更会比Nginx有更出色的负载均衡速度。
    1. HAProxy可以对Mysql进行负载均衡,对后端的DB节点进行检测和负载均衡。
    1. 支持负载均衡算法:Round-robin(轮循)、Weight-round-robin(带权轮循)、source(原地址保持)、RI(请求URL)、rdp-cookie(根据cookie)
  1. 不能做Web服务器即Cache。

三大主流软件负载均衡器适用业务场景:

  1. 网站建设初期,可以选用Nginx、HAProxy作为反向代理负载均衡(流量不大时,可以不选用负载均衡),因为其配置简单,性能也能满足一般业务场景。如果考虑到负载均衡器是有单点问题,可以采用Nginx+Keepalived/HAproxy+Keepalived避免负载均衡器自身的单点问题。
  2. 网站并发到达一定程度后,为了提高稳定性和转发效率,可以使用lvs,毕竟lvs比Nginx/HAProxy要更稳定,转发效率也更高。
    注:nginx与HAProxy比较:nginx只支持七层,用户量最大,稳定性比较可靠。Haproxy支持四层和七层,支持更多的负载均衡算法,支持session等。
衡量负载均衡器好坏的几个重要的因素:
    1. 会话率 :单位时间内的处理的请求数
    1. 会话并发能力:并发处理能力
    1. 数据率:处理数据能力
负载均衡的策略
  • 轮询策略
  • 负载度策略
  • 响应策略
  • 哈希策略

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1454511.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

三勾点餐系统源码,java后台+微信小程序 实现完整的餐厅点餐

三勾点餐系统基于javaspringbootelement-plusuniapp打造的面向开发的小程序商城,方便二次开发或直接使用,可发布到多端,包括微信小程序、微信公众号、QQ小程序、支付宝小程序、字节跳动小程序、百度小程序、android端、ios端。 功能介绍 1.…

(22.12.20)matlab2022+yalmip+cplex安装教程,win11 x64

前言 Hi,你好!最近刚刚更换新的电脑设备,安装软件时尽量选择最新版本,但也遇到了大大小小的安装问题,这里把踩到的坑一并总结出来,给出一份还算合理的MATLAByalmipCPLEX安装教程(win11)。 MAT…

Code Composer Studio (CCS) - Build All

Code Composer Studio [CCS] - Build All 1. Build AllReferences 1. Build All Project -> Build All (Ctrl B) References [1] Yongqiang Cheng, https://yongqiang.blog.csdn.net/

LeetCode LCR 085. 括号生成

题目链接https://leetcode.cn/problems/IDBivT/description/ 正整数 n 代表生成括号的对数&#xff0c;请设计一个函数&#xff0c;用于能够生成所有可能的并且 有效的 括号组合。 class Solution {public List<String> generateParenthesis(int n) {List<String>…

Ubuntu开启SSH远程登录

正文共&#xff1a;555 字 13 图&#xff0c;预估阅读时间&#xff1a;1 分钟 很久很久之前&#xff0c;我们装了一台Ubuntu&#xff08;66%的经验丰富开发者和69%的学生更喜欢的Ubuntu的安装初体验&#xff09;&#xff0c;今天翻出来准备重新使用一下&#xff0c;突然发现它竟…

boost搜索引擎项目

目录 一、对数据源的数据清洗(去标签)操作&#xff1a;parse.cc二、根据去标签之后的干净的数据构建正排和倒排索引&#xff1a;index.hpp三、提供搜索功能&#xff1a;searcher.hpp四、放公用方法的头文件(包括boost库中的一些方法以及jieba分词的方法)&#xff1a;util.hpp五…

【IntelliJ IDEA】IDEA自动生成serialVersionUID的办法

digest&#xff1a;实体对象实现了java.io.Serializable接口后&#xff0c;一般都会提供一个serialVersionUID一做版本区分。在IDEA里&#xff0c;可以通过一些设置&#xff0c;帮助我们快速生成serialVersionUID。 1.IDEA设置序列化类检测序列化标识 File --> Settings --…

王力宏胜诉,事实胜于雄辩,真相终将大白。

♥ 为方便您进行讨论和分享&#xff0c;同时也为能带给您不一样的参与感。请您在阅读本文之前&#xff0c;点击一下“关注”&#xff0c;非常感谢您的支持&#xff01; 文 |猴哥聊娱乐 编 辑|徐 婷 校 对|侯欢庭 好的&#xff0c;以下是对“2月5日&#xff0c;王力宏工作室在…

中小学信息学奥赛CSP-J认证 CCF非专业级别软件能力认证-入门组初赛模拟题第三套(阅读程序题)

CSP-J入门组初赛模拟题第三套 二、阅读程序题 (程序输入不超过数组或字符串定义的范围&#xff0c;判断题正确填√错误填X;除特殊说明外&#xff0c;判断题 1.5分&#xff0c;选择题3分&#xff0c;共计40分) 第一题 1 #include<iostream> 2 #include<cstdio> …

第 124 场 LeetCode 双周赛题解

A 相同分数的最大操作数目 I 模拟 class Solution { public:int maxOperations(vector<int> &nums) {int n nums.size();int s nums[0] nums[1];int res 1;for (int i 2; i 1 < n; i 2)if (nums[i] nums[i 1] s)res;elsebreak;return res;} };B 进行操作…

kali无线渗透之蓝牙技术

“传统蓝牙”规范在2.4GHz的ISM波段上定义了79个信道&#xff0c;每个信道有1MHz的带宽。设备在这些信道中以每秒1600次的频率进行跳转&#xff0c;换句话说&#xff0c;就是每微秒625次跳转。这项信道跳转技术被称为“跳频扩频”(Frequency HoppingSpread Spectrum&#xff0c…

文件上传漏洞--Upload-labs--Pass06--空格绕过

一、什么是空格绕过 在Windows系统中&#xff0c;Windows特性会自动删除文件后缀名后的空格&#xff0c;这使我们看 .php 和 .php 二者没有任何区别&#xff0c;实际上二者是有区别的。若网页源码没有使用 trim()函数 来进行去除空格的操作&#xff0c;就会使网页存在 空格绕…

尾矿库排洪系统结构仿真APP助力尾矿库本质安全

1、背景介绍 尾矿库作为重大危险源之一&#xff0c;在国际灾害事故排名中位列第18位&#xff0c;根据中国钼业2019年8月刊《中国尾矿库溃坝与泄漏事故统计及成因分析》的统计&#xff0c;在46起尾矿库泄漏事故中&#xff0c;由于排洪设施导致的尾矿泄漏事故占比高达1/3&#x…

基于SSM+Vue的电影购票系统

末尾获取源码作者介绍&#xff1a;大家好&#xff0c;我是墨韵&#xff0c;本人4年开发经验&#xff0c;专注定制项目开发 更多项目&#xff1a;CSDN主页YAML墨韵 学如逆水行舟&#xff0c;不进则退。学习如赶路&#xff0c;不能慢一步。 目录 一、项目简介 二、开发技术与环…

springboot176基于Spring Boot的装饰工程管理系统

简介 【毕设源码推荐 javaweb 项目】基于springbootvue 的 适用于计算机类毕业设计&#xff0c;课程设计参考与学习用途。仅供学习参考&#xff0c; 不得用于商业或者非法用途&#xff0c;否则&#xff0c;一切后果请用户自负。 看运行截图看 第五章 第四章 获取资料方式 **项…

SG5032EAN规格书

SG5032EAN 晶体振荡器结合了相位锁定环&#xff08;PLL&#xff09;技术和AT切割晶体单元&#xff0c;提供了73.5 MHz至700 MHz的广泛频率范围&#xff0c;以满足高速数字应用的需求。高性能的LV-PECL输出&#xff0c;2.5V和3.3V电源电压&#xff0c;可灵活适配不同设计的电源需…

keep-alive 的简单使用

vue-router 的嵌套与模块化 router 实例中增加 children 属性&#xff0c;形成层级效果。App.vue 中的 router-view 承载的是 router 实例最外层的路由对象&#xff0c;如 /login、/404 等PageHome.vue 中的 router-view 承载的是 children 中的路由对象&#xff0c;如 /home、…

效果图渲染为什么找「瑞云渲染」瑞云渲染邀请码WFQB

效果图的渲染可以通过个人的电脑&#xff0c;也可以通过第三方的云渲染平台&#xff0c;两者之间的区别很多人都知道是什么。如果用户需要使用个人电脑&#xff0c;通常需要搭配高性能的硬件&#xff0c;然而硬件中最贵的当数CPU、GPU&#xff0c;云渲染平台则是通过租用高配置…

【漏洞复现-通达OA】通达OA get_datas 存在前台SQL注入漏洞

一、漏洞简介 通达OA(Office Anywhere网络智能办公系统)是由北京通达信科科技有限公司自主研发的协同办公自动化软件,是与中国企业管理实践相结合形成的综合管理办公平台。通达OA get_datas 存在前台SQL注入漏洞,攻击者可通过该漏洞获取数据库敏感信息。 二、影响版本 ●…

Acwing 5471. 数对推理【思维+模拟】

原题链接&#xff1a;https://www.acwing.com/problem/content/5474/ 题目描述&#xff1a; 奶牛贝茜和奶牛贝蒂各有一个整数数对。 每个数对都包含两个 1∼9 之间的不同整数。 这两个数对恰好包含一个公共数&#xff0c;即恰好有一个整数同时包含于这两个数对。 初始时&a…