当前位置: 首页 > news >正文

负载均衡--Haproxy

haproxy 他也是常用的负载均衡软件

nginx 支持四层转发,七层转发

haproxy也可以四层和七层转发

haproxy:法国人开发的威利塔罗在2000年基于C语言开发的一个开源软件

可以支持一万以上的并发请求

高性能的tcp和http负载均衡2.4 1.5.9

haproxy:主要用于高并发的web站点,工作原理和nginx一样,lvs都一样

支持的功能

1、tcp和http的反向代理

2、https的代理配置

3、可以针对http请求添加Cookie,转发到后端服务器(添加缓存)

4、也支持主备服务器切换(keepalived)

5、基于端口的实时监控

6、压缩响应报文

haproxy的特点

1、可靠性和稳定性非常好,可以和硬件(f5 big)负载均衡的硬件设备相媲美

2、同时维护40000-50000个并发连接,单位时间内处理最大请求数20000个

3、支持8中负载均衡算法,但是haproxy不带缓存功能,但是可以支持会话保持

4、也支持配置虚拟主机

haproxy的负载均衡算法

1、roundrobin rr 轮询

2、static-rr wrr 加权轮询

3、leastconn 最小连接数

4、source 根据请求的源ip进行调度 sh

5、uri 根据请求地址进行调度

6、url param 根据URL的参数实现调度

7、hdr(name)表示根据http的请求头锁定每一次http的请求

8、rdp-Cookie(name)表示根据Cookie的名称来锁定每一次请求

haproxy:单节点部署,单实例运行,代理服务器出现故障,整个负载集群全部不可用

haproxy是一个无状态的负载均衡器,没缓存,也没有会话保持,靠应用程序实现会话保持,状态不是保存在代理服务器,而在后端服务器,或者依靠cookie

日志问题:haproxy的日志比较简单,只提供基本的请求日志和错误日志,需要更高级的日志,人工自定义

实验

1、搭建

2、实现七层 实现四层

3、如何实现haproxy的日志单独存放

准备阶段

准备两台nginx

一台haproxy

一台客户机

haproxy配置(实现七层)

关闭防火墙和安全机制

解压源码包

安装依赖环境

yum install -y pcre-devel bzip2-devel gcc gcc-c++ make

进入haproxy配置

编译

make TARGET=linux2628 ARCH=X86_64

安装

make install

在etc目录下创建haproxy文件

mkdir /etc/haproxy

复制配置文件到创建的目录下

cp haproxy.cfg /etc/haproxy

查看配置文件

# this config needs haproxy-1.1.28 or haproxy-1.2.1global#全局配置 定义全局参数log/dev/log local0 info#系统日志log/dev/log local0 notice #修改日志 的存放路径#log loghost    local0 infomaxconn 4096#支持的最大连接数10240 一定要改#chroot /usr/share/haproxyuid 99gid 99daemonnbproc 6#可以同时并发进程数,要么和cpu相同,要么#debug#quietdefaultslog     global#引入全局配置日志格式mode    http#模式为http七层option  httplog#日志类别是http格式的日志option  dontlognull#不记录健康检查的日志信息retries 3#检查节点服务器的失败次数3次失败就认为节点服务器失效redispatch#服务器的负载很高maxconn 2000#contimeout     5000#clitimeout     50000#srvtimeout      50000timeout http-request 10stimeout http-request 10s#默认http请求的超时时间timeout queue 1m#默认队列超时时间timeout connect 10s#默认连接超时的时间timeout client 1m#客户端的超时时间timeout server 1m#服务端的超时时间timeout http-keep-alive 10s#默认会话保持的超时时间timeout check 10s#心跳检查的超时时间listen test 0.0.0.0:80option httpchk GET /index.htmlbalance roundrobinserver inst1 20.0.0.41:80 check inter 2000 fall 3 server inst2 20.0.0.42:80 check inter 2000 fall 3 
#check inter 开启对后端服务器的健康检查,检查时间间隔2000毫秒
#fall 3 表示连续3次检测不到后端服务器的心跳线,则认为该节点失效

