温馨提示×

PgAdmin在Ubuntu上如何实现负载均衡

小樊
36
2025-11-16 10:16:03
栏目: 云计算

在 Ubuntu 上实现 pgAdmin 的负载均衡

核心思路

  • pgAdmin 是 PostgreSQL 的管理与监控工具,本身不提供数据库连接的负载均衡能力。应在数据库前部署专用负载均衡器(如 HAProxyNginx),让 pgAdmin 连接到负载均衡器的虚拟地址/域名与端口,由负载均衡器将连接分发到后端 PostgreSQL 节点。若需要管理多台数据库,可在 pgAdmin 中为每个节点单独建“服务器”对象,或仅连接到负载均衡器统一接入。

方案一 HAProxy TCP 转发(推荐)

  • 适用:面向 PostgreSQL 原生协议(TCP 5432) 的连接负载均衡与故障剔除。
  • 安装与启用
    • sudo apt update && sudo apt install -y haproxy
    • sudo systemctl enable --now haproxy
  • 配置示例 /etc/haproxy/haproxy.cfg(关键片段)
    • global
      • log /dev/log local0
      • log /dev/log local1 notice
      • daemon
    • defaults
      • log global
      • mode tcp
      • option tcplog
      • timeout connect 5000ms
      • timeout client 50000ms
      • timeout server 50000ms
    • frontend postgres_front
      • bind *:5432
      • default_backend postgres_back
    • backend postgres_back
      • balance roundrobin
      • server pg1 192.168.1.101:5432 check inter 2000 rise 2 fall 3
      • server pg2 192.168.1.102:5432 check inter 2000 rise 2 fall 3
  • 说明
    • 使用 TCP 模式健康检查(inter 检查间隔、rise 判定恢复、fall 判定故障),可自动剔除异常节点。
    • 保存后执行:sudo systemctl reload haproxy;验证:ss -lntp | grep 5432。

方案二 Nginx Stream 模块 TCP 转发(可选)

  • 适用:已在环境中使用 Nginx,希望统一用 Nginx 做四层转发。
  • 安装与启用
    • sudo apt update && sudo apt install -y nginx
    • sudo systemctl enable --now nginx
  • 配置示例 /etc/nginx/nginx.conf(顶层加入 stream,与 http 同级)
    • stream { upstream postgres_backend { server 192.168.1.101:5432; server 192.168.1.102:5432; } server { listen 5432; proxy_pass postgres_backend; proxy_timeout 1h; proxy_connect_timeout 10s; } }
  • 说明
    • 需确保 Nginx 编译时包含 –with-stream;保存后执行:sudo systemctl reload nginx。

在 pgAdmin 中连接负载均衡器

  • 访问 pgAdmin Web(默认 http://:5050),登录后:Servers → Create → Server。
  • General:填写名称(如 “Load Balanced PostgreSQL”)。
  • Connection:
    • Host name/address:填入负载均衡器的 IP/域名(如 192.168.1.100lb.example.com)。
    • Port:5432(与负载均衡器监听端口一致)。
    • Username/Password:使用具备访问权限的 PostgreSQL 账号凭据。
  • 保存后,pgAdmin 通过该地址与端口连接,由负载均衡器分发到后端数据库节点。

关键注意事项与最佳实践

  • 数据一致性与读写策略
    • 负载均衡器仅分发连接,需确保后端 PostgreSQL 数据一致(如 流复制 搭建主从/集群)。写操作通常指向 主库,读操作可指向 从库;若需自动读写分离,建议在数据库前再叠加 Pgpool-II 等中间件,由中间件承担读写分离与连接管理,pgAdmin 仅连接中间件地址。
  • 安全性
    • 启用 SSL/TLS(客户端连接串设置 sslmode=require),并在负载均衡器或防火墙层限制来源 IP。
  • 高可用
    • 为负载均衡器本身配置 Keepalived VIP 漂移,避免单点故障(VIP 对外提供 5432 服务,后端 HAProxy/Nginx 双机热备)。
  • 监控与验证
    • 监控 连接数、延迟、复制延迟 等指标;在 HAProxy 状态页/日志中观察后端 UP/DOWN 与切换情况,确保故障节点能被及时剔除与恢复。

0