>데이터 베이스 >MySQL 튜토리얼 >php+sqlrelay+mysql实现连接池及读写负载均衡_MySQL

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

WBOY
WBOY원래의
2016-06-01 13:08:061126검색

在大型的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数据库。



       
       
               
                       
               

               
                       
                       
               

       

       
               
                       

 
               
                       
               

       

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.