目前使用haproxy做了mssql多个读库的负载均衡,在生产环境中运行得不错。
不过,这个方案有缺点:客户端需要选择是使用读库,还是写库。这样还是不够方便,如果能够实现自动路由就更好了,即让haproxy自动选择是将请求发给读库还是写库。
我计划编写一个haproxy的模块,在这个模块中实现自动路由的功能。写好之后,将这个模块开源。
要做到这一点,需要克服以下两个技术难点:
(1)haproxy模块编写方法。
(2)TDB协议。
PS:在网络上找到了一个名为sqlserver proxy的软件,但却是闭源的,收费的。