PHP主从分离分布式处理

来源:互联网 发布:ios手机编程就业 编辑:程序博客网 时间:2024/05/21 16:11

所谓的主从分离就是从主数据库写入,从从服务器读取数据,不管是一主一从还是一主多从,服务器都是即时同步的,程序端只需要处理就是写入在主服务器写入,读取在从服务器读取。

一、THINKPHP实现主从分离

THINKPHP支持主从分离,配置起来也很容易

'DB_DEPLOY_TYPE' => 0, // 数据库部署方式:0 集中式(单一服务器),1 分布式(主从服务器)
'DB_RW_SEPARATE' => false, // 数据库读写是否分离 主从式有效
'DB_HOST'='192.168.1.101,192.168.1.102',

'DB_USER'   => 'user1,user2',

'DB_PWD'    => 'pwd1,pwd2',


默认第一台数据库78是主数据库,负责写入操作,第二台60负责读操作,Thinkphp 会自动识别读和写,然后分配链接对应的数据库,来达到读写分离的效果。

注意事项:
1. 如果要设置分布式数据库,暂时不支持DB_DSN方式配置。
2.如果你当前采用了分布式数据库,并且设置了读写分离的话,query方法始终是在读服务器执行,因此query方法对应的都是读操作,而不管你的SQL语句是什么。
3.如果你当前采用了分布式数据库,并且设置了读写分离的话,execute方法始终是在写服务器执行,因此execute方法对应的都是写操作,而不管你的SQL语句是什么。
因此,'DB_DSN'=> 'mysql:host=192.168.100.60;dbname=51fanli_cang', 这种方式不支持主从分离,需要改。
当采用原生态的sql语句进行写入操作的时候,要用execute,读操作要用query,切记,否则乱掉了。

二、ecshop读写分离

http://blog.csdn.net/very_loong/article/details/7999895

原创粉丝点击