sqlrelay mysql_php+sqlrelay+mysql实现连接池及读写负载均衡

本文介绍了如何使用PHP结合SQL Relay来实现数据库连接池,以及通过配置读写分离达到负载均衡。配置了三个SQL Relay instance,A用于读取数据,B用于写入,并通过C作为路由器进行调度。详细步骤包括MySQL的主从配置,SQL Relay的实例设置,以及如何通过PHP连接不同的数据库。
摘要由CSDN通过智能技术生成

php+sqlrelay+mysql实现连接池及读写负载均衡

上一篇 /

下一篇  2008-04-02 18:25:19

/ 个人分类:MySQL

作者:ziqiu

attachimg.gif20070831_9fe0064d9b15f698dc71203HhVt1YhV2.jpg.thumb.jpg

image.gifsqlrelay.jpg(20.33 KB)

2007-8-31 14:26

在大型的web应用中数据库经常成为并发访问的一个瓶颈,为了有效的解决并发访问的瓶颈,利用多台数据库master-slave的模式来增加web的并发访问量。

master-slave模式是为了数据同步的问题。

sqlrelay解决连接池问题以及实现读写分离的均衡负载。

sqlrelay配置3个instance A/B/C,A负责从Master和slave读取数据,B负责写数据,且只写Master,C为router,负责调度应用。

php通过A还是通过B连接数据库。

在实际配置中,由于master承担了读写操作,那么在instance A的配置中,可以把从Master的连接稍微降小,把从slave连接读取数据的连接数稍稍增大以此进行平衡。

一、MySQL master/slave配置

################

#mster/slave配置

################

master:192.168.1.51

slave:192.168.1.50

1、master配置

/etc/my.cnf 中加入

binlog-do-db=book book为数据库名

确保

server-id=1

log-bin=mysql-bin

授权给rep用户进行复制操作

GRANT REPLICATION SLAVE ON book.* TOrep@192.168.1.50IDENTIFIED BY '123456';

重启master服务

2、配置slave

vi /etc/my.cnf

设置下面4行

server-id       = 2

master-host     =   192.168.1.51

master-user     =   rep

master-password =   123456

重启slave

3、把master的原始数据导入slave。

二、sqlrelay配置

当前行业中比较流行的连接池解决方案几乎都不支持php,经过多番努力终于在找到了一个开源的连接池技术--------sqlrelay。

sqlreplay支持的语言:

C C++ Perl  Python PHP Ruby  Java TCL Zope

sqlreplay支持的数据库:

Oracle MySQL mSQL PostgreSQL Sybase MS SQL Server   IBM DB2 Interbase Sybase SQLite ODBC MS Access

sqlreplay的网站

http://sqlrelay.sourceforge.net/。

基本思路:

1、配置2个实例用以最终处理业务

clubs-read

clubi-write

其中读取的 instance分别配置两个连接,且两个连接启动对等的连接数。

2、配置一个instance来调度读写操作,即clubr

通过router来区分读写连接不同的mysql数据库。

dbase="mysql" connections="10" maxconnections="20" maxqueuelength="5"

growby="1" ttl="60" endofsession="commit" sessiontimeout="600"

runasuser="nobody" runasgroup="nobody" cursors="5" authtier="listener"

handoff="pass" deniedips="" allowedips="" debug="none"

maxquerysize="65536" maxstringbindvaluelength="4000"

maxlobbindvaluelength="71680" idleclienttimeout="-1" maxlisteners="-1"

listenertimeout="0">

string="host=192.168.1.51;port=3306;db=book;user=club;password=club;"

metric="1" behindloadbalancer="no"/>

string="host=192.168.1.50;port=3306;db=book;user=club;password=club;"

metric="1" behindloadbalancer="no"/>

dbase="mysql" connections="10" maxconnections="40" maxqueuelength="5"

growby="1" ttl="60" endofsession="commit" sessiontimeout="600"

runasuser="nobody" runasgroup="nobody" cursors="5" authtier="listener"

handoff="pass" deniedips="" allowedips="" debug="none"

maxquerysize="65536" maxstringbindvaluelength="4000"

maxlobbindvaluelength="71680" idleclienttimeout="-1" maxlisteners="-1"

listenertimeout="0">

string="host=192.168.1.51;port=3306;db=book;user=club;password=club;"

metric="1" behindloadbalancer="no"/>

我来说两句

显示全部

d8a3dac35532145b347031a8fb402eba.gif

4d73fc83cb27b31041650c043e06fdc8.gif

5d06f4dc9b08a7e1fecdedaf9fe87c66.gif

659391f05d11818e0d3bd694a6d99ddc.gif

f27d7d9f67d98cc858fe74ff4d76554e.gif

b0d82b880d66765dd2a1af173b20f406.gif

e87f042c31e114675541bb49e0fbf138.gif

97a372eda248bf63679ecf2d47467589.gif

a14a392968e29ace4cb2ca390d53264e.gif

ff31a40db0d852c3704276b17a1dd158.gif

46298ad80746c3790e9535ce3396efec.gif

ef97f2303f935b723744c0c99db267f8.gif

46add61d58ae5b455d8994b1485357d3.gif

701ffdce43c5ac45c241dba6a7ae431d.gif

4ac0c1a50de5d21a8087006d0295547a.gif

e54bbadbdbb00b0b5cc4182352ca2352.gif

afb655844bdfda4cf47fef6d239f009d.gif

bf5c12b671f1179ba425de53370ebd3d.gif

865ad24093d248b0ec3b85ea66a6aaa7.gif

ab80f8b6419577f8a8ad7bb690794024.gif

内容

昵称

验证

ada834077f6a48ad60a11ec0354fde86.png

提交评论

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值