对于我的应用程序,我想有高度可用的MySQL / MariaDB设置。 由于自动数据冗余和即时可用性,我发现Galera Cluster在这种情况下很有趣。 我的目标是这样的:
隐藏应用程序的集群复杂性(集群可以变得更大,并且改变拓扑添加一些asynchronous节点)
透明地处理应用程序之外的故障转移
为某些常见的情况写入和读取同步实例提供负载均衡,
仍然允许应用程序访问特定的节点,例如针对分析的顺序读取进行优化的例如asynchronous节点。 如果这个节点失败,我希望应用程序故障转移到标准的Galera实例,透明地保持一切正常运行。
我已经阅读了许多关于如何设置高可用性和负载平衡的MySQL集群的HAProxy和Keepalived串联的文章,但没有一篇解释了为什么要使用这个二重奏的MySQL / MariaDB / Galerascheme。 一些例子:
HAProxy + Keeplived,任何MySQL CE集群+ Galera: https ://severalnines.com/resources/tutorials/mysql-load-balancing-haproxy-tutorial
HAProxy + Keepalived,Galera集群: http : //www.fromdual.com/making-haproxy-high-available-for-mysql-galera-cluster
HAProxy + Keepalived,asynchronous集群: https : //www.digitalocean.com/community/tutorials/how-to-use-haproxy-to-set-up-mysql-load-balancing–3
仅限HAProxy: https : //www.digitalocean.com/community/tutorials/how-to-use-haproxy-to-set-up-mysql-load-balancing–3
当涉及到虚拟IP分配时,它由Keepalived根据自己的可脚本化健康检查器和VRRP 。
Keepalived也支持负载均衡,实现了多种algorithm,通过这些algorithmLB到目的地: https ://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Load_Balancer_Administration/ch- 初始设置-VSA.html
HAProxy为HTTP提供了一些高级function,但这不是我的情况。
在Keepalived for Keepalived for MySQL中使用HAProxy的好处是什么?