MySQL-прокси и базовое аварийное переключение (состояние обнаружения)

Я только что установил mysql proxy 0.8.2 и начал играть с ним. Я использую его вместе с двумя серверами MySQL 5.5, прослушивая 3306, прокси работает на 4040. Да, и ОС Win 7 32-битная.

Моя проблема в том, что прокси-сервер mysql, проверяющий состояние серверов, кажется, не должен.

Я запускаю скрипт, и он работает как надо. Но когда я выключаю основной сервер, скрипт, кажется, не распознает это - он все еще пытается подключиться к нему...

Информация о версии

mysql-proxy 0.8.2
chassis: mysql-proxy 0.8.2
glib2: 2.16.6
libevent: 1.4.12-stable
LUA: Lua 5.1.2
package.path: C:\ProgramX86\dev\mysql-proxy\lib\mysql-proxy\lua\?.lua
package.cpath: C:\ProgramX86\dev\mysql-proxy\bin\lua-?.dll
-- modules
proxy: 0.8.2*

Мой конфиг

[mysql-proxy]
proxy-address = :4040
proxy-backend-addresses = 10.3.0.9:3306,192.168.4.100:3306
proxy-lua-script = C:/ProgramX86/dev/mysql-proxy/failover3.lua
daemon = true

Отказоустойчивый lua-скрипт

function connect_server()
    if proxy.global.backends[1].state == proxy.BACKEND_STATE_DOWN then
        proxy.connection.backend_ndx = 2
    else
        proxy.connection.backend_ndx = 1
    end
    print ("s Connecting: " .. proxy.global.backends[proxy.connection.backend_ndx].dst.name)
end 

function read_query(packet)
    if proxy.global.backends[1].state == proxy.BACKEND_STATE_DOWN then
        proxy.connection.backend_ndx = 2
    else
        proxy.connection.backend_ndx = 1
    end
    print ("q Connecting: " .. proxy.global.backends[proxy.connection.backend_ndx].dst.name)
end

person hugo    schedule 16.02.2012    source источник


Ответы (1)


Это потому, что proxy.global.backends[1].state все еще proxy.BACKEND_STATE_UP, когда основной сервер выключен. Кто-то сказал, что ожидание ответа серверной части займет 3 минуты, вместо того, чтобы постоянно наблюдать за сервисом Mysql. Я пытаюсь найти лучший способ решить проблему.

person Vincent    schedule 14.03.2012