thinkphp主從分離分佈式處理

所謂的主從分離就是從主數據庫寫入,從從服務器讀取數據,無論是一主一從仍是一主多從,服務器都是即時同步的,程序端只須要處理就是寫入在主服務器寫入,讀取在從服務器讀取。php

1、THINKPHP實現主從分離mysql

THINKPHP支持主從分離,配置起來也很容易sql

'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 會自動識別讀和寫,而後分配連接對應的數據庫,來達到讀寫分離的效果。
spa

注意事項:
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,切記,不然亂掉了。
.net

2、ecshop讀寫分離blog

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

相關文章
相關標籤/搜索