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

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
服务器IPhostname
HAProxy192.168.180.46test1
TiDB-Server192.168.180.47test2
TiDB-Server192.168.180.48test3
TiDB-Server192.168.181.18test4

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:   时间间隔102.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会员免…...

无人直播间

失败&#xff01;&#xff01; 采用 ffmpeg 技术进行推流 推流代码&#xff1a; 【需要将rtmp替换为你的推流地址】 ffmpeg -re -stream_loop -1 -i "rain.mp4" -c copy -f flv ""推流地址获取 以哔哩哔哩为例 点击下方链接 开播设置 - 个人中心 - …...

Linux 服务器防止 ssh 暴力密码登录破解之使用 fail2ban

前言&#xff0c;网络安全越来越重要&#xff0c;如何保证网站安全至关重要&#xff0c;在使用 Linux 服务器时&#xff0c;如果未设置有效安全登录屏障&#xff0c;每日将会有数百甚至数万次的密码暴力尝试登录&#xff0c;本篇章将介绍两种 Linux 登录安全防护 一&#xff1…...

第十四届蓝桥杯大赛软件赛决赛 C/C++ 大学 B 组 试题 D: 合并数列

[蓝桥杯 2023 国 B] 合并数列 【问题描述】 小明发现有很多方案可以把一个很大的正整数拆成若干正整数的和。他采取了其中两种方案&#xff0c;分别将他们列为两个数组 { a 1 , a 2 , ⋯ a n } \{a_1, a_2, \cdots a_n\} {a1​,a2​,⋯an​} 和 { b 1 , b 2 , ⋯ b m } \{b…...

ChatGPT必应联网功能正式上线

今日凌晨发现&#xff0c;ChatGPT又支持必应联网了&#xff01;虽然有人使用过newbing这个阉割版的联网GPT4&#xff0c;但官方版本确实更加便捷好用啊&#xff01; 尽管 ChatGPT 此前已经展现出了其他人工智能模型无可比拟的智能&#xff0c;但由于其训练数据的限制&#xff…...

DETR中的问题汇总(代码)

一、讲述一下torch.tensor()和torch.as_tensor()的区别 torch.tensor() 和 torch.as_tensor() 都是 PyTorch 中用于创建张量&#xff08;Tensor&#xff09;的函数&#xff0c;但它们有一些区别&#xff0c;主要涉及到张量的内存管理方式和数据拷贝。以下是它们的主要区别&…...

华为云云耀云服务器L实例评测|使用华为云耀云服务器L实例的CentOS部署Docker并运行Tomcat应用

目录 前言 步骤1&#xff1a;登录到华为云耀云服务器L实例 步骤2&#xff1a;安装Docker 并验证Docker安装 步骤3&#xff1a;拉取Tomcat镜像并运行Tomcat容器 步骤4&#xff1a;放行8080端口 步骤5&#xff1a;访问tomcat 步骤6&#xff1a;管理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开发是分层的&#xff08;三层架构体系&#xff0c;控制层、服务层、持久层&#xff09;&#xff0c;为了每层Bean标识的注解语义化更加明确&#xff0c;Component又衍生出以下三个注解 注解用途Repository&#xff08;仓库&#xff09;标识持久层&#xff08;DAO&am…...

无线WIFI工业路由器可用于楼宇自动化

钡铼4G工业路由器支持BACnet MS/TP协议。BACnet MS/TP协议是一种用于工业自动化的开放式通信协议&#xff0c;被广泛应用于楼宇自动化、照明控制、能源管理等领域。通过钡铼4G工业路由器的支持&#xff0c;可以使设备间实现高速、可靠的数据传输&#xff0c;提高自动化水平。 钡…...

基于长短期神经网络铜期货价格预测,基于LSTM的铜期货价格预测,LSTM的详细原理

目录 背影 摘要 代码和数据下载:基于长短期神经网络的铜期货开盘价格预测,基于长短期神经网络的铝价格期货开盘价预测(代码完整,数据齐全)资源-CSDN文库 https://download.csdn.net/download/abc991835105/88230626 LSTM的基本定义 LSTM实现的步骤 基于长短期神经网络LSTM…...

300元开放式耳机推荐哪个、最值得入手的开放式耳机推荐

开放式耳机成为今年耳机界的主流了&#xff0c;如果你还不曾体验过开放式耳机&#xff0c;那真的是太OUT了&#xff01;相对于传统的入耳式耳机对听力的损伤&#xff0c;开放式耳机有着很长远的益处&#xff0c;能够很好的保护听力。随着技术的成熟&#xff0c;开放式耳机也在音…...

嵌入式学习笔记(37) S5PV210的PWM定时器

7.3.1为什么叫PWM定时器 (1)叫定时器说明它本质上的原理是定时器。 (2)叫PWM定时器&#xff0c;是因为这个定时器天然是用来产生PWM波形的。 7.3.2 PWM定时器介绍 (1)S5PV210有5个PWM定时器。其中0、1、2、3各自对应一个外部GPIO&#xff0c;可以通过这些对应的GPIO产生PWM…...

python工具-base64-zip-json

python工具-base64-zip-json # 先 base64 解码&#xff0c;再 zip 解码&#xff0c;再打印 json 内容&#xff0c;支持多个字符串解码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&#xff0c;node安装教程前一篇已经说了&#xff0c;是安装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 实现弹出菜单,解决鼠标点击其他区域的检测问题

