HAProxy代理TCP(使用HAProxy 为TiDB-Server 做负载均衡)
目录
- 一、使用HAProxy 为TiDB-Server 做负载均衡
- 环境
- 1、创建文件夹
- 2、配置haproxy.cfg
- 3、创建 docker-compose.yaml 文件
- haproxy.cfg 配置说明
- [参照官方文档](https://pingcap.com/docs-cn/v3.0/reference/best-practices/haproxy/ "参照官方文档")
一、使用HAProxy 为TiDB-Server 做负载均衡
安装 docker-compose
环境
- IP: 192.168.180.46
- 系统: CentOS 7
- Core: 8核
- HAProxy版本 2.0.6
| 服务器 | IP | hostname |
|---|---|---|
| HAProxy | 192.168.180.46 | test1 |
| TiDB-Server | 192.168.180.47 | test2 |
| TiDB-Server | 192.168.180.48 | test3 |
| TiDB-Server | 192.168.181.18 | test4 |
1、创建文件夹
mkdir -p /home/tidb/haproxy/config
2、配置haproxy.cfg
cat > /home/tidb/haproxy/config/haproxy.cfg << eric
globalmaxconn 10000 # 最大同时10000连接daemon # 以daemon方式在后台运行defaultslog 127.0.0.1 local0 debug # [emerg, alert, crit, err, warning, notice, info, debug]# mode http # 默认的模式mode { tcp|http|health },tcp是4层,http是7层,health只会返回OKretries 3 # 连接后端服务器失败重试次数,超过3次后会将失败的后端服务器标记为不可用。timeout client 1h # 客户端响应超时 1小时timeout server 1h # server端响应超时 1小时timeout connect 1h # 连接server端超时 1小时timeout check 10s # 对后端服务器的检测超时时间 10秒listen stats # 定义监控页面mode httpbind *:1080 # 绑定容器内的1080端口stats refresh 5s # 每1秒更新监控数据stats uri /stats # 访问监控页面的uristats realm HAProxy\ Stats # 监控页面的认证提示stats auth admin:654321 # 监控页面的用户名和密码frontend tidb_frontmode tcpbind *:4000 # 监听容器内的4000端口default_backend tidb_backbackend tidb_backmode tcpoption tcp-checkbalance roundrobinserver TiDB-Server-48 192.168.180.47:4000 check inter 10s rise 3 fall 3 weight 1server TiDB-Server-49 192.168.180.48:4000 check inter 10s rise 3 fall 3 weight 1
eric
3、创建 docker-compose.yaml 文件
cat > /home/tidb/haproxy/docker-compose.yaml << eric
version: '3.1'services:HAProxy:image: haproxy:2.0.6restart: alwayscontainer_name: HAProxyports:- 4600:4000 # 宿主机端口:容器内端口- 1080:1080volumes:# 容器与宿主机时间同步- /etc/localtime:/etc/localtime- ./config/haproxy.cfg:/usr/local/etc/haproxy/haproxy.cfgenvironment:TIME_ZONE: Asia/Shanghai
eric
查看管理界面: http://192.168.180.46:1080/stats
数据库连接地址: 192.168.180.46:4600
haproxy.cfg 配置说明
globallog 127.0.0.1 local0maxconn 10000 # 最大同时10000连接daemon # 以daemon方式在后台运行nbproc 8 # 开启的haproxy进程数,通常与CPU核数保持一致,开启多进程提高并发处理能力。(可选 调优)cpu-map 1 0 # CPU绑定: 这个配置指令有2个参数,第一参数是进程序号,从1开始。第二个参数是CPU序号,从0开始。(可选 调优)cpu-map 2 1cpu-map 3 2cpu-map 4 3cpu-map 5 4cpu-map 6 5cpu-map 7 6cpu-map 8 7defaults# mode http # 默认的模式mode { tcp|http|health },tcp是4层,http是7层,health只会返回OKretries 3 # 连接后端服务器失败重试次数,超过3次后会将失败的后端服务器标记为不可用。# 超时时间如果设置的太短,会导致应用程序断开连接,建议根据实际情况调整timeout client 30s # 客户端响应超时 30秒timeout server 30s # server端响应超时 30秒timeout connect 5s # 连接server端超时 5秒timeout check 10s # 对后端服务器的检测超时时间 10秒listen stats # 定义监控页面mode httpbind *:1080 # 绑定容器内的1080端口stats refresh 1s # 每1秒更新监控数据stats uri /stats # 访问监控页面的uristats realm HAProxy\ Stats # 监控页面的认证提示stats auth admin:654321 # 监控页面的用户名和密码frontend tidb_frontmode tcpbind *:4000 # 监听容器内的4000端口default_backend tidb_backbackend tidb_backmode tcpoption tcp-check # 这个必须要加,否则健康检查会失败,因为当前使用的是TCP协议,它表示使用TCP协议做检查,而不是使用HTTP或health协议# 8种负载均衡方式1.balance roundrobin # 轮询,软负载均衡基本都具备这种算法2.balance static-rr # 根据权重,建议使用3.balance leastconn # 最少连接者先处理,建议使用4.balance source # 根据请求源IP,建议使用5.balance uri # 根据请求的URI6.balance url_param, # 根据请求的URl参数'balance url_param' requires an URL parameter name7.balance hdr(name) # 根据HTTP请求头来锁定每一次HTTP请求8.balance rdp-cookie(name) # 根据据cookie(name)来锁定并哈希每一次TCP请求balance roundrobin # roundrobin 轮询方式# 健康检查:1.inter: 时间间隔10秒2.rise: 重试三次3.fall: 失败三次连接状态将变为DOWN4.weight: 权重1server TiDB-Server-test2 192.168.180.47:4000 check inter 10s rise 3 fall 3 weight 1server TiDB-Server-test3 192.168.180.48:4000 check inter 10s rise 3 fall 3 weight 2server TiDB-Server-test4 192.168.181.18:4000 check inter 10s rise 3 fall 3 weight 3
参照官方文档
相关文章:
HAProxy代理TCP(使用HAProxy 为TiDB-Server 做负载均衡)
目录 一、使用HAProxy 为TiDB-Server 做负载均衡环境1、创建文件夹2、配置haproxy.cfg3、创建 docker-compose.yaml 文件haproxy.cfg 配置说明[参照官方文档](https://pingcap.com/docs-cn/v3.0/reference/best-practices/haproxy/ "参照官方文档") 一、使用HAProxy …...
全新自适应导航网模板 导航网系统源码 网址导航系统源码 网址目录网系统源码
高价值目录网导航网整站源码 | 2999元价值,最新版本源码下载推荐 1、导航网一键获取目标站SEO信息,7.5版本增加会员中心一键获取网站信息网站权重,增加小程序提交发布,全新自适应模板; 2、可设置游客提交、游客提交人工审核,会员免审提交,会员提交人工审核,VIP会员免…...
无人直播间
失败!! 采用 ffmpeg 技术进行推流 推流代码: 【需要将rtmp替换为你的推流地址】 ffmpeg -re -stream_loop -1 -i "rain.mp4" -c copy -f flv ""推流地址获取 以哔哩哔哩为例 点击下方链接 开播设置 - 个人中心 - …...
Linux 服务器防止 ssh 暴力密码登录破解之使用 fail2ban
前言,网络安全越来越重要,如何保证网站安全至关重要,在使用 Linux 服务器时,如果未设置有效安全登录屏障,每日将会有数百甚至数万次的密码暴力尝试登录,本篇章将介绍两种 Linux 登录安全防护 一࿱…...
第十四届蓝桥杯大赛软件赛决赛 C/C++ 大学 B 组 试题 D: 合并数列
[蓝桥杯 2023 国 B] 合并数列 【问题描述】 小明发现有很多方案可以把一个很大的正整数拆成若干正整数的和。他采取了其中两种方案,分别将他们列为两个数组 { a 1 , a 2 , ⋯ a n } \{a_1, a_2, \cdots a_n\} {a1,a2,⋯an} 和 { b 1 , b 2 , ⋯ b m } \{b…...
ChatGPT必应联网功能正式上线
今日凌晨发现,ChatGPT又支持必应联网了!虽然有人使用过newbing这个阉割版的联网GPT4,但官方版本确实更加便捷好用啊! 尽管 ChatGPT 此前已经展现出了其他人工智能模型无可比拟的智能,但由于其训练数据的限制ÿ…...
DETR中的问题汇总(代码)
一、讲述一下torch.tensor()和torch.as_tensor()的区别 torch.tensor() 和 torch.as_tensor() 都是 PyTorch 中用于创建张量(Tensor)的函数,但它们有一些区别,主要涉及到张量的内存管理方式和数据拷贝。以下是它们的主要区别&…...
华为云云耀云服务器L实例评测|使用华为云耀云服务器L实例的CentOS部署Docker并运行Tomcat应用
目录 前言 步骤1:登录到华为云耀云服务器L实例 步骤2:安装Docker 并验证Docker安装 步骤3:拉取Tomcat镜像并运行Tomcat容器 步骤4:放行8080端口 步骤5:访问tomcat 步骤6:管理Tomcat容器 小结 前言 …...
Java基础---第八篇
系列文章目录 文章目录 系列文章目录一、a=a+b与a+=b有什么区别吗?二、try catch finally,try里有return,finally还执行么?三、Excption与Error包结构一、a=a+b与a+=b有什么区别吗? += 操作符会进行隐式自动类型转换,此处a+=b隐式的将加操作的结果类型强制转换为持有结果…...
(附源码)springboot体检预约APP 计算机毕设16370
目 录 摘要 1 绪论 1.1开发背景 1.2研究现状 1.3springboot框架介绍 1.4论文结构与章节安排 2 Springboot体检预约APP系统分析 2.1 可行性分析 2.1.1 技术可行性分析 2.1.2 经济可行性分析 2.1.3 操作可行性分析 2.2 系统流程分析 2.2.1 数据添加流程 2.2.2 数据…...
Spring的注解开发-@Component的三个衍生注解
由于JavaEE开发是分层的(三层架构体系,控制层、服务层、持久层),为了每层Bean标识的注解语义化更加明确,Component又衍生出以下三个注解 注解用途Repository(仓库)标识持久层(DAO&am…...
无线WIFI工业路由器可用于楼宇自动化
钡铼4G工业路由器支持BACnet MS/TP协议。BACnet MS/TP协议是一种用于工业自动化的开放式通信协议,被广泛应用于楼宇自动化、照明控制、能源管理等领域。通过钡铼4G工业路由器的支持,可以使设备间实现高速、可靠的数据传输,提高自动化水平。 钡…...
基于长短期神经网络铜期货价格预测,基于LSTM的铜期货价格预测,LSTM的详细原理
目录 背影 摘要 代码和数据下载:基于长短期神经网络的铜期货开盘价格预测,基于长短期神经网络的铝价格期货开盘价预测(代码完整,数据齐全)资源-CSDN文库 https://download.csdn.net/download/abc991835105/88230626 LSTM的基本定义 LSTM实现的步骤 基于长短期神经网络LSTM…...
300元开放式耳机推荐哪个、最值得入手的开放式耳机推荐
开放式耳机成为今年耳机界的主流了,如果你还不曾体验过开放式耳机,那真的是太OUT了!相对于传统的入耳式耳机对听力的损伤,开放式耳机有着很长远的益处,能够很好的保护听力。随着技术的成熟,开放式耳机也在音…...
嵌入式学习笔记(37) S5PV210的PWM定时器
7.3.1为什么叫PWM定时器 (1)叫定时器说明它本质上的原理是定时器。 (2)叫PWM定时器,是因为这个定时器天然是用来产生PWM波形的。 7.3.2 PWM定时器介绍 (1)S5PV210有5个PWM定时器。其中0、1、2、3各自对应一个外部GPIO,可以通过这些对应的GPIO产生PWM…...
python工具-base64-zip-json
python工具-base64-zip-json # 先 base64 解码,再 zip 解码,再打印 json 内容,支持多个字符串解码import sys import base64 import zlib import jsondef enc_json_zip_base64(input_data):json_object json.loads(input_data)zip_data zl…...
Centos 7安装pm2 , 操作等常用命令
Centos 7安装pm2 1、首先需要安装node,node安装教程前一篇已经说了,是安装pm2 [rootlocalhost ~]# npm install -g pm2 2、pm2 命令参考 复制代码 2.1 启动进程/应用 pm2 start bin/www 或 pm2 start app.js 2.2 重命名进程/应用 pm2 start app.js -…...
vue 实现弹出菜单,解决鼠标点击其他区域的检测问题
弹出菜单应该具有的功能,当鼠标点击其他区域时,则关闭该菜单。 问题来了,怎么检测鼠标点击了其他区域而不是当前菜单? 百度“JS检测区域外的点击事件”,会发现有很多方法,有递归检测父元素,有遍…...
经典网络解(三) 生成模型VAE | 自编码器、变分自编码器|有监督,无监督
文章目录 1 有监督与无监督2 生成模型2.1 重要思路 3 VAE编码器怎么单独用?解码器怎么单独用?为什么要用变分变分自编码器推导高斯混合模型 4 代码实现 之前我们的很多网络都是有监督的 生成网络都是无监督的(本质就是密度估计)&a…...
gif怎么转换成视频MP4?
gif怎么转换成视频MP4?GIF动图已成为一种风靡网络的流行的特殊图片文件,其循环播放和逐帧呈现的特点使其在社交媒体、聊天应用等场合广泛应用,平时我们进行群聊是,大家总会一些gif动态表情的出现而感觉非常的开行,gif动…...
铭豹扩展坞 USB转网口 突然无法识别解决方法
当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…...
论文浅尝 | 基于判别指令微调生成式大语言模型的知识图谱补全方法(ISWC2024)
笔记整理:刘治强,浙江大学硕士生,研究方向为知识图谱表示学习,大语言模型 论文链接:http://arxiv.org/abs/2407.16127 发表会议:ISWC 2024 1. 动机 传统的知识图谱补全(KGC)模型通过…...
深入解析C++中的extern关键字:跨文件共享变量与函数的终极指南
🚀 C extern 关键字深度解析:跨文件编程的终极指南 📅 更新时间:2025年6月5日 🏷️ 标签:C | extern关键字 | 多文件编程 | 链接与声明 | 现代C 文章目录 前言🔥一、extern 是什么?&…...
什么?连接服务器也能可视化显示界面?:基于X11 Forwarding + CentOS + MobaXterm实战指南
文章目录 什么是X11?环境准备实战步骤1️⃣ 服务器端配置(CentOS)2️⃣ 客户端配置(MobaXterm)3️⃣ 验证X11 Forwarding4️⃣ 运行自定义GUI程序(Python示例)5️⃣ 成功效果 default;virtual ~AbstractBase() default; // 默认析构函数public:virtual int PureVirtualFunct…...
面试高频问题
文章目录 🚀 消息队列核心技术揭秘:从入门到秒杀面试官1️⃣ Kafka为何能"吞云吐雾"?性能背后的秘密1.1 顺序写入与零拷贝:性能的双引擎1.2 分区并行:数据的"八车道高速公路"1.3 页缓存与批量处理…...
【工具教程】多个条形码识别用条码内容对图片重命名,批量PDF条形码识别后用条码内容批量改名,使用教程及注意事项
一、条形码识别改名使用教程 打开软件并选择处理模式:打开软件后,根据要处理的文件类型,选择 “图片识别模式” 或 “PDF 识别模式”。如果是处理包含条形码的 PDF 文件,就选择 “PDF 识别模式”;若是处理图片文件&…...
Linux入门课的思维导图
耗时两周,终于把慕课网上的Linux的基础入门课实操、总结完了! 第一次以Blog的形式做学习记录,过程很有意思,但也很耗时。 课程时长5h,涉及到很多专有名词,要去逐个查找,以前接触过的概念因为时…...
新版NANO下载烧录过程
一、序言 搭建 Jetson 系列产品烧录系统的环境需要在电脑主机上安装 Ubuntu 系统。此处使用 18.04 LTS。 二、环境搭建 1、安装库 $ sudo apt-get install qemu-user-static$ sudo apt-get install python 搭建环境的过程需要这个应用库来将某些 NVIDIA 软件组件安装到 Je…...