切换到opt/haproxy目录下

复制haproxy的启动文件

cp haproxy.init /etc/init.d/haproxy

给启动文件权限

chmod 777 /etc/init.d/haproxy

chkconfig --add /etc/init.d/haproxy

建立软连接

In -s /usr/local/sbin/haproxy /usr/sbin/

重启服务

nginx修改一下一下测试文件就可以了

测试

加权重

在haproxy的配置文件中

listen test 0.0.0.0:80option httpchk GET /index.htmlbalance roundrobinserver  app1_1 inst1 20.0.0.40:80 check inter 2000  fall 3 weight 4server  app1_1 inst2 20.0.0.40:80 check inter 2000  fall 3 weihgt 3
#check inter 开启对后端服务器的健康检查,检查时间间隔2000毫秒
#fall 3 表示连续3次检测不到后端服务器的心跳线,则认为该节点失效

haproxy配置(实现四层)

注释掉刚刚配置的七层配置

在后面添加

frontend test
bind *.80
mode tcp
default_backend testbackend test
mode tcp
balance static-rr
server server1 20.0.0.41:80 check inter 2000 fall 3 weight 3
server server1 20.0.0.42:80 check inter 2000 fall 3 weight 3

重启服务

客户机测试

模拟故障 停止nginx1服务

测试

如何实现haproxy的日志单独存放

vim/etc/rsyslog.d/haproxy.conf

if ($programname == 'haproxy' and  $syslogseverity-text == 'info')then -/var/log/haproxy/haproxy-info.log&~#&~ 表示rsyslog服务处理完指定的信息,把日志写入到日志文件之后,rsyslog不再处理其他的信息if ($programname == 'haproxy' and  $syslogseverity-text == 'notice')then -/var/log/haproxy/haproxy-notice.log&~

相关文章:

负载均衡--Haproxy

haproxy 他也是常用的负载均衡软件 nginx 支持四层转发,七层转发 haproxy也可以四层和七层转发 haproxy:法国人开发的威利塔罗在2000年基于C语言开发的一个开源软件 可以支持一万以上的并发请求 高性能的tcp和http负载均衡2.4 1.5.9 haproxy&#…...

股票价格预测 | 融合CNN和Transformer以提升股票趋势预测准确度

一 本文摘要 股票价格往往很难预测,因为我们很难准确建模数据点之间的短期和长期时间关系。卷积神经网络(CNN)擅长找出用于建模短期关系的局部模式。然而,由于其有限的观察范围,CNN无法捕捉到长期关系。相比之下,Transformer可以学习全局上下文和长期关系。本文提出了一…...

QMI8658A_QMC5883L(9轴)-EVB 评估板

