I'm about to deploy two distinct systems: A MySQL cluster and a cluster of Jetty web-servers.
1. SOFTWARE
I can get more linux servers for the HA/LB, but which software should I use? I'm with CentOS.
I've heard of HAProxy, LVS and UltraMonkey.
I've read much of their documentation but it's not clear if they support MySQL AND HTTP/S (both).
I want one solution that takes care of both, for simplicity (instead of dealing with two).
- The solution should be open-source as the three above.
- SSL (MySQL & HTTPS) should be possible.
- "Sticky Sessions" are NOT a requirement, as I intend to have Jetty's sessions shared at the MySQL database.
2. PERFORMANCE
I've read that the load-balancing can be done in three ways:
- Direct Routing << LAN switch dependant?
- IP-IP Encapsulation (Tunnelling) << sounds best. not bound to LAN, as opposed to "Direct Routing"
- Network Address Translation << extremely limiting (replies from app service go through the LB)
The bottom line regarding performance, which worries me, is that eventually it's possible (and I don't want it) that all the data between internet users and my cluster is going through one server (the balancer), which makes the balancer a bottle-neck.
If it's connected with a 100MBit connection then the whole system is limited to that.
Is it possible to avoid that, yet get balancing and high availability? What is the "cost" to that? Do I need a special switch on the network or not?