MySQL Proxy: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
Riga 32:
== Funzioni ==
MySQL Proxy ha due classi di funzioni:
# Indirizzamento del traffico a una lista predefinita di server di back-end, che possono essere a sola lettura o a piena funzionalità.
# Modifica, aggiunta, o sostituzione della query inviata dal client, e dei risultati restituiti dal server.
Nel primo caso, il Proxy ha delle funzioni predefinite per gestire la caduta del server primario, e ridirigerla al server successivo nella lista. Può anche effettuare il bilanciamento di carico, la separazione fra query di lettura e scrittura fra vari server (per esempio master e slave in replicazione) e può anche gestire un pool di connessioni.
Questa funzione richiede pochissima attività di manutenzione nella sua forma base. Per gestire i casi critici, è possibile intervenire con uno script [[Lua]]. Si tratta, peraltro, di un'applicazione ancora immatura (Settembre [[2007]]), e pertanto da usare con cautela.
Il secondo caso è differente. Per modificare la query in uscita o i risultati in entrata, è necessario scrivere un programma in [[Lua]] e lanciare il Proxy con un'opzione che lo fa caricare. Per esempio, questo script intercetta la query ''SEELCT 1'' e la riscrive come ''SELECT 100''.
function read_query(packet)
if packet:byte() ~= proxy.COM_QUERY then
return
end
local query = packet:sub(2)
if query:lower() == 'select 1' then
query = 'SELECT 100'
proxy.queries:append(1, string.char(proxy.COM_QUERY) .. query)
return proxy.PROXY_SEND_QUERY
end
end
In questo esempio, il Proxy inserisce la query modificata nella coda interna (''proxy.queries'') e la esegue.
== Riferimenti ==
|