弹出菜单应该具有的功能&#xff0c;当鼠标点击其他区域时&#xff0c;则关闭该菜单。 问题来了&#xff0c;怎么检测鼠标点击了其他区域而不是当前菜单&#xff1f; 百度“JS检测区域外的点击事件”&#xff0c;会发现有很多方法&#xff0c;有递归检测父元素&#xff0c;有遍…...

经典网络解(三) 生成模型VAE | 自编码器、变分自编码器|有监督,无监督

文章目录 1 有监督与无监督2 生成模型2.1 重要思路 3 VAE编码器怎么单独用&#xff1f;解码器怎么单独用&#xff1f;为什么要用变分变分自编码器推导高斯混合模型 4 代码实现 之前我们的很多网络都是有监督的 生成网络都是无监督的&#xff08;本质就是密度估计&#xff09;&a…...

gif怎么转换成视频MP4?

gif怎么转换成视频MP4&#xff1f;GIF动图已成为一种风靡网络的流行的特殊图片文件&#xff0c;其循环播放和逐帧呈现的特点使其在社交媒体、聊天应用等场合广泛应用&#xff0c;平时我们进行群聊是&#xff0c;大家总会一些gif动态表情的出现而感觉非常的开行&#xff0c;gif动…...

手游刚开服就被攻击怎么办?如何防御DDoS?

开服初期是手游最脆弱的阶段&#xff0c;极易成为DDoS攻击的目标。一旦遭遇攻击&#xff0c;可能导致服务器瘫痪、玩家流失&#xff0c;甚至造成巨大经济损失。本文为开发者提供一套简洁有效的应急与防御方案&#xff0c;帮助快速应对并构建长期防护体系。 一、遭遇攻击的紧急应…...

C++:std::is_convertible

C++标志库中提供is_convertible,可以测试一种类型是否可以转换为另一只类型: template <class From, class To> struct is_convertible; 使用举例: #include <iostream> #include <string>using namespace std;struct A { }; struct B : A { };int main…...

线程与协程

1. 线程与协程 1.1. “函数调用级别”的切换、上下文切换 1. 函数调用级别的切换 “函数调用级别的切换”是指&#xff1a;像函数调用/返回一样轻量地完成任务切换。 举例说明&#xff1a; 当你在程序中写一个函数调用&#xff1a; funcA() 然后 funcA 执行完后返回&…...

基于服务器使用 apt 安装、配置 Nginx

&#x1f9fe; 一、查看可安装的 Nginx 版本 首先&#xff0c;你可以运行以下命令查看可用版本&#xff1a; apt-cache madison nginx-core输出示例&#xff1a; nginx-core | 1.18.0-6ubuntu14.6 | http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages ng…...

【Redis技术进阶之路】「原理分析系列开篇」分析客户端和服务端网络诵信交互实现(服务端执行命令请求的过程 - 初始化服务器)

服务端执行命令请求的过程 【专栏简介】【技术大纲】【专栏目标】【目标人群】1. Redis爱好者与社区成员2. 后端开发和系统架构师3. 计算机专业的本科生及研究生 初始化服务器1. 初始化服务器状态结构初始化RedisServer变量 2. 加载相关系统配置和用户配置参数定制化配置参数案…...

Spring Boot+Neo4j知识图谱实战:3步搭建智能关系网络!

一、引言 在数据驱动的背景下&#xff0c;知识图谱凭借其高效的信息组织能力&#xff0c;正逐步成为各行业应用的关键技术。本文聚焦 Spring Boot与Neo4j图数据库的技术结合&#xff0c;探讨知识图谱开发的实现细节&#xff0c;帮助读者掌握该技术栈在实际项目中的落地方法。 …...

Unit 1 深度强化学习简介

Deep RL Course ——Unit 1 Introduction 从理论和实践层面深入学习深度强化学习。学会使用知名的深度强化学习库&#xff0c;例如 Stable Baselines3、RL Baselines3 Zoo、Sample Factory 和 CleanRL。在独特的环境中训练智能体&#xff0c;比如 SnowballFight、Huggy the Do…...

Spring数据访问模块设计

前面我们已经完成了IoC和web模块的设计&#xff0c;聪明的码友立马就知道了&#xff0c;该到数据访问模块了&#xff0c;要不就这俩玩个6啊&#xff0c;查库势在必行&#xff0c;至此&#xff0c;它来了。 一、核心设计理念 1、痛点在哪 应用离不开数据&#xff08;数据库、No…...

AI语音助手的Python实现

引言 语音助手(如小爱同学、Siri)通过语音识别、自然语言处理(NLP)和语音合成技术,为用户提供直观、高效的交互体验。随着人工智能的普及,Python开发者可以利用开源库和AI模型,快速构建自定义语音助手。本文由浅入深,详细介绍如何使用Python开发AI语音助手,涵盖基础功…...

【Elasticsearch】Elasticsearch 在大数据生态圈的地位 实践经验

Elasticsearch 在大数据生态圈的地位 & 实践经验 1.Elasticsearch 的优势1.1 Elasticsearch 解决的核心问题1.1.1 传统方案的短板1.1.2 Elasticsearch 的解决方案 1.2 与大数据组件的对比优势1.3 关键优势技术支撑1.4 Elasticsearch 的竞品1.4.1 全文搜索领域1.4.2 日志分析…...