当前位置: 首页 > 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

参照官方文档

http://www.lryc.cn/news/179006.html

相关文章:

  • 全新自适应导航网模板 导航网系统源码 网址导航系统源码 网址目录网系统源码
  • 无人直播间
  • Linux 服务器防止 ssh 暴力密码登录破解之使用 fail2ban
  • 第十四届蓝桥杯大赛软件赛决赛 C/C++ 大学 B 组 试题 D: 合并数列
  • ChatGPT必应联网功能正式上线
  • DETR中的问题汇总(代码)
  • 华为云云耀云服务器L实例评测|使用华为云耀云服务器L实例的CentOS部署Docker并运行Tomcat应用
  • Java基础---第八篇
  • (附源码)springboot体检预约APP 计算机毕设16370
  • Spring的注解开发-@Component的三个衍生注解
  • 无线WIFI工业路由器可用于楼宇自动化
  • 基于长短期神经网络铜期货价格预测,基于LSTM的铜期货价格预测,LSTM的详细原理
  • 300元开放式耳机推荐哪个、最值得入手的开放式耳机推荐
  • 嵌入式学习笔记(37) S5PV210的PWM定时器
  • python工具-base64-zip-json
  • Centos 7安装pm2 , 操作等常用命令
  • vue 实现弹出菜单,解决鼠标点击其他区域的检测问题
  • 经典网络解(三) 生成模型VAE | 自编码器、变分自编码器|有监督,无监督
  • gif怎么转换成视频MP4?
  • 标准化、逻辑回归、随机梯度参数估计
  • 【数据结构】【C++】封装哈希表模拟实现unordered_map和unordered_set容器
  • 26967-2011 一般用喷油单螺杆空气压缩机
  • Opengl之模板测试
  • iPhone苹果手机复制粘贴内容提示弹窗如何取消关闭提醒?
  • 释放潜力:人工智能对个性化学习的影响
  • 什么是Local Storage和Session Storage?它们之间有什么区别?
  • 单样本T检验|独立样本T检验|配对样本T检验(绘图)
  • 全面解读 SQL 优化 - 统计信息
  • Spring整合RabbitMQ——生产者
  • Spring的注解开发-Bean基本注解开发