使用HAProxy实现sql server读库的负载均衡
前置条件
使用sqlserver的发布订阅功能实现读写分离,并创建多个读库。
本文的负载均衡是针对多个读库而言的。
测试环境
vmware 10 64位
windows server 2008 R2
sql server 2008
centOS 6.6
haproxy 1.5
虚拟机配置
(1)虚拟机1:安装centos, 并安装HAProxy。ip为:172.16.1.1。作为负载均衡器。
(2)虚拟机2:安装windows server 2008 R2, 并安装sql server 2008。ip为:172.16.1.2,作为数据库服务器1。
(3)虚拟机3:克隆虚拟机2。ip为:172.16.1.6。作为数据库服务器2。
如下图:

haproxy配置
这里最重要的是对haproxy进行配置,配置文件如下:
global
maxconn 5120
chroot /usr/local/haproxy
uid 99
gid 99
daemon
quiet
nbproc 2
pidfile /usr/local/haproxy/haproxy.pid
defaults
log global
mode http
option httplog
option dontlognull
log 127.0.0.1 local3
retries 3
option redispatch
maxconn 2000
contimeout 50000
clitimeout 50000
srvtimeout 50000 listen mssql :1433
mode tcp
balance roundrobin
server mssql1 172.16.1.2:1433 check weight 1 check
server mssql2 172.16.1.6:1433 check weight 1 check listen stats :8888
mode http
transparent
stats uri / haproxy-stats
stats realm Haproxy \ statistic
测试
(1) 创建一个测试表:
CREATE TABLE [dbo].[table1](
[f1] [nchar](10) NULL
) ON [PRIMARY]
(2)为了看到负载均衡的结果,请将两个读库中table1表的数据设置为不一样
(3)连接至172.16.1.1(负载均衡器),使用以下查询语句进行查询。
SELECT TOP 1000 [f1] FROM [test1].[dbo].[table1]
需要在每次查询前先断开连接,然后再建立与sql server的连接,如下图所示:

特别说明:
(1)若是不重新建立连接的话,则每次得到的结果是一样的,因为sqlserver的客户端采用了数据库连接池技术,在没有主动地关闭的情况下,TCP连接会一直被保持着。
(2)断开连接之后,再重新连接一次的话,则得到的结果是不一样的。
本文的介绍的方法仅在测试环境中通过,尚未在正式环境中使用。
haproxy的安装请见:
http://www.cnblogs.com/dehai/p/4885016.html
使用HAProxy实现sql server读库的负载均衡的更多相关文章
- 利用HAProxy代理SQL Server的AlwaysOn辅助副本
利用HAProxy代理SQL Server的AlwaysOn辅助副本 公司最近数据库升级到SQL Server2014 ,并部署了alwayson高可用集群 机房内有三套程序需要读取数据库 第一套:主 ...
- Dubbo入门到精通学习笔记(二十):MyCat在MySQL主从复制的基础上实现读写分离、MyCat 集群部署(HAProxy + MyCat)、MyCat 高可用负载均衡集群Keepalived
文章目录 MyCat在MySQL主从复制的基础上实现读写分离 一.环境 二.依赖课程 三.MyCat 介绍 ( MyCat 官网:http://mycat.org.cn/ ) 四.MyCat 的安装 ...
- Haproxy+Keepalived搭建Weblogic高可用负载均衡集群
配置环境说明: KVM虚拟机配置 用途 数量 IP地址 机器名 虚拟IP地址 硬件 内存3G 系统盘20G cpu 4核 Haproxy keepalived 2台 192.168.1.10 192 ...
- HAProxy(二):HAProxy的ACL规则实现智能负载均衡详解与示例
一.HAProxy的ACL的功能 ACL(Access Control List)访问控制列表,HAProxy中的ACL的匹配条件和控制条件有许多种,功能很强大,可以通过源地址.源端口.目标地址.目标 ...
- HAProxy+Varnish+LNMP实现高可用负载均衡动静分离集群部署
HAProxy高可用负载均衡集群部署 基本信息: 系统平台:VMware WorkStation 系统版本: CentOS Linux release 7.2.1511 (Core) 内核版本: 3. ...
- HAProxy安装配置用于TCP的负载均衡
HaProxy介绍 Haproxy是一个开源的高性能的反向代理或者说是负载均衡服务软件之一,它支持双机热备.虚拟主机.基于TCP和HTTP应用代理等功能.其配置简单,而且拥有很好的对服务器节点的健康检 ...
- haproxy + keepalived + mycat 高可用与负载均衡集群配置 centos7
架构如上,但是其实keepalived.haproxy.Mycat都可以多台(比如keepalived.haproxy.Mycat各3台,3台keepalived抢占vip,然后抢到vip的hapro ...
- Keepalived+HAProxy实现RabbtiMQ高可用的负载均衡
HAProxy提供高可用性.负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费.快速并且可靠的一种解决方案,包括Twitter,Reddit,StackOverflow,GitHub在 ...
- 在ubuntu16.04 下安装haproxy 1.5.11 做tcp负载均衡
由于haproxy需要FQ下载,所以从csdn下载了较为新版的haproxy1.5.11,安装过程如下: 1. 解压haproxy-1.5.11.tar.gz : tar xzvf haproxy-1 ...
随机推荐
- JeeSite 4.0
http://jeesite.com/ JeeSite 是一个 Java EE 企业级快速开发平台,基于经典技术组合(Spring Boot.Spring MVC.Apache Shiro.MyBat ...
- word2vec_文本相似度
#提取关键词#关键词向量化#相似度计算 from jieba import analyseimport numpyimport gensim # 实现给出任意字符串,获取字符串中某字符的位置以及出现的 ...
- rap2与postman自动化测试
rap2的接口数据可以全部导入postman: 在collections集合里面点击run;
- jquery或者JavaScript调用WCF服务的方法
/****************************************************************** * Copyright (C): 一心堂集团 * CLR版本: ...
- Windows-universal-samples学习笔记系列二:Controls, layout, and text
Controls, layout, and text AutoSuggestBox migration Clipboard Commanding Context menu Context menu ( ...
- mybatis学习八 事物
1.事物的定义: 是指作为单个逻辑工作单元执行的一系列操作,要么完全地执行,要么完全地不执行. 事务处理可以确保除非事务性单元内的所有操作都成功完成,否则不会永久更新面向数据的资源. 2,事物的特性: ...
- AOP (切点表达式讲解)
Spring EL表达式:: 1.execution 表达式 语法格式: execution(返回类型.包名.类名.方法名(参数表)) exection(*.com.xxx.AService.*(.. ...
- mysql的一些配置优化
[mysqld]lower_case_table_names=1datadir=/var/lib/mysqlsocket=/var/lib/mysql/mysql.sockuser=mysql# Di ...
- MFC控件Slider Control的使用
写MFC界面程序时,今天恰好用到Slider控件,做一个小小的记录. 步骤 1.在工具栏中添加Slider Control控件: 2.在控件上右键->添加变量(Add Variable...), ...
- lambda表达式(c++11)
1.概念 1)lambda表达式是一个可调用的代码单元,它由一个捕获列表.一个参数列表.一个箭头.一个返回类型.一个函数体组成: 2)可以忽略参数列表和返回类型,但必须包含捕获列表和函数体: 3)忽略 ...