温馨提示×

如何在centos dolphin中进行负载均衡

小樊
40
2025-12-29 11:56:30
栏目: 云计算

在 CentOS 上为 DolphinScheduler 配置负载均衡

一 名词澄清与总体思路

  • 若你指的是 Apache DolphinScheduler(分布式工作流调度),其任务调度由 Master 节点基于算法将任务分配给 Worker 节点,支持三种算法:加权随机(random)平滑轮询(roundrobin)线性负载(lowerweight,默认)。你可以在 master.properties 中通过 master.host.selector 切换算法,并为各 Worker 设置 worker.weight 权重;Worker 启动后有约 10 分钟预热,权重会逐步升至设定值。若你指的是 Dolphin(KDE 文件管理器),它是桌面程序,不存在“负载均衡”的配置场景。

二 在 DolphinScheduler 内部调整调度算法与权重

  • 修改算法
    • 在所有 Master 节点编辑配置文件 conf/master.properties,将算法切换为所需值(不区分大小写):
      • 随机:master.host.selector=random
      • 平滑轮询:master.host.selector=roundrobin
      • 线性加权(默认):master.host.selector=lowerweight
    • 保存后重启 Master 服务,使配置生效。
  • 配置 Worker 权重
    • 在每个 Worker 节点编辑 conf/worker.properties,设置 worker.weight(默认值为 100,可按机器性能调高或调低)。权重越高,被分配到的任务相对越多。
  • 预热与生效
    • Worker 启动后权重会按 预热机制 在约 10 分钟内逐步达到设定值;在此期间,调度会较为平滑,避免冷启动带来的瞬时高负载。

三 在 CentOS 层面对接入流量做负载均衡(可选)

  • 场景与拓扑
    • 面向用户或外部系统的访问(如 API/Web UI)可在前端放置 Nginx/HAProxy,对后端 Master 节点做 L4/L7 负载均衡与健康检查,提升可用性与吞吐。生产建议:2 个 Master(Active/Standby)+ N 个 Worker(≥3),并配 3 节点 Zookeeper 做服务发现与健康监测。
  • Nginx 示例(HTTP 反向代理)
    • 安装:yum install -y nginx
    • 配置片段(/etc/nginx/nginx.conf 或 /etc/nginx/conf.d/ds.conf):
      • upstream ds_masters { server master1:12345 max_fails=3 fail_timeout=30s; server master2:12345 backup; }
      • server { listen 80; location / { proxy_pass http://ds_masters; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_connect_timeout 60s; proxy_read_timeout 300s; } }
    • 启动:systemctl enable --now nginx;如启用防火墙,放行 80/tcp:firewall-cmd --permanent --add-port=80/tcp && firewall-cmd --reload
  • HAProxy 示例(TCP 或 HTTP)
    • 安装:yum install -y haproxy
    • 配置片段(/etc/haproxy/haproxy.cfg):
      • frontend ds_front *:80
        • mode http
        • default_backend ds_masters
      • backend ds_masters
        • mode http
        • balance roundrobin
        • server master1 master1:12345 check
        • server master2 master2:12345 check backup
    • 启动:systemctl enable --now haproxy;如启用防火墙,放行 80/tcp。

四 验证与运维要点

  • 验证调度算法与权重
    • 观察不同 Worker 的任务分配情况是否与 worker.weight 和所选算法(random/roundrobin/lowerweight)预期一致;注意 预热约 10 分钟的影响。
  • 验证接入层负载均衡
    • Nginx/HAProxy 前端发起请求,确认请求在 Master 节点间按策略分发;停掉某台 Master 验证 健康检查故障切换 是否正常。
  • 监控与告警
    • 建议接入 Prometheus + Grafana 统一采集 Master/Worker 指标并设置告警;对 Nginx/HAProxy 暴露状态页或指标端点,结合告警策略保障稳定性。

0