There are three different ways ProxySQL can direct traffic
between your application and the backend MySQL services.
- Locally, on the MySQL servers.
- Between the MySQL servers and the application.
- Colocated on the application servers themselves.
Without going through too much detail – each has its own
limitations. In the first form, the application needs to know
about all MySQL servers at any given point in time. With the
third form, a large number of application servers, especially in
the age of Kubernetes, where apps can simply recycle easily or be
scaled up and down, backend connections can increase
exponentially leading to issues.
In the second form, load balancing between a pool of ProxySQL
servers is normally the challenge. Do you load balance the load
balancers? While there are approaches like balancing from the
application, similar to how the MongoDB drivers works, the …[Read more]