前置条件

使用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读库的负载均衡的更多相关文章

  1. 利用HAProxy代理SQL Server的AlwaysOn辅助副本

    利用HAProxy代理SQL Server的AlwaysOn辅助副本 公司最近数据库升级到SQL Server2014 ,并部署了alwayson高可用集群 机房内有三套程序需要读取数据库 第一套:主 ...

  2. Dubbo入门到精通学习笔记(二十):MyCat在MySQL主从复制的基础上实现读写分离、MyCat 集群部署(HAProxy + MyCat)、MyCat 高可用负载均衡集群Keepalived

    文章目录 MyCat在MySQL主从复制的基础上实现读写分离 一.环境 二.依赖课程 三.MyCat 介绍 ( MyCat 官网:http://mycat.org.cn/ ) 四.MyCat 的安装 ...

  3. Haproxy+Keepalived搭建Weblogic高可用负载均衡集群

    配置环境说明: KVM虚拟机配置 用途 数量 IP地址 机器名 虚拟IP地址 硬件 内存3G  系统盘20G cpu 4核 Haproxy keepalived 2台 192.168.1.10 192 ...

  4. HAProxy(二):HAProxy的ACL规则实现智能负载均衡详解与示例

    一.HAProxy的ACL的功能 ACL(Access Control List)访问控制列表,HAProxy中的ACL的匹配条件和控制条件有许多种,功能很强大,可以通过源地址.源端口.目标地址.目标 ...

  5. HAProxy+Varnish+LNMP实现高可用负载均衡动静分离集群部署

    HAProxy高可用负载均衡集群部署 基本信息: 系统平台:VMware WorkStation 系统版本: CentOS Linux release 7.2.1511 (Core) 内核版本: 3. ...

  6. HAProxy安装配置用于TCP的负载均衡

    HaProxy介绍 Haproxy是一个开源的高性能的反向代理或者说是负载均衡服务软件之一,它支持双机热备.虚拟主机.基于TCP和HTTP应用代理等功能.其配置简单,而且拥有很好的对服务器节点的健康检 ...

  7. haproxy + keepalived + mycat 高可用与负载均衡集群配置 centos7

    架构如上,但是其实keepalived.haproxy.Mycat都可以多台(比如keepalived.haproxy.Mycat各3台,3台keepalived抢占vip,然后抢到vip的hapro ...

  8. Keepalived+HAProxy实现RabbtiMQ高可用的负载均衡

    HAProxy提供高可用性.负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费.快速并且可靠的一种解决方案,包括Twitter,Reddit,StackOverflow,GitHub在 ...

  9. 在ubuntu16.04 下安装haproxy 1.5.11 做tcp负载均衡

    由于haproxy需要FQ下载,所以从csdn下载了较为新版的haproxy1.5.11,安装过程如下: 1. 解压haproxy-1.5.11.tar.gz : tar xzvf haproxy-1 ...

随机推荐

  1. linux(centOS7,mini),python环境的搭建

    今天想试一试python在linux下的工作,在vmware中安装了centOS7版本的linux,先前装过一个带GUI的,但是感觉在虚拟机理跑的太慢,干脆直接装一个最精简的mini版,试一下ifco ...

  2. struts2升级

    http://www.blogjava.net/ldwblog/archive/2013/10/14/404944.html

  3. sqlserver 数据分发复制 发布订阅

    转载地址:https://www.cnblogs.com/lizejia/p/6062674.html

  4. Eigen中的map

    Map类用于通过C++中普通的连续指针或者数组 (raw C/C++ arrays)来构造Eigen里的Matrix类,这就好比Eigen里的Matrix类的数据和raw C++array 共享了一片 ...

  5. jdom解析xml

    这次把代码整理了一下,打包发上来了,程序中需要用到的jar包也一起打在里面了,有兴趣的朋友可以解压后直接导入的eclipse里运行! xml是一种广为使用的可扩展标记语言,java中解析xml的方式有 ...

  6. Spring中@Autowired注解、@Resource注解的区别 (zz)

    Spring中@Autowired注解.@Resource注解的区别 Spring不但支持自己定义的@Autowired注解,还支持几个由JSR-250规范定义的注解,它们分别是@Resource.@ ...

  7. On the internet, nobody known you are a dog !

  8. 【Linux】ApacheBench(ab)压力测试工具

    AB的简介 ab是apachebench命令的缩写. ab是apache自带的压力测试工具.ab非常实用,它不仅可以对apache服务器进行网站访问压力测试,也可以对或其它类型的服务器进行压力测试.比 ...

  9. Ajax的爬取心得

    一.查找到js的网址 在我们做爬虫的时候,如何判断一个数据是Ajax(asynchronous JavaScript And Xml,异步的JavaScript和Xml), 首先是数据的加载,在请求网 ...

  10. ubuntu安装vmare tools

    在vm中安装vm tools, 点击安装 vmware tools cp  VMwareTools-10.0.10-4301679.tar.gz  /home/YOURNAME/    //因为cd ...