当前位置: 首页 > 工具软件 > SQL Relay > 使用案例 >

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

高德水
2023-12-01

在大型的web应用中数据库经常成为并发访问的一个瓶颈,为了有效的解决并发访问的瓶颈,利用多台数据库master-slave的模式来增加web的并发访问量。 master-slave模式是为了数据同步的问题。 sqlrelay解决连接池问题以及实现读写分离的均衡负载。 sqlrelay配置3

在大型的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.* TO rep@192.168.1.50 IDENTIFIED 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数据库。

handoff="pass" deniedips="" allowedips="" debug="none" maxquerysize="65536" maxstringbindvaluelength="4000" maxlobbindvaluelength="71680" idleclienttimeout="-1" maxlisteners="-1" listenertimeout="0">

handoff="pass" deniedips="" allowedips="" debug="none" maxquerysize="65536" maxstringbindvaluelength="4000" maxlobbindvaluelength="71680" idleclienttimeout="-1" maxlisteners="-1" listenertimeout="0">

 类似资料: