负载均衡--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方法内容如下: 最近在写后台管理系统,遇到一个需求就是要将之前的静态路由改为动态路由,使用的后台框架是…...
代码随想录算法训练营第三十八天丨 动态规划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核心组成:…...
中科驭数亮相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)身份登录&…...
Linux链表操作全解析
Linux C语言链表深度解析与实战技巧 一、链表基础概念与内核链表优势1.1 为什么使用链表?1.2 Linux 内核链表与用户态链表的区别 二、内核链表结构与宏解析常用宏/函数 三、内核链表的优点四、用户态链表示例五、双向循环链表在内核中的实现优势5.1 插入效率5.2 安全…...
【Linux】C语言执行shell指令
在C语言中执行Shell指令 在C语言中,有几种方法可以执行Shell指令: 1. 使用system()函数 这是最简单的方法,包含在stdlib.h头文件中: #include <stdlib.h>int main() {system("ls -l"); // 执行ls -l命令retu…...
家政维修平台实战20:权限设计
目录 1 获取工人信息2 搭建工人入口3 权限判断总结 目前我们已经搭建好了基础的用户体系,主要是分成几个表,用户表我们是记录用户的基础信息,包括手机、昵称、头像。而工人和员工各有各的表。那么就有一个问题,不同的角色…...
Caliper 配置文件解析:config.yaml
Caliper 是一个区块链性能基准测试工具,用于评估不同区块链平台的性能。下面我将详细解释你提供的 fisco-bcos.json 文件结构,并说明它与 config.yaml 文件的关系。 fisco-bcos.json 文件解析 这个文件是针对 FISCO-BCOS 区块链网络的 Caliper 配置文件,主要包含以下几个部…...
python报错No module named ‘tensorflow.keras‘
是由于不同版本的tensorflow下的keras所在的路径不同,结合所安装的tensorflow的目录结构修改from语句即可。 原语句: from tensorflow.keras.layers import Conv1D, MaxPooling1D, LSTM, Dense 修改后: from tensorflow.python.keras.lay…...
使用LangGraph和LangSmith构建多智能体人工智能系统
现在,通过组合几个较小的子智能体来创建一个强大的人工智能智能体正成为一种趋势。但这也带来了一些挑战,比如减少幻觉、管理对话流程、在测试期间留意智能体的工作方式、允许人工介入以及评估其性能。你需要进行大量的反复试验。 在这篇博客〔原作者&a…...
C++课设:简易日历程序(支持传统节假日 + 二十四节气 + 个人纪念日管理)
名人说:路漫漫其修远兮,吾将上下而求索。—— 屈原《离骚》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 专栏介绍:《编程项目实战》 目录 一、为什么要开发一个日历程序?1. 深入理解时间算法2. 练习面向对象设计3. 学习数据结构应用二、核心算法深度解析…...
rm视觉学习1-自瞄部分
首先先感谢中南大学的开源,提供了很全面的思路,减少了很多基础性的开发研究 我看的阅读的是中南大学FYT战队开源视觉代码 链接:https://github.com/CSU-FYT-Vision/FYT2024_vision.git 1.框架: 代码框架结构:readme有…...
ubuntu中安装conda的后遗症
缘由: 在编译rk3588的sdk时,遇到编译buildroot失败,提示如下: 提示缺失expect,但是实测相关工具是在的,如下显示: 然后查找借助各个ai工具,重新安装相关的工具,依然无解。 解决&am…...
LTR-381RGB-01RGB+环境光检测应用场景及客户类型主要有哪些?
RGB环境光检测 功能,在应用场景及客户类型: 1. 可应用的儿童玩具类型 (1) 智能互动玩具 功能:通过检测环境光或物体颜色触发互动(如颜色识别积木、光感音乐盒)。 客户参考: LEGO(乐高&#x…...
