On Tue, 03 Nov 2009 16:21:04 +0100, "Dawid Sieradzki / Gadu-Gadu S.A."
<dawid.sieradzki#gadu-gadu.pl> wrote:
> Hi,
>
> Mysql persistent tcp balance problem.
>
> MYSQL CLIENT ---- [CONN A] ----> LB TCP ---- [CONN B] ----> MYSQL
> DAEMON
>
> When we did error on MYSQL daemon site (CONN B - BACKEND IS MARKED AS
> DOWN), haproxy will switch new connection to another mysql daemon.
> But current connections (CONN A) stay on broken line (CONN B)
>
> The question is how to switch current mysql client connections hanged
> on haproxy to new MYSQL backend ?
>
> Greetings
>
You mean situation that
1.App is connecting [CONN A] 2.Does some queries 3.Then backend dies 4.Application wants to do more queries but backend dont respond andtimeout after x seconds, then app sends "DB connection refused" ??
If yes, only way (IMO) to do it in haproxy (as it knows nothing about
MySQL protocol) is:
1.set a short timeouts, like 10s
2.make application code like:
execute_query();
if (query_failed() && we_tried_to_reconnect_less_than_5_times()) {
reconnect;
try_query again
}
so when connection dies, instead of failin request it tries again and get dispatched to other backen
PS. Jak wyłączyć w gg filtrowanie URLi od nieznajomych ? :D:D
-- Mariusz Gronczewski (XANi) <xani666#gmail.com> GnuPG: 0xEA8ACE64 http://devrandom.plReceived on 2009/11/04 02:08
- application/pgp-signature attachment: signature.asc
This archive was generated by hypermail 2.2.0 : 2009/11/04 02:15 CET