HaProxy перенаправляет трафик Mysql на временной интервал

У меня есть кластер MariaDB с HaProxy. Мне нужно перенаправлять моих клиентов на другие машины каждый день с 07.00-07.10 из-за тяжелых рабочих заданий cron. Например, у меня есть 3 сервера с IP-адресами 192.168.1.2, 192.168.1.3, 192.168.1.4. между 07.00-07.10 мой сервер приложений 192.168.1.1 не должен использовать 192.168.1.2. Как я могу это сделать?

0
задан 22 April 2017 в 09:47
1 ответ

Я думаю, что проще всего использовать haproxy-agent. Пример:

haproxy-section:

listen mysql
    bind *:3306
    mode tcp
    option tcplog
    balance leastconn
    default-server port 3306 agent-check agent-port 6789 weight 100 inter 1000 on-marked-down shutdown-sessions
    server server1 192.168.1.2 check
    server server2 192.168.1.3 check
    server server3 192.168.1.4 check

/etc/xinet.d/haproxy-agent на mysql-hosts:

service haproxy-agent
{
    disable         = no
    flags           = REUSE
    log_on_failure  += USERID
    port            = 6789
    server          = /usr/local/bin/haproxy-agent
    socket_type     = stream
    type            = UNLISTED
    user            = nobody
    wait            = no
}

/ usr / local / bin / haproxy-agent:

#!/bin/bash
RES="up 100%"
TIME=$(date "+%H%M" | sed 's/^0\+//')
[[ "${TIME}" -ge 700 && "${TIME}" -le 710 ]] && RES="down"
echo "${RES}"

Код агента, конечно, надо быть немного умнее, чтобы не перекрывать закрывающиеся RDBMS-хосты. Кстати, ответ агента для haproxy необязателен, поэтому, если он не отвечает - хорошо, haproxy просто проигнорирует этот факт.

2
ответ дан 4 December 2019 в 13:33

Теги

Похожие вопросы