1. 描述 QMI8658A_QMC5883L(9轴)-EVB 评估板是一款功能强大的9轴IMU传感器,它利用了QMA8658A 内置的3轴加速度计和3轴陀螺仪,同时结合QMC5883L的3轴地磁数据,来测量物体在三维空间中的角速度和加速度(严格意义上的IMU只为用户提供…...

vue2+antd——实现动态菜单路由功能——基础积累

vue2antd——实现动态菜单路由功能——基础积累 实现的需求:效果图:登录接口处添加以下代码loadRoutes方法内容如下: 最近在写后台管理系统,遇到一个需求就是要将之前的静态路由改为动态路由,使用的后台框架是&#xf…...

代码随想录算法训练营第三十八天丨 动态规划part01

动态规划理论基础 动态规划刷题大纲 什么是动态规划 动态规划,英文:Dynamic Programming,简称DP,如果某一问题有很多重叠子问题,使用动态规划是最有效的。 所以动态规划中每一个状态一定是由上一个状态推导出来的&a…...

关于集合遇到的坑

public void invoke(ComparisonSpotEvaluationResultsExcel comparisonSpotEvaluationResultsExcel, AnalysisContext analysisContext) {/*** 记录行号码*/ReadRowHolder readRowHolder analysisContext.readRowHolder();Integer rowIndex readRowHolder.getRowIndex();Stri…...

需要下微信视频号视频的小伙伴们看过来~

随着视频号的热度越来越大,下载视频号视频的需求也开始增加啦,今天给大家给分享几个简单实用的下载方法,总有一个你能用上的! 一、犀牛视频下载 犀牛视频下载器可以直接解析并下载视频号短视频。您只需转发视频到机器人即可下载。…...

测试工具:hurl

文章目录 Hurlinstallstartdemo 功能使用变量Capturing values 捕获值Asserts 断言生成报告 Hurl 官网:https://hurl.dev/ Hurl 是一个命令行工具,它运行以简单的纯文本格式定义的 HTTP 请求。 它可以发送请求、捕获值并评估对标头和正文响应的查询 i…...

RateLimiter限流

使用场景 限流是高并发的处理方法之一。 高并发处理方案:  缓存:缓存的目的是提升系统访问速度和增大系统处理容量。 降级:降级是当服务出现问题或者影响到核心流程时,需要暂时屏蔽掉,待高峰或者问题解决后再打开。…...

PMP适合哪些人去考?

许多人都在考虑是否适合考取PMP证书,我来解答你的疑惑:无论是IT、建筑、制药、制造业、电信、金融还是通信领域,PMP证书都得到广泛认可。虽然IT行业目前占比最大,但近几年T业比重下降,制造业、金融、能源和建筑工程等的…...

钡铼技术 工控机中的X86和ARM处理器:哪个更具可扩展性?

X86和ARM是两种不同的处理器架构,它们在工控机中的应用也有所不同。 X86架构的处理器是英特尔公司和AMD公司生产的,它们主要应用于个人电脑和服务器等领域。X86架构的处理器具有良好的通用性和兼容性,可以运行各种操作系统和应用软件。X86架…...

软考 系统架构设计师系列知识点之软件构件(3)

接前一篇文章:软考 系统架构设计师系列知识点之软件构件(2) 所属章节: 第2章. 计算机系统基础知识 第3节. 计算机软件 2.3.7 软件构件 (2)J2EE(补充知识) J2EE核心组成&#xff1a…...

中科驭数亮相2023中国移动全球合作伙伴大会

10月11-13日,2023中国移动全球合作伙伴大会开幕。中科驭数作为移动云COCA生态合作伙伴,受邀出席“算网融百业数智赢未来”政企分论坛,高级副总裁张宇上台参与移动云OpenCOCA开源项目和《OpenCOCA白皮书》的重磅发布仪式,助力构建未…...

WebGIS国产化(信创)研发流程一:数据库的调研与介绍

眼下互联网产业国产化已经成为不可阻挡的趋势,WebGIS的开发工作也不例外,越来越依靠纯国产的软件和产品,甚至是框架。企业中使用国产软件和产品的项目占比也在不断升高,我将分享一系列的文章给大家,来共同研究GIS的国产…...

[Shell] ${} 的多种用法

文章目录 解释代码 解释 在Shell脚本中,${} 是一种变量替换语法。它用于获取和操作变量的值。 具体来说,${} 可以用来执行以下操作: 变量引用:${variable} 表示引用变量 variable 的值。 变量默认值:${variable:-de…...

基于SpringBoot的社区医院管理系统设计与实现

目录 前言 一、技术栈 二、系统功能介绍 管理员功能实现 用户信息管理 病例信息管理 家庭医生管理 药品信息管理 三、核心代码 1、登录模块 2、文件上传模块 3、代码封装 前言 信息数据从传统到当代,是一直在变革当中,突如其来的互联网让传统的…...

Spring的执行流程与Bean的生命周期

目录 一、Spring的执行流程(生命周期) 二、Bean的生命周期 一、Spring的执行流程(生命周期) 首先在Spring的执行过程中会先启动容器,这里是将配置文件进行加载。根据配置文件完成Bean的实例化,比如是配置的…...

使用 SQL 的方式查询消息队列数据以及踩坑指南

背景 为了让业务团队可以更好的跟踪自己消息的生产和消费状态,需要一个类似于表格视图的消息列表,用户可以直观的看到发送的消息;同时点击详情后也能查到消息的整个轨迹。 消息列表 点击详情后查看轨迹 原理介绍 由于 Pulsar 并没有关系型数…...

拿下国家级信创认证 中科驭数KPU SWIFT-2200N成为国内首款满足金融业严苛要求的DPU产品

近日,中科驭数KPU SWIFT-2200N低时延DPU卡,在中国人民银行旗下金融信创生态实验室完成测试并取得测试报告,这意味着中科驭数低时延网络代表性产品的应用领域从证券进一步拓展到了银行业,成为国内首款满足金融行业严苛要求的DPU产品…...

centos怎么禁用和关闭selinux

要禁用和关闭SELinux(Security-Enhanced Linux)在CentOS上,请按照以下步骤进行: 请注意:禁用SELinux会减少系统的安全性,因此只有在确切知道自己在做什么并且出于特定目的时才应该这样做。 1.打开终端并以超级用户(root)身份登录&…...

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…...

云计算——弹性云计算器(ECS)

弹性云服务器:ECS 概述 云计算重构了ICT系统,云计算平台厂商推出使得厂家能够主要关注应用管理而非平台管理的云平台,包含如下主要概念。 ECS(Elastic Cloud Server):即弹性云服务器,是云计算…...

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする 1、前言(1)情况说明(2)工程师的信仰2、知识点(1) にする1,接续:名词+にする2,接续:疑问词+にする3,(A)は(B)にする。(2)復習:(1)复习句子(2)ために & ように(3)そう(4)にする3、…...

Java 8 Stream API 入门到实践详解

一、告别 for 循环&#xff01; 传统痛点&#xff1a; Java 8 之前&#xff0c;集合操作离不开冗长的 for 循环和匿名类。例如&#xff0c;过滤列表中的偶数&#xff1a; List<Integer> list Arrays.asList(1, 2, 3, 4, 5); List<Integer> evens new ArrayList…...

Python实现prophet 理论及参数优化

文章目录 Prophet理论及模型参数介绍Python代码完整实现prophet 添加外部数据进行模型优化 之前初步学习prophet的时候&#xff0c;写过一篇简单实现&#xff0c;后期随着对该模型的深入研究&#xff0c;本次记录涉及到prophet 的公式以及参数调优&#xff0c;从公式可以更直观…...

Java 加密常用的各种算法及其选择

在数字化时代&#xff0c;数据安全至关重要&#xff0c;Java 作为广泛应用的编程语言&#xff0c;提供了丰富的加密算法来保障数据的保密性、完整性和真实性。了解这些常用加密算法及其适用场景&#xff0c;有助于开发者在不同的业务需求中做出正确的选择。​ 一、对称加密算法…...

现代密码学 | 椭圆曲线密码学—附py代码

Elliptic Curve Cryptography 椭圆曲线密码学&#xff08;ECC&#xff09;是一种基于有限域上椭圆曲线数学特性的公钥加密技术。其核心原理涉及椭圆曲线的代数性质、离散对数问题以及有限域上的运算。 椭圆曲线密码学是多种数字签名算法的基础&#xff0c;例如椭圆曲线数字签…...

根据万维钢·精英日课6的内容,使用AI(2025)可以参考以下方法:

根据万维钢精英日课6的内容&#xff0c;使用AI&#xff08;2025&#xff09;可以参考以下方法&#xff1a; 四个洞见 模型已经比人聪明&#xff1a;以ChatGPT o3为代表的AI非常强大&#xff0c;能运用高级理论解释道理、引用最新学术论文&#xff0c;生成对顶尖科学家都有用的…...

select、poll、epoll 与 Reactor 模式

在高并发网络编程领域&#xff0c;高效处理大量连接和 I/O 事件是系统性能的关键。select、poll、epoll 作为 I/O 多路复用技术的代表&#xff0c;以及基于它们实现的 Reactor 模式&#xff0c;为开发者提供了强大的工具。本文将深入探讨这些技术的底层原理、优缺点。​ 一、I…...

华为OD机考-机房布局

import java.util.*;public class DemoTest5 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseSystem.out.println(solve(in.nextLine()));}}priv…...