使用HAProxy对三台SQL Server2008数据库服务器进行负载均衡是否可能/可行/合理?
这是我们的情况:我们有两个在亚马逊EC2上负载均衡的web服务器。我们目前使用的是一台生产SQL server 2008 DB服务器。该服务器开始超载,因此我们希望再添加两台DB服务器,并实现负载平衡解决方案。
在亚马逊EC2中,我们无法使用虚拟IP地址,这使我们无法使用Windows网络负载平衡(NLB)或任何其他需要VIP的负载平衡方法。
我们的应用程序是读密集型的,但是我们无法将读和写分开,因此负载平衡解决方案需要考虑到这一点。
我们计划使用SQL Server的内置复制功能来保持所有三个数据库的最新(我们知道会有一些滞后时间,但这是可以接受的)。
欢迎任何想法或建议,并提前感谢您的帮助。
发布于 2011-02-25 20:07:52
是的,这是可行的。我已经在实验室中尝试过了,它工作得很好。
如果您有足够大的web服务器群,您可以通过IP散列使会话变得粘滞,这将解决复制延迟问题。负载不会均匀分布,但即使在给定连接池的情况下,负载也可能不会均匀分布(假设您使用的是.NET)
如果您使用merge作为您的复制拓扑,那么该解决方案原则上应该具有良好的伸缩性和足够的弹性,只要您能够在应用程序级别处理奇怪的断开连接,您就可以关闭单独的服务器进行维护。
发布于 2011-02-08 06:52:58
我担心的是写事务如何到达后端的所有SQL服务器。您可以尝试点对点复制之类的东西,但这不是一个简单的设置。
https://stackoverflow.com/questions/4922903
复制相似问题