使用HAProxy来平衡三台SQL Server 2008数据库服务器是否可行/合理?
以下是我们的情况:我们有两台在Amazon EC2上负载均衡的Web服务器。 我们目前正在使用一个生产SQL Server 2008数据库服务器。 该服务器开始被重载,所以我们想要添加两个数据库服务器,并实现一个负载平衡解决scheme。
在Amazon EC2中,我们无法使用虚拟IP地址,这使我们无法使用Windowsnetworking负载平衡(NLB)或任何其他需要VIP的负载平衡方法。
我们的应用程序是重读的,但是我们无法将读取与写入分开,因此负载平衡解决scheme需要对此进行解释。
我们正在计划使用SQL Server的内置复制function来保持所有三个数据库的最新状态(我们知道会有一些滞后时间,但这是可以接受的)。
欢迎任何想法或build议,并提前感谢您的帮助。
使用HAProxy来平衡三台SQL Server 2008数据库服务器是否可行/合理?
不,不是的。 即使你可以使用Windows NLB,也不能可靠地工作。
当您的应用程序服务器与SQL Server交谈时, TDS通信协议将保持“状态”。 例如,考虑事务或长时间运行的查询。
HAProxy和NLB不了解TDS。 如果您只是使用HAProxy在TCP / IP模式下进行负载均衡,那么在事务处理过程中连接可以正确切换,从而给您带来难以预料的结果,并可能导致数据丢失。
AFAIK, SQL Server没有plug'n'play负载均衡器 。