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动…...
【网络】每天掌握一个Linux命令 - iftop
在Linux系统中,iftop是网络管理的得力助手,能实时监控网络流量、连接情况等,帮助排查网络异常。接下来从多方面详细介绍它。 目录 【网络】每天掌握一个Linux命令 - iftop工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景…...
装饰模式(Decorator Pattern)重构java邮件发奖系统实战
前言 现在我们有个如下的需求,设计一个邮件发奖的小系统, 需求 1.数据验证 → 2. 敏感信息加密 → 3. 日志记录 → 4. 实际发送邮件 装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其…...
C++_核心编程_多态案例二-制作饮品
#include <iostream> #include <string> using namespace std;/*制作饮品的大致流程为:煮水 - 冲泡 - 倒入杯中 - 加入辅料 利用多态技术实现本案例,提供抽象制作饮品基类,提供子类制作咖啡和茶叶*//*基类*/ class AbstractDr…...
python打卡day49
知识点回顾: 通道注意力模块复习空间注意力模块CBAM的定义 作业:尝试对今天的模型检查参数数目,并用tensorboard查看训练过程 import torch import torch.nn as nn# 定义通道注意力 class ChannelAttention(nn.Module):def __init__(self,…...
Prompt Tuning、P-Tuning、Prefix Tuning的区别
一、Prompt Tuning、P-Tuning、Prefix Tuning的区别 1. Prompt Tuning(提示调优) 核心思想:固定预训练模型参数,仅学习额外的连续提示向量(通常是嵌入层的一部分)。实现方式:在输入文本前添加可训练的连续向量(软提示),模型只更新这些提示参数。优势:参数量少(仅提…...
第25节 Node.js 断言测试
Node.js的assert模块主要用于编写程序的单元测试时使用,通过断言可以提早发现和排查出错误。 稳定性: 5 - 锁定 这个模块可用于应用的单元测试,通过 require(assert) 可以使用这个模块。 assert.fail(actual, expected, message, operator) 使用参数…...
HBuilderX安装(uni-app和小程序开发)
下载HBuilderX 访问官方网站:https://www.dcloud.io/hbuilderx.html 根据您的操作系统选择合适版本: Windows版(推荐下载标准版) Windows系统安装步骤 运行安装程序: 双击下载的.exe安装文件 如果出现安全提示&…...
大学生职业发展与就业创业指导教学评价
这里是引用 作为软工2203/2204班的学生,我们非常感谢您在《大学生职业发展与就业创业指导》课程中的悉心教导。这门课程对我们即将面临实习和就业的工科学生来说至关重要,而您认真负责的教学态度,让课程的每一部分都充满了实用价值。 尤其让我…...
tree 树组件大数据卡顿问题优化
问题背景 项目中有用到树组件用来做文件目录,但是由于这个树组件的节点越来越多,导致页面在滚动这个树组件的时候浏览器就很容易卡死。这种问题基本上都是因为dom节点太多,导致的浏览器卡顿,这里很明显就需要用到虚拟列表的技术&…...
Element Plus 表单(el-form)中关于正整数输入的校验规则
目录 1 单个正整数输入1.1 模板1.2 校验规则 2 两个正整数输入(联动)2.1 模板2.2 校验规则2.3 CSS 1 单个正整数输入 1.1 模板 <el-formref"formRef":model"formData":rules"formRules"label-width"150px"…...
